UNPKG

@zohodesk/dot

Version:

In this Library, we Provide Some Basic Components to Build Your Application

122 lines (98 loc) 2.7 kB
import { getBrowserWithVersion } from "../utils/General"; import { SUPPORTED_FILE_EXTENSIONS } from "./utils"; // const UNASSIGNED = 'Unassigned'; const BROWSER_SUPPORTED_FILES = ['pdf', 'text', 'txt', 'css', 'jpg', 'jpeg', 'gif', 'png', 'bmp', 'ico', 'sh', 'mp3', 'wav', 'ogg']; export function isAudioFile(fileName) { const extension = getExtensionFromFileName(fileName); return /mp3|wav|ogg/i.test(extension); } export function getExtensionFromFileName(fileName) { if (fileName && fileName.indexOf(".") !== -1) { return fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length).toLowerCase(); } return ""; } export function isBrowserSupportedFile(fileName) { const extension = getExtensionFromFileName(fileName); return BROWSER_SUPPORTED_FILES.indexOf(extension) !== -1; } export function getAttachmentIconDetails(fileName) { const extension = (getExtensionFromFileName(fileName) || '').toLowerCase(); if (!extension) { return 'ZD-GN-fileUnknown'; } const { image, doc, pdf, html, ppt, zip, word, xml, sheet, audio, video, mail, linux, css, exe, event } = SUPPORTED_FILE_EXTENSIONS; if (image.includes(extension)) { return 'ZD-EF-fileImage'; } if (doc.includes(extension)) { return 'ZD-GN-fileDoc'; } if (pdf.includes(extension)) { return 'ZD-EF-filePdf'; } if (ppt.includes(extension)) { return 'ZD-GN-filePpt'; } if (zip.includes(extension)) { return 'ZD-EF-fileZip'; } if (word.includes(extension)) { const OSName = (navigator.platform || '').toLowerCase(); return OSName.includes('mac') || OSName.includes('linux') ? 'ZD-EF-fileOffice' : 'ZD-EF-fileWord'; } if (xml.includes(extension)) { return 'ZD-EF-fileXml'; } if (sheet.includes(extension)) { return 'ZD-GN-fileSheet'; } if (audio.includes(extension)) { return 'ZD-EF-fileMp3'; } if (video.includes(extension)) { return 'ZD-EF-fileMp4'; } if (mail.includes(extension)) { return 'ZD-GN-fileMail'; } if (linux.includes(extension)) { return 'ZD-EF-linux'; } if (css.includes(extension)) { return 'ZD-EF-clrCss'; } if (exe.includes(extension)) { return 'ZD-EF-exe'; } if (event.includes(extension)) { return 'ZD-TK-event'; } if (html.includes(extension)) { const browser = (getBrowserWithVersion() || '').toLowerCase(); if (browser.includes('chrome') || browser.includes('safari')) { return 'ZD-EF-fileXml'; } if (browser.includes('ie') || browser.includes('edge')) { return 'ZD-EF-explorer'; } return 'ZD-EF-firebox'; } return 'ZD-GN-fileUnknown'; }