@min98/filemanager-react
Version:
Package FE FileManager for min98/laravel-filemanager
22 lines (21 loc) • 111 kB
JavaScript
import ue, { useEffect } from 'react';
import { Icon } from '@iconify/react';
import { TooltipProvider, Tooltip, TooltipTrigger, cn as cn$1, TooltipPortal, TooltipContent, TooltipArrow, useDelay, useMediaQuery, useRepeat, DialogModal, CardContent, ContextMenuCustom, Grid, Col, Flex, ButtonGroup, Button, DataTable, Modal, Form, InputForm, ScrollArea, Card, CardFooter, Switch, Label, Badge, useDebounce, CircularSlider, toast } from '@min98/ui';
import { createAsyncThunk, createSlice, configureStore } from '@reduxjs/toolkit';
import { persistReducer } from 'redux-persist';
import { useDispatch, useSelector, useStore, Provider } from 'react-redux';
import Vn from 'redux-persist/es/persistStore';
import Pn from 'axios';
import Un from 'redux-persist/es/storage/createWebStorage';
import { initReactI18next, useTranslation } from 'react-i18next';
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
import { Icon as Icon$1 } from '@iconify/react/dist/iconify.js';
import { useForm } from 'react-hook-form';
import jo from 'zod';
import { zodResolver } from '@hookform/resolvers/zod';
import Br from '@uiw/react-codemirror';
import { langs, loadLanguage } from '@uiw/codemirror-extensions-langs';
import xs from 'react-player';
import oa, { convertToPixelCrop, centerCrop, makeAspectCrop } from 'react-image-crop';
import 'react-image-crop/dist/ReactCrop.css';
var Nt=Pn.create({headers:{"Content-Type":"application/json",Accept:"application/json"}});Nt.interceptors.request.use(async o=>{let e=await ke.getState(),{baseUrl:t,authenticate:n}=e.fmSlice;return o.baseURL=t,n&&(o.headers.Authorization=n),Promise.resolve(o)},o=>Promise.reject(o));Nt.interceptors.response.use(o=>Promise.resolve(o),async o=>Promise.reject(o));var I=Nt;var Fn={initialize(){return I.get("initialize")},tree(o){return I.get("tree",{params:o})},content(o){return I.get("content",{params:o})},upload(o){return I.post("upload",o,{headers:{"Content-Type":"multipart/form-data"}})},delete(o){return I.post("delete",{...o})},paste(o){return I.post("paste",{...o})},rename(o){return I.post("rename",{...o})},download(o){return I.get("download",{params:o})},thumbnails(o){return I.get("thumbnails",{params:o,responseType:"arraybuffer"})},preview(o){return I.get("preview",{params:o,responseType:"arraybuffer"})},url(o){return I.get("url",{params:o})},info(o){return I.post("info",{...o})},createDirectory(o){return I.post("create-directory",{...o})},directoryExists(o){return I.post("directoryExists",{...o})},createFile(o){return I.post("create-file",{...o})},updateFile(o){return I.post("update-file",o,{headers:{"Content-Type":"multipart/form-data"}})},streamFile(o){return I.get("stream-file",{params:o,responseType:"arraybuffer"})},zip(o){return I.post("zip",{...o})},unzip(o){return I.post("unzip",{...o})}},E=Fn;var be=createAsyncThunk("fm/initializeAction",async(o,e)=>{try{return (await E.initialize())?.data}catch(t){return e.rejectWithValue({error:t.message})}}),oe=createAsyncThunk("fm/getTreeAction",async(o,e)=>{try{return (await E.tree(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),U=createAsyncThunk("fm/getContentAction",async(o,e)=>{try{return (await E.content(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Rt=createAsyncThunk("fm/uploadAction",async(o,e)=>{try{return (await E.upload(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Dt=createAsyncThunk("fm/deleteAction",async(o,e)=>{try{return (await E.delete(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),ot=createAsyncThunk("fm/pasteAction",async(o,e)=>{try{return (await E.paste(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Ie=createAsyncThunk("fm/renameAction",async(o,e)=>{try{return (await E.rename(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Lt=createAsyncThunk("fm/downloadAction",async(o,e)=>{try{return (await E.download(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Ee=createAsyncThunk("fm/thumbnailsAction",async(o,e)=>{try{let t=await E.thumbnails(o);return {type:t?.headers?.["content-type"],data:t.data,disk:o.disk,path:o.path}}catch(t){return e.rejectWithValue({error:t.message})}}),kn=createAsyncThunk("fm/previewAction",async(o,e)=>{try{let t=await E.preview(o);return {data:t.data,type:t?.headers?.["Content-Type"]}}catch(t){return e.rejectWithValue({error:t.message})}}),Mt=createAsyncThunk("fm/urlAction",async(o,e)=>{try{return (await E.url(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Tt=createAsyncThunk("fm/infoAction",async(o,e)=>{try{return (await E.info(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Ot=createAsyncThunk("fm/createDirectoryAction",async(o,e)=>{try{return (await E.createDirectory(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),At=createAsyncThunk("fm/createFileAction",async(o,e)=>{try{return (await E.createFile(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Nn=createAsyncThunk("fm/directoryExistsAction",async(o,e)=>{try{return (await E.directoryExists(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),It=createAsyncThunk("fm/updateFileAction",async(o,e)=>{try{return (await E.updateFile(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),ze=createAsyncThunk("fm/streamFileAction",async(o,e)=>{try{let t=await E.streamFile(o);return {data:t.data,type:t?.headers?.["content-type"]}}catch(t){return e.rejectWithValue({error:t.message})}}),Rn=createAsyncThunk("fm/zipAction",async(o,e)=>{try{return (await E.zip(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}}),Dn=createAsyncThunk("fm/unZipAction",async(o,e)=>{try{return (await E.unzip(o))?.data}catch(t){return e.rejectWithValue({error:t.message})}});var Mn={baseUrl:"http://127.0.0.1:8000/api/v1/fm",authenticate:"",config:void 0,view:"list",disks:[],selectDisk:void 0,selectFolder:void 0,tree:[],content:{directories:[],files:[]},clipboard:void 0,select:void 0,selects:[],reload:!1},lo=createSlice({name:"fm",initialState:Mn,reducers:{initConfig:(o,e)=>{let{baseUrl:t,authenticate:n}=e.payload;o.baseUrl=t,o.authenticate=n;},clearAuthenticate:o=>{o.authenticate=void 0;},setView:(o,e)=>{o.view=e.payload;},setSelectDisk:(o,e)=>{o.selectDisk&&o.selectDisk!=e.payload&&(o.tree=[]),o.selectDisk=e.payload;},setSelectFolder:(o,e)=>{o.selectFolder=e.payload;},setTree:(o,e)=>{o.tree=e.payload;},setContent:(o,e)=>{o.content=e.payload;},setClipboard:(o,e)=>{o.clipboard=e?.payload;},clearClipboard:o=>{o.clipboard=void 0;},setSelect:(o,e)=>{o.select=e.payload;},clearSelect:o=>{o.select=void 0;},setSelects:(o,e)=>{o.selects=e.payload;},clearSelects:o=>{o.selects={};},reloadAction:o=>{o.reload=!o.reload;}},extraReducers:o=>{o.addCase(be.pending,e=>({...e,config:e.config})),o.addCase(be.fulfilled,(e,t)=>({...e,config:t.payload.results.config,disks:Object.keys(t.payload.results.config.disks)})),o.addCase(be.rejected,e=>({...e,config:e.config})),o.addCase(oe.pending,e=>({...e,tree:e.tree})),o.addCase(oe.fulfilled,(e,t)=>{let n=t.payload.results.directories,r=[...e.tree];return n.forEach(s=>{r.some(i=>i.path===s.path&&i.basename===s.basename&&i.dirname===s.dirname)||r.push(s);}),{...e,tree:r}}),o.addCase(oe.rejected,e=>({...e,tree:e.tree})),o.addCase(U.pending,e=>({...e,content:e.content})),o.addCase(U.fulfilled,(e,t)=>({...e,content:t.payload.results})),o.addCase(U.rejected,e=>({...e,content:e.content})),o.addCase(Ee.fulfilled,(e,t)=>{let{files:n}=e.content,{type:r,data:s,path:a}=t.payload,i=new Blob([s],{type:r}),l=URL.createObjectURL(i),d=n.findIndex(p=>p.path===a);if(d!==-1){let p={...n[d],url:l},u=[...n.slice(0,d),p,...n.slice(d+1)];e.content.files=u;}});}}),{initConfig:Et,clearAuthenticate:Tn,setView:zt,setSelectDisk:xe,setSelectFolder:J,setTree:nt,setContent:On,setClipboard:jt,clearClipboard:rt,setSelect:ne,setSelects:he,clearSelect:Y,clearSelects:ye,reloadAction:Vt}=lo.actions,co=lo.reducer;var $n=()=>({getItem(o){return Promise.resolve(null)},setItem(o,e){return Promise.resolve(e)},removeItem(o){return Promise.resolve()}}),Bn=typeof window<"u"?Un("local"):$n(),Kn={key:"fm",storage:Bn,whitelist:["config","baseUrl","authenticate","disks","selectDisk","view","clipboard","content"]},Gn=[],ke=configureStore({reducer:{fmSlice:persistReducer(Kn,co)},devTools:process.env.NODE_ENV!=="production",middleware:o=>o({serializableCheck:!1}).concat(Gn)});Vn(ke);var M=()=>useDispatch(),P=useSelector,Hn=useStore;var z=o=>o.type==="file",po=o=>o.type==="dir";var st=async(o,e,t)=>{let n=e.filter(a=>a.type==="file").map(a=>a.path),r=e.filter(a=>a.type==="dir").map(a=>a.path);return {type:t,disk:o,directories:r,files:n}};var at="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";var go=["image","video","audio"];var ho={gif:"bi:filetype-gif",png:"bi:filetype-png",jpeg:"bi:filetype-jpg",jpg:"bi:filetype-jpg",bmp:"bi:filetype-bmp",psd:"bi:filetype-psd",svg:"bi:filetype-svg",ico:"bi:image",ai:"iconoir:adobe-illustrator",tif:"bi:filetype-tiff",tiff:"bi:filetype-tiff",webp:"iconoir:webp-format",txt:"bi:filetype-txt",json:"bi:filetype-json",log:"tabler:file-dots",ini:"tabler:file-dots",xml:"bi:filetype-xml",md:"tabler:file-dots",env:"tabler:file-dots",js:"bi:filetype-js",php:"bi:filetype-php",css:"bi:filetype-css",scss:"bi:filetype-scss",cpp:"tabler:brand-cpp",class:"bi:file-earmark-code",h:"bi:file-earmark-code",java:"bi:filetype-java",sh:"tabler:brand-powershell",swift:"tabler:brand-swift",tsx:"bi:filetype-tsx",jsx:"bi:filetype-jsx",aif:"bi:file-music",cda:"bi:file-music",mid:"bi:file-music",mp3:"bi:file-music",mpa:"bi:file-music",ogg:"bi:file-music",wav:"bi:file-music",wma:"bi:file-music",wmv:"bi:file-play",avi:"bi:file-play",mpeg:"bi:file-play",mpg:"bi:file-play",flv:"bi:file-play",mp4:"bi:file-play",mkv:"bi:file-play",mov:"bi:file-play",ts:"bi:file-play","3gpp":"bi:file-play",zip:"bi:file-earmark-zip",arj:"bi:file-earmark-zip",deb:"bi:file-earmark-zip",pkg:"bi:file-earmark-zip",rar:"bi:file-earmark-zip",rpm:"bi:file-earmark-zip","7z":"bi:file-earmark-zip","tar.gz":"bi:file-earmark-zip",pdf:"bi:file-earmark-pdf",rtf:"tabler:brand-office",doc:"tabler:brand-office",docx:"tabler:brand-office",odt:"tabler:brand-office",xlr:"bi:file-earmark-spreadsheet",xls:"bi:file-earmark-spreadsheet",xlsx:"bi:file-earmark-spreadsheet",ppt:"bi:filetype-ppt",pptx:"bi:filetype-pptx",pptm:"bi:filetype-ppt",xps:"bi:filetype-ppt",potx:"bi:filetype-ppt"},je=o=>{let e=["Bytes","KB","MB","GB","TB"];if(o===0)return "0 Bytes";let t=Math.floor(Math.log(o)/Math.log(1024));return t===0?`${o} ${e[t]}`:`${(o/1024**t).toFixed(1)} ${e[t]}`},Ve=(o,e="en")=>o==null?"-":new Date(o*1e3).toLocaleString(e=="vi"?"vn":"en"),Ue=o=>o&&ho[o.toLowerCase()]!==void 0?ho[o.toLowerCase()]:"tabler:file-filled",re=o=>{let e=["png","jpg","jpeg","gif","webp","svg"],t=["ogg","mp3","aac","wav"],n=["webm","mp4"],r=["sh","css","less","sass","scss","html","js","ts","vue","htaccess","env","txt","log","ini","xml","md","java","c","cpp","cs","scl","php","sql","pl","py","lua","swift","rb","go","yaml","json"];return e.includes(o.toLowerCase())?"image":t.includes(o.toLowerCase())?"audio":n.includes(o.toLowerCase())?"video":r.includes(o.toLowerCase())?"text":""},$e=o=>({sh:"x-sh",css:"css",less:"x-less",sass:"x-sass",scss:"x-scss",html:"html",js:"javascript",jsx:"javascript",ts:"typescript",tsx:"javascript",vue:"x-vue",htaccess:"plain",env:"plain",txt:"plain",log:"plain",ini:"x-ini",xml:"application/xml",md:"x-markdown",java:"x-java",c:"x-csrc",cpp:"x-c++src",cs:"x-csharp",scl:"x-scala",php:"application/x-httpd-php",sql:"x-sql",pl:"x-perl",py:"x-python",lua:"x-lua",swift:"x-swift",rb:"x-ruby",go:"x-go",yaml:"x-yaml",json:"application/json"})[o?.toLowerCase()],Ne=o=>{let e=o;return o.length>10&&(e=o.slice(0,7)+".."+o.slice(-4)),e};var Qn=()=>{let o=M(),{t:e}=useTranslation(),{selectFolder:t,selectDisk:n,clipboard:r,select:s,selects:a}=P(h=>h.fmSlice),i=h=>{o(jt(h));};return {handleReload:()=>{o(Vt());},handleSetView:h=>{o(zt(h));},handleMultipleClick:h=>{o(he(h));},executeClipboards:async(h,y="copy")=>{if(h){let S=await st(n,[h],y);i(S);}else if(a&&a.length>0){let S=await st(n,a,y);i(S);}else if(s){let S=await st(n,[s],y);i(S);}else {let S={title:e("label.success"),description:e("label.need_select_item"),status:"error"};toast(S);}o(he([]));let N={title:e("label.success"),description:e("label.can_paste"),status:"success"};toast(N);},handlePaste:async()=>{if(r)if(t){let h=await o(ot({disk:n,clipboard:r,path:t}));if(!h.error){let y={title:h.payload.status,description:h.payload.msg,status:h.payload.status};toast(y);}o(U({disk:n,path:t}));}else {let h=await o(ot({disk:n,clipboard:r,path:"/"}));if(!h.error){let y={title:h.payload.status,description:h.payload.msg,status:h.payload.status};toast(y);}o(U({disk:n,path:t}));}else {let h={title:e("label.error"),description:e("label.need_select_item"),status:"error"};toast(h);}o(he([])),o(rt());},handleDownload:async h=>{console.log(h);let y=document.createElement("a");y.style.display="none",y.setAttribute("download",h.basename);let N=await o(Lt({disk:n,path:h.path}));if(N.payload&&!N?.error){let S=N.payload?.data;y.href=S,document.body.appendChild(y),y.click(),document.body.removeChild(y);}},handleRename:async h=>{s&&o(Ie(h));},handleEdit:async h=>{if(s){let y=await o(It(h));if(!y.error&&y.payload){let N={title:y.payload.status,description:y.payload.msg,status:y.payload.status};toast(N),await o(U({disk:n,path:t}));}}},handleNewFile:async h=>{let y=await o(At(h));if(!y.error&&y.payload){let N={title:y.payload.status,description:y.payload.msg,status:y.payload.status};toast(N),await o(U({disk:n,path:t}));}},handleNewFolder:async h=>{let y=await o(Ot(h));if(!y.error&&y.payload){let N={title:y.payload.status,description:y.payload.msg,status:y.payload.status};toast(N),await o(U({disk:n,path:t}));}},handleUpload:async h=>{let y=await o(Rt(h));if(!y.error&&y.payload){let N={title:y.payload.status,description:y.payload.msg,status:y.payload.status};toast(N),await o(U({disk:n,path:t}));}},handleDelete:async h=>{let y=await o(Dt(h));if(!y.error&&y.payload){let N={title:y.payload.status,description:y.payload.msg,status:y.payload.status};toast(N),await o(ye()),await o(Y()),await o(U({disk:n,path:t}));}},getStreamFile:async h=>{if(h&&z(h)&&go?.includes(re(h.extension))){let y=await o(ze({disk:n,path:h?.path}));if(y.payload&&!y.error){let N=y.payload?.type,S=new Blob([y.payload.data],{type:N}),x=URL.createObjectURL(S);return {type:re(h.extension),mimeType:N,blobUrl:x}}if(!y.error){let N={title:e("label.error"),description:e("common.unknown_error"),status:"error"};toast(N);}}},cleanSelect:async()=>{await o(Y());},cleanSelects:async()=>{await o(ye());},cleanClipboard:async()=>{await o(rt());}}},j=Qn;var qn=()=>{let[o,e]=ue.useState(!1),[t,n]=ue.useState(!1),[r,s]=ue.useState(!1),[a,i]=ue.useState(!1),[l,d]=ue.useState(!1),[p,u]=ue.useState(!1),[c,f]=ue.useState(!1),[m,g]=ue.useState(!1),[v,C]=ue.useState(!1);return {modalDetail:o,modalUpload:t,modalPreview:r,modalRename:a,modalEdit:l,modalDelete:c,modalNewFile:m,modalNewFolder:v,modalCrop:p,toggleNewFile:()=>{g(!m);},toggleNewFolder:()=>{C(!v);},toggleUpload:()=>{n(!t);},toggleModalDetail:()=>{e(!o);},toggleModalPreview:()=>{s(!r);},toggleModalRename:()=>{i(!a);},toggleModalEdit:()=>{d(!l);},toggleModalDelete:()=>{f(!c);},toggleModalCrop:()=>{u(!p);}}},yo=qn;var $t=ue.createContext(void 0),ve=()=>{let o=ue.useContext($t);if(o===void 0)throw new Error("useModalContext must be used within a FmModalProvider");return o},Bt=({children:o})=>{let e=yo();return jsx($t.Provider,{value:e,children:o})};var it={Unauthenticated:"Unauthenticated","This action is unauthorized.":"This action is unauthorized",common:{list:"List",add:"Add",edit:"Edit",delete:"Delete",restore:"Restore",forceDelete:"Force delete",trash:"Deleted",decentralize:"Decentralize",close:"Close",save:"Save",saving:"Saving",refresh:"Refresh",accept:"Accept",confirm:"Confirm",update:"Update",ok:"Ok",cancel:"Cancel","confirm-this-task":"Are you sure to process this task?","fail-to-load-data":"Fail to load data",unknown_error:"An unknown error","internal-server-error":"Internal server error","bad-request":"Bad request","forbiden-request":"Invalid input data","fail-to-load-all-code":"Fail to load data from all code"},status:{error:"Error",success:"Success",warning:"Warning"},label:{enable:"Enable",active:"Active",disable:"Disabled",show:"Show",error:"Error",success:"Success",warning:"Warning",account:"Account",name:"Name",username:"User Name",email:"Email Address",login:"Login",register:"register",password:"Password",password_confirmation:"Confirm Password",display_name:"Display Name",action:"Action",status:"Status",banned:"Banned",permitted:"Permitted",created_at:"Time create",updated_at:"Time update",deleted_at:"Time deleted",time:"Time",details:"Details",price:"Price",image:"Image",upload:"Upload","drag-drop":"Drag & drop your file",ready_upload:"Ready to upload",config:"Config",system:"System",disk:"Disk",logo:"Logo",need_select_item:"Please select a item",clipboard_notfound:"Clipboard not found, need select item for copy or cut",basename:"Base name",dirname:"Directory name",new_name:"New name",detail:"Detail",preview:"Preview",upload_file:"Upload Files",url:"URL",filesystem:"Filesystem",images:"Images",type:"Type",visibility:"Visibility",checkbox:"Checkbox",radio:"Radio",fileSelect:"File Select",size:"Size",date:"Date",view:"View",download:"Download",copy:"Copy",cut:"Cut",paste:"Paste",rename:"Rename",zip:"Zip",delete:"Delete",properties:"properties",new_folder:"New Folder",new_file:"New File",path:"Path",modified:"Modified",get_url:"Get URL",open:"Open",clipboard:"Copied to clipboard",can_paste:"Can paste to copy or cut",reload:"Reload",copyUrl:"Copy URL",clear_item:"Clear all selected items from memory",clear_clipboard:"Clear clipboard from memory",table_view:"Table view mode",grid_view:"Grid view mode",right_click:"Right click to show menu",unknown:"An unknown error has occurred. Please try again",undefined:"An unknown error has occurred. Please try again",no_image:"No image specified",access_denied:"This action is unauthorized",change:"Are you sure change it ?",page:"Page",go_to_page:"Go to page",of:"of",list:"List",add:"Add",edit:"Edit",deleted:"Deleted",dashboard:"Dashboard",value:"Value",no_data:"No result",required:"is required",previous:"Previous",next:"Next",first:"First",last:"Last",random:"Random",random_desc:"Random value",invalid_type:"Invalid type",language:"Language",browse:"Browse",or:"Or",overwrite:"Overwrite",skip:"Skip",compress:"Compress",crop:"Crop",disk_selected:"Disk Selected"},tooltip:{previous:"Previous",next:"Next",first:"First",last:"Last",copy:"Click to copy",remove:"Click to remove",add:"Click to add",get_url:"Get URL"},ask:{change:"Are you sure change it ?",restore:"Are you sure restore this ?",forceDelete:"Are you sure permanently delete, this action can't be undo ?",move_to_trash:"Are you sure move to Trash ?",delete:"Are you sure delete this, this action can't be undo ?"},table:{columns:"Columns",no_data:"No result"},placeholder:{name:"Enter Name",new_name:"Enter New Name",email:"Enter Email Address",choose_select:"Please choose select",code:"Enter Code",description:"Enter description"}};var lt={Unauthenticated:"Kh\xF4ng x\xE1c th\u1EF1c","This action is unauthorized.":"H\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng \u0111\u01B0\u1EE3c ph\xE9p",common:{list:"Danh s\xE1ch",add:"Th\xEAm",edit:"S\u1EEDa",delete:"X\xF3a",restore:"Kh\xF4i ph\u1EE5c",forceDelete:"X\xF3a v\u0129nh vi\u1EC5n",trash:"\u0110\xE3 x\xF3a",decentralize:"Ph\xE2n quy\u1EC1n",close:"\u0110\xF3ng",save:"L\u01B0u",saving:"\u0110ang l\u01B0u",refresh:"L\xE0m m\u1EDBi",accept:"Ch\u1EA5p nh\u1EADn",confirm:"X\xE1c nh\u1EADn",update:"C\u1EADp nh\u1EADt",ok:"\u0110\u1ED3ng \xFD",cancel:"H\u1EE7y b\u1ECF","confirm-this-task":"B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn s\u1EBD th\u1EF1c hi\u1EC7n h\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng?","fail-to-load-data":"T\u1EA3i d\u1EEF li\u1EC7u th\u1EA5t b\u1EA1i",unknown_error:"M\u1ED9t l\u1ED7i kh\xF4ng x\xE1c \u0111\u1ECBnh","internal-server-error":"L\u1ED7i m\xE1y ch\u1EE7 n\u1ED9i b\u1ED9","bad-request":"Y\xEAu c\u1EA7u kh\xF4ng h\u1EE3p l\u1EC7","forbiden-request":"D\u1EEF li\u1EC7u \u0111\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7","fail-to-load-all-code":"Tt\u1EA3i d\u1EEF li\u1EC7u th\u1EA5t b\u1EA1i"},status:{error:"L\u1ED7i",success:"Th\xE0nh c\xF4ng",warning:"C\u1EA3nh b\xE1o"},label:{enable:"Cho ph\xE9p",active:"Ho\u1EA1t \u0111\u1ED9ng",inActive:"Kh\xF4ng ho\u1EA1t \u0111\u1ED9ng",disable:"V\xF4 hi\u1EC7u h\xF3a",show:"Hi\u1EC3n th\u1ECB",error:"L\u1ED7i",success:"Th\xE0nh c\xF4ng",warning:"C\u1EA3nh b\xE1o",name:"T\xEAn",action:"H\xE0nh \u0111\u1ED9ng",status:"Tr\u1EA1ng th\xE1ith\xE1i",banned:"B\u1ECB c\u1EA5m",permitted:"Cho ph\xE9p",created_at:"Th\u1EDDi gian t\u1EA1o",updated_at:"Th\u1EDDi gian c\u1EADp nh\u1EADt",deleted_at:"Th\u1EDDi gian x\xF3a",time:"Th\u1EDDi gian",details:"Chi ti\u1EBFt",image:"\u1EA2nh",upload:"T\u1EA3i l\xEAn","drag-drop":"K\xE9o v\xE0 th\u1EA3 t\u1EC7p c\u1EE7a b\u1EA1n",ready_upload:"S\u1EB5n s\xE0ng \u0111\u1EC3 t\u1EA3i l\xEAn",config:"C\u1EA5u h\xECnh",system:"H\u1EC7 th\u1ED1ng",disk:"Disk",logo:"logo",need_select_item:"Vui l\xF2ng ch\u1ECDn m\u1ED9t m\u1EE5c",clipboard_notfound:"Kh\xF4ng t\xECm th\u1EA5y b\u1EA3ng t\u1EA1m, c\u1EA7n ch\u1ECDn m\u1EE5c \u0111\u1EC3 sao ch\xE9p ho\u1EB7c c\u1EAFt",basename:"Base name",dirname:"T\xEAn th\u01B0 m\u1EE5c",new_name:"T\xEAn m\u1EDBi",detail:"Chi ti\u1EBFt",preview:"Xem tr\u01B0\u1EDBc",upload_file:"T\u1EA3i l\xEAn t\u1EC7p",url:"URL",filesystem:"H\u1EC7 th\u1ED1ng t\u1EADp tin",images:"H\xECnh \u1EA3nh",type:"Ki\u1EC3u",visibility:"Kh\u1EA3 n\u0103ng hi\u1EC3n th\u1ECB",fileSelect:"Ch\u1ECDn t\u1EC7p",size:"K\xEDch c\u1EE1",date:"Ng\xE0y",view:"Xem",download:"T\u1EA3i xu\u1ED1ng",copy:"Sao ch\xE9p",cut:"C\u1EAFt",paste:"D\xE1n",rename:"\u0110\u1ED5i t\xEAn",zip:"zip",delete:"X\xF3a b\u1ECF",properties:"Thu\u1ED9c t\xEDnh",new_folder:"Th\u01B0 m\u1EE5c m\u1EDBi",new_file:"T\u1EC7p m\u1EDBi",path:"\u0110\u01B0\u1EDDng d\u1EABn",modified:"S\u1EEDa \u0111\u1ED5i",get_url:"Get URL",open:"M\u1EDF",clipboard:"Sao ch\xE9p v\xE0o b\u1EA3ng t\u1EA1m",can_paste:"C\xF3 th\u1EC3 d\xE1n \u0111\u1EC3 sao ch\xE9p ho\u1EB7c c\u1EAFt",reload:"T\u1EA3i l\u1EA1i",copyUrl:"Sao ch\xE9p URL",clear_item:"X\xF3a t\u1EA5t c\u1EA3 c\xE1c m\u1EE5c \u0111\xE3 ch\u1ECDn kh\u1ECFi b\u1ED9 nh\u1EDB",clear_clipboard:"X\xF3a b\u1EA3ng t\u1EA1m t\u1EEB b\u1ED9 nh\u1EDB",table_view:"Ch\u1EBF \u0111\u1ED9 xem b\u1EA3ng",grid_view:"Ch\u1EBF \u0111\u1ED9 xem l\u01B0\u1EDBi",right_click:"Nh\u1EA5p chu\u1ED9t ph\u1EA3i \u0111\u1EC3 hi\u1EC3n th\u1ECB menu",unknown:"M\u1ED9t l\u1ED7i ch\u01B0a bi\u1EBFt \u0111\xE3 x\u1EA3y ra.H\xE3y th\u1EED l\u1EA1i",undefined:"M\u1ED9t l\u1ED7i ch\u01B0a bi\u1EBFt \u0111\xE3 x\u1EA3y ra.H\xE3y th\u1EED l\u1EA1i",no_image:"Kh\xF4ng c\xF3 h\xECnh \u1EA3nh \u0111\u01B0\u1EE3c ch\u1EC9 \u0111\u1ECBnh",access_denied:"H\xE0nh \u0111\u1ED9ng n\xE0y l\xE0 tr\xE1i ph\xE9p",change:"B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn thay \u0111\u1ED5i n\xF3 kh\xF4ng ?",page:"Trang",go_to_page:"\u0110i \u0111\u1EBFn trang",of:"c\u1EE7a",list:"Danh s\xE1ch",add:"Th\xEAm v\xE0o",edit:"S\u1EEDa",deleted:"\u0110\xE3 x\xF3a",dashboard:"B\u1EA3ng \u0111i\u1EC1u khi\u1EC3n",value:"Gi\xE1 tr\u1ECB",no_data:"Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3",required:"\u0110ang y\xEAu c\u1EA7u",previous:"Tr\u01B0\u1EDBc",next:"K\u1EBF ti\u1EBFp",first:"\u0110\u1EA7u ti\xEAn",last:"Cu\u1ED1i c\xF9ng",random:"Ng\u1EABu nhi\xEAn",random_desc:"Gi\xE1 tr\u1ECB ng\u1EABu nhi\xEAn",invalid_type:"Lo\u1EA1i kh\xF4ng h\u1EE3p l\u1EC7",language:"Ng\xF4n ng\u1EEF",browse:"Duy\u1EC7t",or:"Ho\u1EB7c",overwrite:"Ghi \u0111\xE8",skip:"Nh\u1EA3y",compress:"N\xE9n",crop:"C\u1EAFt",disk_selected:"\u0110\xE3 ch\u1ECDn \u0111\u0129a"},tooltip:{previous:"Tr\u01B0\u1EDBc",next:"K\u1EBF ti\u1EBFpi\u1EBFp",first:"\u0110\u1EA7u ti\xEAn",last:"Cu\u1ED1i c\xF9ng",copy:"B\u1EA5m \u0111\u1EC3 sao ch\xE9p",remove:"B\u1EA5m \u0111\u1EC3 x\xF3a",add:"B\u1EA5m \u0111\u1EC3 th\xEAm",get_url:"L\u1EA5y URL"},ask:{change:"B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn thay \u0111\u1ED5i n\xF3 kh\xF4ng ?",restore:"B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn kh\xF4i ph\u1EE5c \u0111i\u1EC1u n\xE0y kh\xF4ng ?",forceDelete:"B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn x\xF3a v\u0129nh vi\u1EC5n kh\xF4ng, h\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng th\u1EC3 ho\xE0n t\xE1c ?",move_to_trash:"B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn chuy\u1EC3n \u0111\u1EBFn th\xF9ng r\xE1c kh\xF4ng ?",delete:"B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn x\xF3a c\xE1i n\xE0y kh\xF4ng, h\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng th\u1EC3 ho\xE0n t\xE1c ?"},table:{columns:"C\u1ED9t",no_data:"Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3"},placeholder:{name:"Nh\u1EADp t\xEAn",new_name:"Nh\u1EADp t\xEAn m\u1EDBi",email:"Nh\u1EADp \u0111\u1ECBa ch\u1EC9 email",choose_select:"Vui l\xF2ng ch\u1ECDn",code:"Nh\u1EADp m\xE3",description:"Nh\u1EADp m\xF4 t\u1EA3"}};var or={en:it,vi:lt};function Kt(o,e){let t=e.split("."),n=or[o];for(let r of t){if(n[r]===void 0)return console.warn(`Translation key "${e}" not found for language "${o}"`),e;n=n[r];}return n}var Gt=ue.createContext(void 0),Ht=({children:o,initialLang:e="en"})=>{let[t,n]=ue.useState(e),r=s=>Kt(t,s);return ue.useEffect(()=>{n(e);},[e]),jsx(Gt.Provider,{value:{lang:t,setLang:n,t:r},children:o})},D=()=>{let o=ue.useContext(Gt);if(o===void 0)throw new Error("useFmLang must be used within a FmLangProvider");return o};var sr=()=>{let{t:o}=D(),{toggleNewFile:e,toggleNewFolder:t,toggleUpload:n}=ve(),{executeClipboards:r,handlePaste:s,handleSetView:a,handleReload:i,cleanSelect:l,cleanSelects:d,cleanClipboard:p}=j(),{select:u,selects:c,clipboard:f}=P(v=>v.fmSlice),[m,g]=ue.useState(!0);return ue.useEffect(()=>{u||c.length>0?g(!1):g(!0);},[u,c]),jsxs(Grid,{col:"4",align:"center",justify:"center",className:"lg:!grid-cols-5 sm:grid-cols-2",children:[jsx(Col,{col:"3",className:"",children:jsxs(Flex,{justify:"start",align:"start",children:[jsx(ButtonGroup,{children:jsx(Button,{color:"secondary",onClick:()=>i(),tooltip:o("label.reload"),children:jsx(Icon,{icon:"mdi:reload"})})}),jsxs(ButtonGroup,{children:[jsx(Button,{color:"secondary",onClick:e,tooltip:o("label.new_file"),children:jsx(Icon,{icon:"mdi:file"})}),jsx(Button,{color:"secondary",onClick:t,tooltip:o("label.new_folder"),children:jsx(Icon,{icon:"mdi:folder-plus-outline"})}),jsx(Button,{color:"secondary",onClick:n,tooltip:o("label.upload"),children:jsx(Icon,{icon:"mdi:cloud-upload"})})]}),jsxs(ButtonGroup,{children:[jsx(Button,{color:"secondary",onClick:()=>r(u,"copy"),disabled:m,tooltip:o("label.copy"),children:jsx(Icon,{icon:"mdi:content-copy"})}),jsx(Button,{color:"secondary",onClick:()=>r(u,"cut"),disabled:m,tooltip:o("label.cut"),children:jsx(Icon,{icon:"mdi:content-cut"})}),jsx(Button,{color:"secondary",onClick:s,disabled:!f,tooltip:o("label.paste"),children:jsx(Icon,{icon:"mdi:content-paste"})})]})]})}),jsx(Col,{col:"2",className:"",children:jsxs(Flex,{justify:"end",align:"end",className:"lg:!justify-end md:!justify-end sm:!justify-start",children:[jsxs(ButtonGroup,{children:[jsx(Button,{color:"secondary",onClick:()=>{l(),d();},disabled:m,tooltip:o("label.clear_item"),children:jsx(Icon,{icon:"ic:baseline-layers-clear"})}),jsx(Button,{color:"secondary",onClick:()=>p(),disabled:!f,tooltip:o("label.clear_clipboard"),children:jsx(Icon,{icon:"mdi:clipboard-remove-outline"})})]}),jsxs(ButtonGroup,{children:[jsx(Button,{color:"secondary",onClick:()=>a("list"),tooltip:o("label.table_view"),children:jsx(Icon,{icon:"mdi:list-box"})}),jsx(Button,{color:"secondary",onClick:()=>a("grid"),tooltip:o("label.grid_view"),children:jsx(Icon,{icon:"mdi:grid"})})]})]})})]})},So=sr;var lr=()=>{let o=M(),{selectDisk:e,tree:t}=P(i=>i.fmSlice),n=async(i,l)=>{let d=[...t],p=d.find(u=>u.path==l);if(p&&p.open){let u=d.filter(c=>c.dirname!=l)?.map(c=>c.path===l?{...c,open:!c.open}:c);await o(nt(u));}else {let u=t.map(c=>c.path===l?{...c,open:!c.open}:c);await o(nt(u)),await o(oe({disk:i,path:l}));}await o(J(l));},r=({item:i})=>jsxs("li",{children:[jsxs("p",{className:"flex items-center rounded-md px-2 py-1 hover:bg-gray-200",children:[jsx("span",{className:cn$1("mr-1"),onClick:()=>n(e,i.path),children:jsx(Icon$1,{icon:i.open?"line-md:minus-square":i?.props?.hasSubdirectories?"line-md:plus-square-twotone":"line-md:minus-square"})}),jsx("span",{className:"cursor-pointer",onClick:()=>o(J(i.path)),children:i.basename})]}),i?.props?.hasSubdirectories?jsx(s,{item:i}):null]}),s=({item:i})=>{let l=t?.filter(d=>d.dirname==i.path);return jsx("ul",{className:"pl-2",children:l.length>0&&l.map((d,p)=>jsx(ue.Fragment,{children:jsx(r,{item:d})},p))})};return jsx(({items:i})=>{let l=i?.filter(d=>d.dirname=="");return jsx("ul",{children:l?.length>0&&l.map((d,p)=>jsx(ue.Fragment,{children:jsx(r,{item:d})},p))})},{items:t})},Fo=lr;var fr=({selectDisk:o})=>{let e=M();return jsxs(ue.Fragment,{children:[jsxs(Button,{variant:"ghost",onClick:()=>{e(xe(o)),e(J(""));},children:[jsx(Icon,{icon:"clarity:hard-disk-solid",className:"mr-1"}),o]}),jsx(Flex,{className:"hidden md:block",children:jsx(Fo,{})})]})},No=fr;var Do=({item:o})=>{let e=M(),[t,n]=ue.useState(null),{selectDisk:r,selectFolder:s}=P(i=>i.fmSlice),a=async({item:i})=>{let l=await e(Ee({disk:r,path:i.path}));if(l.payload&&!l.error){let d=l.payload?.type,p=new Blob([l.payload.data],{type:d});return URL.createObjectURL(p)}};return useDelay(async()=>{if(z(o))if(o?.url)n({url:o.url,path:o.path});else {let i=await a({item:o});n({url:i,path:o.path});}},200,[o]),jsx(Fragment,{children:t&&z(o)&&jsx("img",{className:"object-scale-down mr-auto ml-auto",src:t?.path===o.path?t.url:at,alt:o.filename})})};var Wt=ue.forwardRef(({item:o,handleClick:e,...t},n)=>{let{select:r,selects:s}=P(a=>a.fmSlice);return jsx(TooltipProvider,{children:jsxs(Tooltip,{children:[jsx(TooltipTrigger,{asChild:!0,...t,ref:n,children:jsx("button",{type:"button",className:cn$1("group relative p-2 w-[120px] h-[120px] hover:rounded-md hover:shadow-4 justify-center","data-[active=true]:bg-blue-200 data-[active=true]:rounded-md data-[active=true]:shadow-4"),"data-active":r?.path==o?.path||s&&s.length>0&&s?.some(a=>a.path==o.path)||!1,onClick:e,children:o&&o?.type==="file"?jsxs(Fragment,{children:[re(o?.extension)=="image"||re(o?.extension)=="video"?jsx(Do,{item:o}):jsx(Icon,{icon:Ue(o?.extension),className:"text-5xl mr-auto ml-auto"}),jsx("p",{className:"break-all",children:Ne(o?.filename)})]}):o?jsxs(Fragment,{children:[jsx(Icon,{icon:"mdi:folder-open",className:"text-5xl mr-auto ml-auto",color:"#FCD34D"}),jsx("p",{children:Ne(o.basename)})]}):null})}),jsx(TooltipPortal,{children:jsxs(TooltipContent,{children:[o?.basename,jsx(TooltipArrow,{className:"TooltipArrow"})]})})]})})});Wt.displayName="ItemGrid";var Io=({item:o,handleClick:e})=>jsx("span",{className:"inline-flex items-center",onClick:e,children:o.type==="file"?jsxs(Fragment,{children:[jsx(Icon,{icon:Ue(o.extension),className:"mr-1"}),jsx("p",{children:o.filename})]}):jsxs(Fragment,{children:[jsx(Icon,{icon:"mdi:folder-open",className:"mr-1"}),jsx("p",{children:Ne(o.basename)})]})});var Rr=({data:o,table:e,row:t})=>{let{t:n}=D(),r=M(),{executeClipboards:s,handlePaste:a,handleDownload:i}=j(),{view:l,clipboard:d,selects:p}=P(x=>x.fmSlice),{toggleModalDetail:u,toggleModalPreview:c,toggleModalRename:f,toggleModalEdit:m,toggleModalDelete:g,toggleModalCrop:v}=ve(),C=x=>{u(),r(ne(x));},F=async x=>{c(),r(ne(x));},L=x=>{m(),r(ne(x));},k=x=>{f(),r(ne(x));},b=x=>{g(),r(ne(x));},w=x=>{v(),r(ne(x));},R=[{label:n("label.detail"),shortcut:jsx(Icon,{icon:"mdi:information-outline"}),onClick:()=>C(o)},{label:n("label.preview"),shortcut:jsx(Icon,{icon:"mdi:eye"}),onClick:()=>F(o),disabled:!(o?.type=="file"&&re(o?.extension))},{label:n("label.rename"),shortcut:jsx(Icon,{icon:"mdi:rename-box"}),onClick:()=>k(o)},{label:n("label.edit"),shortcut:jsx(Icon,{icon:"mdi:pencil"}),onClick:()=>L(o),disabled:!(o?.type=="file"&&$e(o?.extension))},{label:n("label.crop"),shortcut:jsx(Icon,{icon:"mdi:baseline-crop"}),onClick:()=>w(o),disabled:!(o?.type=="file"&&re(o?.extension)=="image")},{label:n("label.copy"),shortcut:jsx(Icon,{icon:"mdi:content-copy"}),onClick:()=>{e?.getFilteredSelectedRowModel().rows.length>0||s(o,"copy");}},{label:n("label.cut"),shortcut:jsx(Icon,{icon:"mdi:content-cut"}),onClick:()=>{e?.getFilteredSelectedRowModel().rows.length>0||s(o,"cut");}},{label:n("label.paste"),shortcut:jsx(Icon,{icon:"mdi:content-paste"}),onClick:()=>a(),disabled:!d},{label:n("label.download"),shortcut:jsx(Icon,{icon:"mdi:download"}),onClick:()=>i(o)},{label:n("label.delete"),shortcut:jsx(Icon,{icon:"mdi:delete",color:"red"}),onClick:()=>{b(o);let x=setInterval(()=>{e?.resetRowSelection();},5e3);return clearInterval(x)}}],h=x=>{r(J(x.path));},y=x=>{po(x)&&(e?.resetRowSelection(),h(x));},N=ue.useCallback(x=>{let A=x.detail,K=x.ctrlKey;A===1?l==="list"?K?S(o):(t.toggleSelected(),r(ne(o))):l==="grid"&&(K?S(o):(r(ne(o)),r(ye()))):A===2&&o.type==="dir"&&(e?.resetRowSelection(),y(o));},[o,l,e,p]),S=x=>{if(p&&p.length>0){let A=[...p],K=A.findIndex(W=>W.path===x.path);K!==-1?A.splice(K,1):A.push(x),r(he(A));}else r(he([x]));};return jsx(ContextMenuCustom,{className:cn$1("items-center static",l=="list"?"flex":"flex-col"),asChild:l!="list",title:l=="list"&&o?jsx(Io,{item:o,handleClick:N}):l=="grid"&&o?jsx(Wt,{item:o,handleClick:N}):null,list:R})},dt=Rr;var Lr=()=>{let{t:o}=D(),{content:e}=P(a=>a.fmSlice),[t,n]=ue.useState([]),{handleMultipleClick:r}=j();return ue.useEffect(()=>{if(Object.values(e).length>0){let{directories:a,files:i}=e;n([...a,...i]);}},[e]),jsx(DataTable,{data:t,columns:[{accessorKey:"basename",enableColumnFilter:!0,header:({column:a})=>jsxs(Button,{variant:"ghost",onClick:()=>a.toggleSorting(a.getIsSorted()==="asc"),children:[o("label.name"),jsx(Icon,{icon:"mdi:unfold-more-horizontal",className:"ml-2 h-4 w-4"})]}),cell:({row:a,table:i})=>{let l=a.original;return jsx(dt,{data:l,row:a,table:i})}},{accessorKey:"size",header:({column:a})=>jsxs(Button,{variant:"ghost",onClick:()=>a.toggleSorting(a.getIsSorted()==="asc"),children:[o("label.size"),jsx(Icon,{icon:"mdi:unfold-more-horizontal",className:"ml-2 h-4 w-4"})]}),cell:({row:a})=>{let i=a.original;return jsx("div",{className:"capitalize",children:i?.type=="file"&&je(a.getValue("size"))})}},{accessorKey:"type",header:({column:a})=>jsxs(Button,{variant:"ghost",onClick:()=>a.toggleSorting(a.getIsSorted()==="asc"),children:[o("label.type"),jsx(Icon,{icon:"mdi:unfold-more-horizontal",className:"ml-2 h-4 w-4"})]}),cell:({row:a})=>{let i=a.original;return jsx("div",{className:"capitalize",children:`${a.getValue("type")} ${z(i)?i?.extension:""}`})}},{accessorKey:"timestamp",header:({column:a})=>jsxs(Button,{variant:"ghost",onClick:()=>a.toggleSorting(a.getIsSorted()==="asc"),children:[o("label.time"),jsx(Icon,{icon:"mdi:unfold-more-horizontal",className:"ml-2 h-4 w-4"})]}),cell:({row:a})=>jsx("div",{className:"capitalize",children:Ve(a.getValue("timestamp"))})}],onSelectRow:r,scrollable:!0,className:"h-[400px]",headerClass:"bg-gray-200 bg-opacity-100"})},zo=Lr;var Ur=({open:o,onClose:e})=>{let{t}=D(),n=M(),{select:r,selectDisk:s,selectFolder:a}=P(u=>u.fmSlice),i=[{name:"newName",label:t("label.new_name"),type:"text",iconStart:jsx(Icon,{icon:"mdi:label"}),iconEnd:r?.hasOwnProperty("extension")&&r.type=="file"?jsx("span",{className:"text-center",children:r?.extension}):"",placeholder:t("placeholder.new_name"),description:t("label.new_name")}],l=jo.object({...Object.fromEntries(i.map(u=>[u.name,jo.string().nonempty(`${u.label} ${t("label.required")}`)]))}),d=useForm({resolver:zodResolver(l),defaultValues:{...Object.fromEntries(i.map(u=>[u.name,""]))}}),p=async u=>{let c=r?.dirname,f=c?`${c}/${u.newName}${r?.hasOwnProperty("extension")&&r.type=="file"?`.${r?.extension}`:""}`:`${u.newName}${r?.hasOwnProperty("extension")&&r.type=="file"?`.${r?.extension}`:""}`,m={oldName:r?.path,newName:f,type:r?.type.toLocaleLowerCase(),disk:s},g=await n(Ie(m));if(!g.error&&g.payload){let v={title:g.payload.status,description:g.payload.message,status:g.payload.status};toast(v),n(U({disk:s,path:a}));}e(),d.reset();};return ue.useEffect(()=>{r&&z(r)&&(r.hasOwnProperty("extension")?d.setValue("newName",r?.filename):d.setValue("newName",r.basename));},[r]),jsx(Modal,{open:o,cancel:e,title:t("label.rename"),children:jsx(Form,{...d,children:jsxs("form",{onSubmit:d.handleSubmit(p),className:"space-y-3",children:[i.map((u,c)=>jsx(InputForm,{control:d.control,...u},c)),jsx(Button,{type:"submit",color:"success",children:t("common.save")})]})})})},Vo=Ur;var Wr=({open:o,onClose:e})=>{let{t}=D(),n=M(),{handleEdit:r}=j(),{selectDisk:s,select:a}=P(C=>C.fmSlice),[i,l]=ue.useState("textile"),[d,p]=ue.useState(""),[u,c]=ue.useState("");ue.useEffect(()=>{if(a&&z(a)){let C=$e(a.extension);if(C){let F=Object.keys(langs).find(L=>C.includes(L)??L.includes(C));l(F||"textile");}f();}},[o]);let f=async()=>{let C=await n(ze({disk:s,path:a?.path}));if(C.payload&&!C.error){let L=new TextDecoder("utf-8").decode(C.payload.data);p(L),c(L);}},m=ue.useCallback(C=>{c(C);},[]),g=async()=>{let C=new FormData;C.append("disk",s),C.append("path",a?.dirname);let F=new Blob([u],{type:"text/plain"}),L=new File([F],a?.basename,{type:"text/plain"});C.append("file",L),await r(C),v();},v=()=>{e(),c(void 0);};return jsx(DialogModal,{size:"4xl",open:o,cancel:v,title:t("label.edit"),action:g,draggable:!0,children:jsx(ScrollArea,{children:jsx(Br,{className:"max-h-[400px]",value:d,height:"auto",extensions:[loadLanguage(i)],onChange:m})})})},Uo=Wr;var Jr=({open:o,onClose:e})=>{let {t}=D();M();let {select:r,selectDisk:s,selectFolder:a,selects:i}=P(p=>p.fmSlice),{handleDelete:l}=j(),d=async()=>{i.length>0?await l({disk:s,items:i?.map(p=>({path:p.path,type:p.type}))}):r&&await l({disk:s,items:[{path:r?.path,type:r?.type}]}),e();};return jsx(Modal,{open:o,cancel:e,title:t("label.delete"),action:d,children:jsx("h4",{className:"text-red-500",children:t("ask.delete")})})},Bo=Jr;var ns=({open:o,onClose:e})=>{let{t}=D(),{handleNewFile:n}=j(),{selectDisk:r,selectFolder:s}=P(p=>p.fmSlice),a=[{name:"name",label:t("label.name"),type:"text",iconStart:jsx(Icon,{icon:"mdi:label"}),placeholder:t("placeholder.name"),description:t("label.name")}],i=jo.object({...Object.fromEntries(a.map(p=>[p.name,jo.string().min(1,`${p.label} ${t("label.required")}`)]))}),l=useForm({resolver:zodResolver(i),defaultValues:{...Object.fromEntries(a.map(p=>[p.name,""]))}}),d=async p=>{await n({disk:r,path:s,name:p.name}),e(),l.reset();};return jsx(Modal,{open:o,cancel:e,title:t("label.new_file"),children:jsx(Form,{...l,children:jsxs("form",{onSubmit:l.handleSubmit(d),className:"space-y-3",children:[a.map((p,u)=>jsx(InputForm,{label:p?.label,name:p?.name,iconStart:p?.iconStart,iconEnd:p?.iconEnd,type:p?.type,description:p?.description,control:l.control},u)),jsx(Button,{type:"submit",color:"success",children:t("common.save")})]})})})},Go=ns;var us=({open:o,onClose:e})=>{let{t}=D(),{handleNewFolder:n}=j(),{selectDisk:r,selectFolder:s}=P(p=>p.fmSlice),a=[{name:"name",label:t("label.name"),type:"text",iconStart:jsx(Icon,{icon:"mdi:label"}),placeholder:t("placeholder.name"),description:t("label.name")}],i=jo.object({...Object.fromEntries(a.map(p=>[p.name,jo.string().min(1,`${p.label} ${t("label.required")}`)]))}),l=useForm({resolver:zodResolver(i),defaultValues:{...Object.fromEntries(a.map(p=>[p.name,""]))}}),d=async p=>{await n({disk:r,path:s,name:p.name});e(),l.reset();};return jsx(Modal,{open:o,cancel:e,title:t("label.new_folder"),children:jsx(Form,{...l,children:jsxs("form",{onSubmit:l.handleSubmit(d),className:"space-y-3",children:[a.map((p,u)=>jsx(InputForm,{label:p?.label,name:p?.name,iconStart:p?.iconStart,iconEnd:p?.iconEnd,type:p?.type,description:p?.description,control:l.control},u)),jsx(Button,{type:"submit",color:"success",children:t("common.save")})]})})})},_o=us;var bs=({open:o,onClose:e,multiple:t})=>{let {t:n}=D(),{handleUpload:r}=j(),{selectDisk:s,selectFolder:a}=P(b=>b.fmSlice),[i,l]=ue.useState([]),[d,p]=ue.useState(!1),[u,c]=ue.useState(!1),f=ue.useRef(null),m=async()=>{try{let b=new FormData;if(b.append("disk",s),b.append("path",a),b.append("overwrite",d?"1":"0"),b.append("compress",u?"1":"0"),i.length>0)for(let w=0;w<i.length;w++)b.append("files[]",i[w],i[w].name);await r(b);}catch(b){console.log(b);}l([]),e();},g=ue.useCallback(b=>{if(b.preventDefault(),b.dataTransfer.files.length>0){let w=t?[...i]:[],R=Array.from(b.dataTransfer.files);for(let h of R)w.push(h);l(w);}},[i,t]),v=ue.useCallback(b=>{b.preventDefault();},[]),C=b=>{if(t&&b.target.files){let w=[...i],R=b.target.files;for(let h of Object.values(R))w.push(h);l(w);}else if(b.target.files){let w=[],R=b.target.files[0];w.push(R),l(w);}},F=b=>{let w=[...i];w.splice(i.indexOf(b),1),l(w);};return jsx(DialogModal,{open:o,cancel:()=>{e(),l([]);},title:n("label.upload_file"),action:m,size:"xl",children:jsxs(Card,{children:[jsxs(CardContent,{children:[jsx("div",{className:"max-w-xl",ref:f,onDrop:g,onDragOver:v,onDragEnter:v,children:jsxs("label",{className:"flex justify-center w-full h-32 px-4 transition bg-white border-2 border-gray-300 border-dashed rounded-md appearance-none cursor-pointer hover:border-gray-400 focus:outline-none",children:[jsxs("span",{className:"flex items-center space-x-2",children:[jsx(Icon,{icon:"mdi:cloud-arrow-up-outline",color:"green",fontSize:35}),jsxs("span",{className:"font-medium text-gray-600",children:[n("label.drag-drop"),jsx("span",{className:"text-blue-600 underline",children:`, ${n("label.or")} ${n("label.browse")}`})]})]}),jsx("input",{type:"file",name:"files",className:"hidden",onChange:C,multiple:t||!1})]})}),jsx("div",{className:"p-3 grid grid-cols-2 gap-2",children:i.length>0&&i.map((b,w)=>jsxs("div",{className:"flex flex-row items-center",children:[jsx("img",{className:"max-h-10",src:URL.createObjectURL(b),alt:""}),jsxs("div",{className:"text-left",children:[jsx("p",{className:"text-dark text-sm break-all",children:b.name}),jsx("p",{className:"text-gray-400 text-sm",children:je(b.size)})]}),jsx(Icon,{className:"ml-auto cursor-pointer",icon:"tabler:x",color:"red",fontSize:25,onClick:()=>F(b)})]},w))})]}),jsx(CardFooter,{children:jsxs("div",{className:"flex gap-2",children:[jsxs("div",{className:"flex items-center space-x-2",children:[jsx(Switch,{className:"form-checkbox",checked:d,onCheckedChange:b=>p(b)}),jsx("label",{children:n("label.overwrite")})]}),jsxs("div",{className:"flex items-center space-x-2",children:[jsx(Switch,{className:"form-checkbox",checked:u,onCheckedChange:b=>c(b)}),jsx("label",{children:n("label.compress")})]})]})})]})})},Jo=bs;var Cs=({open:o,onClose:e})=>{let{t}=D(),{getStreamFile:n}=j(),{select:r}=P(d=>d.fmSlice),[s,a]=ue.useState();ue.useEffect(()=>{i();},[o]);let i=async()=>{if(r&&z(r)){let d=await n(r);if(d){let{type:p,blobUrl:u,mimeType:c}=d;a({type:p,data:{title:r.basename,src:u,type:c?.includes("video")?`video/${r.extension}`:c}});}}};return jsx(DialogModal,{open:o,cancel:()=>{e(),a(void 0);},title:t("label.preview"),size:"2xl",children:s&&s.type=="image"?jsxs("div",{className:"items-center justify-center",children:[jsx(Label,{children:s?.data?.title}),jsx("img",{className:"object-scale-down h-100 ml-auto mr-auto",src:s?.data?.src??"/media/img/BlankFile.png"})]}):s&&(s?.type=="video"||s?.type=="audio")?jsxs("div",{className:"ml-auto mr-auto",children:[jsx(Label,{className:"text-center",children:s?.data?.title}),jsx(xs,{width:600,height:400,url:[{src:s?.data?.src,type:s?.data?.type}],controls:!0,muted:!0})]}):null})},Zo=Cs;var ws=ue.memo(dt),Ps=()=>{let{content:o}=P(g=>g.fmSlice),[e,t]=ue.useState([]),[n,r]=ue.useState(0),s=120,a=120,i=4,l=10,d=Math.ceil(600/(s+l))*i,p=Math.ceil(e.length/i)*(s+l);ue.useEffect(()=>{if(Object.values(o).length>0){let{directories:g,files:v}=o,C=[...g,...v];t(C);}},[o]);let u=g=>{r