export default { methods: { /** * Bytes to KB, MB, .. * @param bytes * @returns {string} */ bytesToHuman(bytes) { const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; if (bytes === 0) return '0 Bytes'; const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10); if (i === 0) return `${bytes} ${sizes[i]}`; return `${(bytes / (1024 ** i)).toFixed(1)} ${sizes[i]}`; }, /** * Timestamp to date * @param timestamp * @returns {string} */ timestampToDate(timestamp) { // if date not defined if (timestamp === undefined) return '-'; const date = new Date(timestamp * 1000); return date.toLocaleString(); }, /** * Mime type to icon * @param mime * @returns {*} */ mimeToIcon(mime) { // mime types const mimeTypes = { // image 'image/gif': 'fa-file-image', 'image/png': 'fa-file-image', 'image/jpeg': 'fa-file-image', 'image/bmp': 'fa-file-image', 'image/webp': 'fa-file-image', 'image/tiff': 'fa-file-image', 'image/svg+xml': 'fa-file-image', // text 'text/plain': 'fa-file-alt', // code 'text/javascript': 'fa-file-code', 'application/json': 'fa-file-code', 'text/markdown': 'fa-file-code', 'text/html': 'fa-file-code', 'text/css': 'fa-file-code', // audio 'audio/midi': 'fa-file-audio', 'audio/mpeg': 'fa-file-audio', 'audio/webm': 'fa-file-audio', 'audio/ogg': 'fa-file-audio', 'audio/wav': 'fa-file-audio', 'audio/aac': 'fa-file-audio', 'audio/x-wav': 'fa-file-audio', 'audio/mp4': 'fa-file-audio', // video 'video/webm': 'fa-file-video', 'video/ogg': 'fa-file-video', 'video/mpeg': 'fa-file-video', 'video/3gpp': 'fa-file-video', 'video/x-flv': 'fa-file-video', 'video/mp4': 'fa-file-video', 'video/quicktime': 'fa-file-video', 'video/x-msvideo': 'fa-file-video', 'video/vnd.dlna.mpeg-tts': 'fa-file-video', // archive 'application/x-bzip': 'fa-file-archive', 'application/x-bzip2': 'fa-file-archive', 'application/x-tar': 'fa-file-archive', 'application/gzip': 'fa-file-archive', 'application/zip': 'fa-file-archive', 'application/x-7z-compressed': 'fa-file-archive', 'application/x-rar-compressed': 'fa-file-archive', // application 'application/pdf': 'fa-file-pdf', 'application/rtf': 'fa-file-word', 'application/msword': 'fa-file-word', 'application/vnd.ms-word': 'fa-file-word', 'application/vnd.ms-excel': 'fa-file-excel', 'application/vnd.ms-powerpoint': 'fa-file-powerpoint', 'application/vnd.oasis.opendocument.text': 'fa-file-word', 'application/vnd.oasis.opendocument.spreadsheet': 'fa-file-excel', 'application/vnd.oasis.opendocument.presentation': 'fa-file-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml': 'fa-file-word', 'application/vnd.openxmlformats-officedocument.spreadsheetml': 'fa-file-excel', 'application/vnd.openxmlformats-officedocument.presentationml': 'fa-file-powerpoint', }; if (mimeTypes[mime] !== undefined) { return mimeTypes[mime]; } // file blank return 'fa-file'; }, /** * File extension to icon (font awesome) * @returns {*} * @param extension */ extensionToIcon(extension) { // files extensions const extensionTypes = { // images gif: 'fa-file-image', png: 'fa-file-image', jpeg: 'fa-file-image', jpg: 'fa-file-image', bmp: 'fa-file-image', psd: 'fa-file-image', svg: 'fa-file-image', ico: 'fa-file-image', ai: 'fa-file-image', tif: 'fa-file-image', tiff: 'fa-file-image', // text txt: 'fa-file-alt', json: 'fa-file-alt', log: 'fa-file-alt', ini: 'fa-file-alt', xml: 'fa-file-alt', md: 'fa-file-alt', env: 'fa-file-alt', // code js: 'fa-file-code', php: 'fa-file-code', css: 'fa-file-code', cpp: 'fa-file-code', class: 'fa-file-code', h: 'fa-file-code', java: 'fa-file-code', sh: 'fa-file-code', swift: 'fa-file-code', // audio aif: 'fa-file-audio', cda: 'fa-file-audio', mid: 'fa-file-audio', mp3: 'fa-file-audio', mpa: 'fa-file-audio', ogg: 'fa-file-audio', wav: 'fa-file-audio', wma: 'fa-file-audio', // video wmv: 'fa-file-video', avi: 'fa-file-video', mpeg: 'fa-file-video', mpg: 'fa-file-video', flv: 'fa-file-video', mp4: 'fa-file-video', mkv: 'fa-file-video', mov: 'fa-file-video', ts: 'fa-file-video', '3gpp': 'fa-file-video', // archive zip: 'fa-file-archive', arj: 'fa-file-archive', deb: 'fa-file-archive', pkg: 'fa-file-archive', rar: 'fa-file-archive', rpm: 'fa-file-archive', '7z': 'fa-file-archive', 'tar.gz': 'fa-file-archive', // application pdf: 'fa-file-pdf', rtf: 'fa-file-word', doc: 'fa-file-word', docx: 'fa-file-word', odt: 'fa-file-word', xlr: 'fa-file-excel', xls: 'fa-file-excel', xlsx: 'fa-file-excel', ppt: 'fa-file-powerpoint', pptx: 'fa-file-powerpoint', pptm: 'fa-file-powerpoint', xps: 'fa-file-powerpoint', potx: 'fa-file-powerpoint', }; if (extension && extensionTypes[extension.toLowerCase()] !== undefined) { return extensionTypes[extension.toLowerCase()]; } // blank file return 'fa-file'; }, }, };