@zohodesk/dot
Version:
In this Library, we Provide Some Basic Components to Build Your Application
122 lines (98 loc) • 2.7 kB
JavaScript
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';
}