UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

41 lines (39 loc) 1.79 kB
import { fileExtensions, fileNames, folderNames } from "./icon-map.mjs"; //#region src/MaterialFileTypeIcon/utils.ts function getFileExtension(fileName) { return fileName.slice(Math.max(0, fileName.lastIndexOf(".") + 1)); } function getFileSuffix(fileName) { return fileName.slice(fileName.indexOf(".") + 1); } function filenameFromPath(path) { return path.split("/").at(-1) ?? path; } function getIconNameForFileName(fileName) { return fileNames[fileName] ?? fileNames[fileName.toLowerCase()] ?? fileExtensions[getFileSuffix(fileName)] ?? fileExtensions[getFileExtension(fileName)] ?? (fileName.endsWith(".html") ? "html" : null) ?? (fileName.endsWith(".ts") ? "typescript" : null) ?? (fileName.endsWith(".js") ? "javascript" : null) ?? "file"; } function getIconNameForDirectoryName(dirName) { return folderNames[dirName] ?? folderNames[dirName.toLowerCase()] ?? "folder"; } function getIconForFilePath(path) { return getIconNameForFileName(filenameFromPath(path)); } function getIconForDirectoryPath(path) { return getIconNameForDirectoryName(filenameFromPath(path)); } function getIconUrlByName(iconName, iconsUrl, open) { return `${iconsUrl}/${iconName.toString()}${open ? "-open" : ""}.svg`; } function getIconUrlForFilePath({ path, iconsUrl, fallbackUnknownType }) { const iconName = getIconForFilePath(path); if (fallbackUnknownType && iconName === "file") return ""; return getIconUrlByName(iconName, iconsUrl); } function getIconUrlForDirectoryPath({ path, iconsUrl, open, fallbackUnknownType }) { const iconName = getIconForDirectoryPath(path); if (fallbackUnknownType && iconName === "folder") return ""; return getIconUrlByName(iconName, iconsUrl, open); } //#endregion export { getIconUrlForDirectoryPath, getIconUrlForFilePath }; //# sourceMappingURL=utils.mjs.map