UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

75 lines 9.2 kB
import { Pipe } from '@angular/core'; import { FilesService, GENERIC_FILE_TYPE } from './files.service'; import * as i0 from "@angular/core"; import * as i1 from "./files.service"; /** * Returns a generic file icon name matching the extension of the given File object. * One of the following icon names may be returned: file-archive-o, file-audio-o, * document-with-code, file, file-excel-o, file-image-o, pdf-2, file-powerpoint-o, * file-text, file-video-o, file-word-o, file, or unknown. * * ```html * <div *ngFor="let file of droppedFiles"> * <i class="icon" [c8yIcon]="file | fileIcon"></i> * </div> * ``` */ export class GenericFileIconPipe { constructor(filesService) { this.filesService = filesService; } transform(file) { const genericType = this.getGenericType(file); return this.getIcon(genericType); } getGenericType(file) { const extension = this.filesService.getFileExtension(file); for (const val of Object.values(GENERIC_FILE_TYPE)) { const type = this.matchGenericType(val, extension); if (type) { return type; } } return 'unknown'; } getIcon(genericType) { switch (genericType) { case GENERIC_FILE_TYPE.ARCHIVE: return 'file-archive-o'; case GENERIC_FILE_TYPE.AUDIO: return 'file-audio-o'; case GENERIC_FILE_TYPE.CODE: return 'document-with-code'; case GENERIC_FILE_TYPE.EPL: return 'file'; case GENERIC_FILE_TYPE.EXCEL: return 'file-excel-o'; case GENERIC_FILE_TYPE.IMAGE: return 'file-image-o'; case GENERIC_FILE_TYPE.PDF: return 'pdf-2'; case GENERIC_FILE_TYPE.POWERPOINT: return 'file-powerpoint-o'; case GENERIC_FILE_TYPE.TEXT: return 'file-text'; case GENERIC_FILE_TYPE.VIDEO: return 'file-video-o'; case GENERIC_FILE_TYPE.WORD: return 'file-word-o'; default: return 'file'; } } matchGenericType(type, ext) { const fileTypesMap = this.filesService.fileTypeExtensionsMap; const extensions = fileTypesMap[type].exts; return extensions.includes(ext) ? type : undefined; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenericFileIconPipe, deps: [{ token: i1.FilesService }], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GenericFileIconPipe, name: "fileIcon" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenericFileIconPipe, decorators: [{ type: Pipe, args: [{ name: 'fileIcon' }] }], ctorParameters: () => [{ type: i1.FilesService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1maWxlLWljb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2dlbmVyaWMtZmlsZS1pY29uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFbEU7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW1CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUcsQ0FBQztJQUVqRCxTQUFTLENBQUMsSUFBVTtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVU7UUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFbkQsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxXQUEwQztRQUNoRCxRQUFRLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLEtBQUssaUJBQWlCLENBQUMsT0FBTztnQkFDNUIsT0FBTyxnQkFBZ0IsQ0FBQztZQUMxQixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDekIsT0FBTyxvQkFBb0IsQ0FBQztZQUM5QixLQUFLLGlCQUFpQixDQUFDLEdBQUc7Z0JBQ3hCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssaUJBQWlCLENBQUMsS0FBSztnQkFDMUIsT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxpQkFBaUIsQ0FBQyxLQUFLO2dCQUMxQixPQUFPLGNBQWMsQ0FBQztZQUN4QixLQUFLLGlCQUFpQixDQUFDLEdBQUc7Z0JBQ3hCLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssaUJBQWlCLENBQUMsVUFBVTtnQkFDL0IsT0FBTyxtQkFBbUIsQ0FBQztZQUM3QixLQUFLLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3pCLE9BQU8sV0FBVyxDQUFDO1lBQ3JCLEtBQUssaUJBQWlCLENBQUMsS0FBSztnQkFDMUIsT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUN6QixPQUFPLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQVVPLGdCQUFnQixDQUN0QixJQUFPLEVBQ1AsR0FBVztRQUVYLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7UUFDN0QsTUFBTSxVQUFVLEdBQTBCLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbEUsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDOytHQWpFVSxtQkFBbUI7NkdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlc1NlcnZpY2UsIEdFTkVSSUNfRklMRV9UWVBFIH0gZnJvbSAnLi9maWxlcy5zZXJ2aWNlJztcblxuLyoqXG4gKiBSZXR1cm5zIGEgZ2VuZXJpYyBmaWxlIGljb24gbmFtZSBtYXRjaGluZyB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBnaXZlbiBGaWxlIG9iamVjdC5cbiAqIE9uZSBvZiB0aGUgZm9sbG93aW5nIGljb24gbmFtZXMgbWF5IGJlIHJldHVybmVkOiBmaWxlLWFyY2hpdmUtbywgZmlsZS1hdWRpby1vLFxuICogZG9jdW1lbnQtd2l0aC1jb2RlLCBmaWxlLCBmaWxlLWV4Y2VsLW8sIGZpbGUtaW1hZ2UtbywgcGRmLTIsIGZpbGUtcG93ZXJwb2ludC1vLFxuICogZmlsZS10ZXh0LCBmaWxlLXZpZGVvLW8sIGZpbGUtd29yZC1vLCBmaWxlLCBvciB1bmtub3duLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2YgZHJvcHBlZEZpbGVzXCI+XG4gKlx0PGkgY2xhc3M9XCJpY29uXCIgW2M4eUljb25dPVwiZmlsZSB8IGZpbGVJY29uXCI+PC9pPlxuICogPC9kaXY+XG4gKiBgYGBcbiAqL1xuQFBpcGUoeyBuYW1lOiAnZmlsZUljb24nIH0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0ZpbGVJY29uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlsZXNTZXJ2aWNlOiBGaWxlc1NlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IGdlbmVyaWNUeXBlID0gdGhpcy5nZXRHZW5lcmljVHlwZShmaWxlKTtcbiAgICByZXR1cm4gdGhpcy5nZXRJY29uKGdlbmVyaWNUeXBlKTtcbiAgfVxuXG4gIGdldEdlbmVyaWNUeXBlKGZpbGU6IEZpbGUpOiBHRU5FUklDX0ZJTEVfVFlQRSB8ICd1bmtub3duJyB7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gdGhpcy5maWxlc1NlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbihmaWxlKTtcblxuICAgIGZvciAoY29uc3QgdmFsIG9mIE9iamVjdC52YWx1ZXMoR0VORVJJQ19GSUxFX1RZUEUpKSB7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5tYXRjaEdlbmVyaWNUeXBlKHZhbCwgZXh0ZW5zaW9uKTtcblxuICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAndW5rbm93bic7XG4gIH1cblxuICBnZXRJY29uKGdlbmVyaWNUeXBlOiBHRU5FUklDX0ZJTEVfVFlQRSB8ICd1bmtub3duJyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChnZW5lcmljVHlwZSkge1xuICAgICAgY2FzZSBHRU5FUklDX0ZJTEVfVFlQRS5BUkNISVZFOlxuICAgICAgICByZXR1cm4gJ2ZpbGUtYXJjaGl2ZS1vJztcbiAgICAgIGNhc2UgR0VORVJJQ19GSUxFX1RZUEUuQVVESU86XG4gICAgICAgIHJldHVybiAnZmlsZS1hdWRpby1vJztcbiAgICAgIGNhc2UgR0VORVJJQ19GSUxFX1RZUEUuQ09ERTpcbiAgICAgICAgcmV0dXJuICdkb2N1bWVudC13aXRoLWNvZGUnO1xuICAgICAgY2FzZSBHRU5FUklDX0ZJTEVfVFlQRS5FUEw6XG4gICAgICAgIHJldHVybiAnZmlsZSc7XG4gICAgICBjYXNlIEdFTkVSSUNfRklMRV9UWVBFLkVYQ0VMOlxuICAgICAgICByZXR1cm4gJ2ZpbGUtZXhjZWwtbyc7XG4gICAgICBjYXNlIEdFTkVSSUNfRklMRV9UWVBFLklNQUdFOlxuICAgICAgICByZXR1cm4gJ2ZpbGUtaW1hZ2Utbyc7XG4gICAgICBjYXNlIEdFTkVSSUNfRklMRV9UWVBFLlBERjpcbiAgICAgICAgcmV0dXJuICdwZGYtMic7XG4gICAgICBjYXNlIEdFTkVSSUNfRklMRV9UWVBFLlBPV0VSUE9JTlQ6XG4gICAgICAgIHJldHVybiAnZmlsZS1wb3dlcnBvaW50LW8nO1xuICAgICAgY2FzZSBHRU5FUklDX0ZJTEVfVFlQRS5URVhUOlxuICAgICAgICByZXR1cm4gJ2ZpbGUtdGV4dCc7XG4gICAgICBjYXNlIEdFTkVSSUNfRklMRV9UWVBFLlZJREVPOlxuICAgICAgICByZXR1cm4gJ2ZpbGUtdmlkZW8tbyc7XG4gICAgICBjYXNlIEdFTkVSSUNfRklMRV9UWVBFLldPUkQ6XG4gICAgICAgIHJldHVybiAnZmlsZS13b3JkLW8nO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdmaWxlJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hdGNoR2VuZXJpY1R5cGU8VCBleHRlbmRzIGtleW9mIEZpbGVzU2VydmljZVsnZmlsZVR5cGVFeHRlbnNpb25zTWFwJ10+KFxuICAgIHR5cGU6IFQsXG4gICAgZXh0OiBGaWxlc1NlcnZpY2VbJ2ZpbGVUeXBlRXh0ZW5zaW9uc01hcCddW1RdWydleHRzJ11bbnVtYmVyXVxuICApOiBUO1xuICBwcml2YXRlIG1hdGNoR2VuZXJpY1R5cGU8VCBleHRlbmRzIGtleW9mIEZpbGVzU2VydmljZVsnZmlsZVR5cGVFeHRlbnNpb25zTWFwJ10+KFxuICAgIHR5cGU6IFQsXG4gICAgZXh0OiBzdHJpbmdcbiAgKTogVCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBtYXRjaEdlbmVyaWNUeXBlPFQgZXh0ZW5kcyBrZXlvZiBGaWxlc1NlcnZpY2VbJ2ZpbGVUeXBlRXh0ZW5zaW9uc01hcCddPihcbiAgICB0eXBlOiBULFxuICAgIGV4dDogc3RyaW5nXG4gICk6IEdFTkVSSUNfRklMRV9UWVBFIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBmaWxlVHlwZXNNYXAgPSB0aGlzLmZpbGVzU2VydmljZS5maWxlVHlwZUV4dGVuc2lvbnNNYXA7XG4gICAgY29uc3QgZXh0ZW5zaW9uczogUmVhZG9ubHlBcnJheTxzdHJpbmc+ID0gZmlsZVR5cGVzTWFwW3R5cGVdLmV4dHM7XG4gICAgcmV0dXJuIGV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0KSA/IHR5cGUgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==