UNPKG

@sync-in/server

Version:

The secure, open-source platform for file storage, sharing, collaboration, and sync

2 lines (1 loc) 2.75 kB
import{b as T,c as I,d as b,f as M,h as S}from"./chunk-E32J777S.js";import{b as o,c as O,d as A,h as d,m as g,o as D,p as s,q as w}from"./chunk-RTNEBRKJ.js";import{q as c}from"./chunk-B6HQYQYG.js";import{$a as E,Ia as m,Na as u,_a as f,tb as p,ya as h}from"./chunk-O3YLAEVE.js";import{n}from"./chunk-DM4NXKEP.js";var N=class{constructor(t,i,r=!1,e){this.shares=[],this.links=[],this.spaces=[],this.syncs=[],this.newly=0,this.isRenamed=!1,this.isImage=!1,this.isViewable=!1,this.isEditable=!1,this.isCompressible=!0,this.isBeingDeleted=!1,this.isSelected=!1,this.isDisabled=!1,this.canBeReShared=!1,this.haveThumbnail=!1,this.setShares(u("shares",t)),Object.assign(this,t),this.path=`${i}/${this.path!=="."?`${this.path}/`:""}${this.root?.alias||this.name}`,this.mime=this.getMime(this.mime,r,e),this.updateHTimeAgo(this.mtime),this.setMimeUrl(),this.setHSize(),this.setRoot(r)}get dataUrl(){return`${T}/${this.path}`}get taskUrl(){return`${b}/${this.path}`}get thumbnailUrl(){return`${I}/${this.path}`}fallBackMimeUrl(){this.mimeUrl=g}rename(t){this.name=t,this.path=[...this.path.split("/").slice(0,-1),this.name].join("/")}updateMime(t){this.mime=t,this.setMimeUrl()}updateHTimeAgo(t){t??=m(null,!0),this.hTimeAgo=n(t).fromNow(!0),this.newly=E(t)}createLock(t){this.lock=t}removeLock(){this.lock=null}getExtension(){let t=this.name.lastIndexOf(".");return t>=0?this.name.slice(t+1).toLowerCase():""}getType(t){return this.isDir?t?A:O:o}getMime(t,i,r){if(this.isDir)return this.isViewable=!1,this.getType(i);if(!t||t===o)return this.isViewable=!0,this.shortMime=s.TEXT,this.getType(i);let e=this.getExtension(),l=t.indexOf("-"),a=l>=0?t.slice(0,l):t;return e===s.PDF?(this.shortMime=s.PDF,this.isViewable=!0,this.isEditable=r.onlyoffice===!0,t):r.collabora===!0&&M.has(e)||r.onlyoffice===!0&&S.has(e)?(this.shortMime=s.DOCUMENT,this.isEditable=!0,this.isViewable=!0,t):e==="mp4"?(this.isViewable=!0,this.shortMime=s.MEDIA,this.haveThumbnail=!0,t):a===s.IMAGE?(this.shortMime=s.IMAGE,this.isImage=!0,this.isViewable=!0,this.haveThumbnail=!0,t):a==="video"||a==="audio"?(this.shortMime=s.MEDIA,this.isViewable=!0,this.haveThumbnail=!0,t):D.has(t)?(this.isCompressible=!1,this.isViewable=!1,t):(w.has(e)||(this.shortMime=s.TEXT,this.isViewable=!0,this.isEditable=!0),t)}setMimeUrl(){this.mimeUrl=d(this.mime)}setRoot(t){this.root&&(this.root.enabled===!1&&(this.isDisabled=!0),this.root.hPerms=c(this.root.permissions,this.isDir?[]:[h.DELETE,h.ADD]),this.root?.owner?.login&&(this.root.owner.avatarUrl=p(this.root.owner.login)),this.canBeReShared=t&&h.SHARE_OUTSIDE in this.root.hPerms)}setHSize(){this.hSize=this.isDir?"\u25CF":f(this.size,0,!0)}setShares(t){if(t?.length)for(let i of t)i.type===0?this.shares.push(i):this.links.push(i)}};export{N as a};