{"version":3,"file":"utils.mjs","names":["iconMap.fileNames","iconMap.fileExtensions","iconMap.folderNames"],"sources":["../../src/MaterialFileTypeIcon/utils.ts"],"sourcesContent":["import iconMap from './icon-map.json';\nimport type { FileExtensionsKey, FileNamesKey, FolderNamesKey } from './type';\n\nfunction getFileExtension(fileName: string): string {\n  return fileName.slice(Math.max(0, fileName.lastIndexOf('.') + 1));\n}\n\nfunction getFileSuffix(fileName: string): FileExtensionsKey {\n  return fileName.slice(fileName.indexOf('.') + 1) as FileExtensionsKey;\n}\n\nexport function filenameFromPath(path: string): string {\n  const segments = path.split('/');\n  return segments.at(-1) ?? path;\n}\n\nexport function getIconNameForFileName(fileName: string) {\n  return (\n    iconMap.fileNames[fileName as FileNamesKey] ??\n    iconMap.fileNames[fileName.toLowerCase() as FileNamesKey] ??\n    iconMap.fileExtensions[getFileSuffix(fileName)] ??\n    iconMap.fileExtensions[getFileExtension(fileName) as FileExtensionsKey] ??\n    (fileName.endsWith('.html') ? 'html' : null) ??\n    (fileName.endsWith('.ts') ? 'typescript' : null) ??\n    (fileName.endsWith('.js') ? 'javascript' : null) ??\n    'file'\n  );\n}\n\nexport function getIconNameForDirectoryName(dirName: string) {\n  return (\n    iconMap.folderNames[dirName as FolderNamesKey] ??\n    iconMap.folderNames[dirName.toLowerCase() as FolderNamesKey] ??\n    'folder'\n  );\n}\n\nexport function getIconForFilePath(path: string) {\n  const fileName = filenameFromPath(path);\n  return getIconNameForFileName(fileName);\n}\n\nexport function getIconForDirectoryPath(path: string) {\n  const dirName = filenameFromPath(path);\n  return getIconNameForDirectoryName(dirName);\n}\n\nexport function getIconUrlByName(iconName: string, iconsUrl: string, open?: boolean): string {\n  return `${iconsUrl}/${iconName.toString()}${open ? '-open' : ''}.svg`;\n}\n\nexport function getIconUrlForFilePath({\n  path,\n  iconsUrl,\n  fallbackUnknownType,\n}: {\n  fallbackUnknownType: boolean;\n  iconsUrl: string;\n  path: string;\n}): string {\n  const iconName = getIconForFilePath(path);\n  if (fallbackUnknownType && iconName === 'file') return '';\n  return getIconUrlByName(iconName, iconsUrl);\n}\n\nexport function getIconUrlForDirectoryPath({\n  path,\n  iconsUrl,\n  open,\n  fallbackUnknownType,\n}: {\n  fallbackUnknownType: boolean;\n  iconsUrl: string;\n  open?: boolean;\n  path: string;\n}): string {\n  const iconName = getIconForDirectoryPath(path);\n  if (fallbackUnknownType && iconName === 'folder') return '';\n  return getIconUrlByName(iconName, iconsUrl, open);\n}\n"],"mappings":";;AAGA,SAAS,iBAAiB,UAA0B;AAClD,QAAO,SAAS,MAAM,KAAK,IAAI,GAAG,SAAS,YAAY,IAAI,GAAG,EAAE,CAAC;;AAGnE,SAAS,cAAc,UAAqC;AAC1D,QAAO,SAAS,MAAM,SAAS,QAAQ,IAAI,GAAG,EAAE;;AAGlD,SAAgB,iBAAiB,MAAsB;AAErD,QADiB,KAAK,MAAM,IAAI,CAChB,GAAG,GAAG,IAAI;;AAG5B,SAAgB,uBAAuB,UAAkB;AACvD,QACEA,UAAkB,aAClBA,UAAkB,SAAS,aAAa,KACxCC,eAAuB,cAAc,SAAS,KAC9CA,eAAuB,iBAAiB,SAAS,MAChD,SAAS,SAAS,QAAQ,GAAG,SAAS,UACtC,SAAS,SAAS,MAAM,GAAG,eAAe,UAC1C,SAAS,SAAS,MAAM,GAAG,eAAe,SAC3C;;AAIJ,SAAgB,4BAA4B,SAAiB;AAC3D,QACEC,YAAoB,YACpBA,YAAoB,QAAQ,aAAa,KACzC;;AAIJ,SAAgB,mBAAmB,MAAc;AAE/C,QAAO,uBADU,iBAAiB,KAAK,CACA;;AAGzC,SAAgB,wBAAwB,MAAc;AAEpD,QAAO,4BADS,iBAAiB,KAAK,CACK;;AAG7C,SAAgB,iBAAiB,UAAkB,UAAkB,MAAwB;AAC3F,QAAO,GAAG,SAAS,GAAG,SAAS,UAAU,GAAG,OAAO,UAAU,GAAG;;AAGlE,SAAgB,sBAAsB,EACpC,MACA,UACA,uBAKS;CACT,MAAM,WAAW,mBAAmB,KAAK;AACzC,KAAI,uBAAuB,aAAa,OAAQ,QAAO;AACvD,QAAO,iBAAiB,UAAU,SAAS;;AAG7C,SAAgB,2BAA2B,EACzC,MACA,UACA,MACA,uBAMS;CACT,MAAM,WAAW,wBAAwB,KAAK;AAC9C,KAAI,uBAAuB,aAAa,SAAU,QAAO;AACzD,QAAO,iBAAiB,UAAU,UAAU,KAAK"}