UNPKG

@augwit/ng2-file-upload

Version:
171 lines 17.8 kB
export class FileType { /* MS office */ // tslint:disable-next-line:variable-name static { this.mime_doc = [ 'application/msword', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', 'application/vnd.ms-word.document.macroEnabled.12', 'application/vnd.ms-word.template.macroEnabled.12' ]; } // tslint:disable-next-line:variable-name static { this.mime_xsl = [ 'application/vnd.ms-excel', 'application/vnd.ms-excel', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', 'application/vnd.ms-excel.sheet.macroEnabled.12', 'application/vnd.ms-excel.template.macroEnabled.12', 'application/vnd.ms-excel.addin.macroEnabled.12', 'application/vnd.ms-excel.sheet.binary.macroEnabled.12' ]; } // tslint:disable-next-line:variable-name static { this.mime_ppt = [ 'application/vnd.ms-powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.openxmlformats-officedocument.presentationml.template', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', 'application/vnd.ms-powerpoint.addin.macroEnabled.12', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12' ]; } /* PSD */ // tslint:disable-next-line:variable-name static { this.mime_psd = [ 'image/photoshop', 'image/x-photoshop', 'image/psd', 'application/photoshop', 'application/psd', 'zz-application/zz-winassoc-psd' ]; } /* Compressed files */ // tslint:disable-next-line:variable-name static { this.mime_compress = [ 'application/x-gtar', 'application/x-gcompress', 'application/compress', 'application/x-tar', 'application/x-rar-compressed', 'application/octet-stream', 'application/x-zip-compressed', 'application/zip-compressed', 'application/x-7z-compressed', 'application/gzip', 'application/x-bzip2' ]; } static getMimeClass(file) { let mimeClass = 'application'; if (file?.type && this.mime_psd.indexOf(file.type) !== -1) { mimeClass = 'image'; } else if (file?.type?.match('image.*')) { mimeClass = 'image'; } else if (file?.type?.match('video.*')) { mimeClass = 'video'; } else if (file?.type?.match('audio.*')) { mimeClass = 'audio'; } else if (file?.type === 'application/pdf') { mimeClass = 'pdf'; } else if (file?.type && this.mime_compress.indexOf(file.type) !== -1) { mimeClass = 'compress'; } else if (file?.type && this.mime_doc.indexOf(file.type) !== -1) { mimeClass = 'doc'; } else if (file?.type && this.mime_xsl.indexOf(file.type) !== -1) { mimeClass = 'xls'; } else if (file?.type && this.mime_ppt.indexOf(file.type) !== -1) { mimeClass = 'ppt'; } if (mimeClass === 'application' && file?.name) { mimeClass = this.fileTypeDetection(file.name); } return mimeClass; } static fileTypeDetection(inputFilename) { const types = { jpg: 'image', jpeg: 'image', tif: 'image', psd: 'image', bmp: 'image', png: 'image', nef: 'image', tiff: 'image', cr2: 'image', dwg: 'image', cdr: 'image', ai: 'image', indd: 'image', pin: 'image', cdp: 'image', skp: 'image', stp: 'image', '3dm': 'image', mp3: 'audio', wav: 'audio', wma: 'audio', mod: 'audio', m4a: 'audio', compress: 'compress', zip: 'compress', rar: 'compress', '7z': 'compress', lz: 'compress', z01: 'compress', bz2: 'compress', gz: 'compress', pdf: 'pdf', xls: 'xls', xlsx: 'xls', ods: 'xls', mp4: 'video', avi: 'video', wmv: 'video', mpg: 'video', mts: 'video', flv: 'video', '3gp': 'video', vob: 'video', m4v: 'video', mpeg: 'video', m2ts: 'video', mov: 'video', doc: 'doc', docx: 'doc', eps: 'doc', txt: 'doc', odt: 'doc', rtf: 'doc', ppt: 'ppt', pptx: 'ppt', pps: 'ppt', ppsx: 'ppt', odp: 'ppt' }; const chunks = inputFilename.split('.'); if (chunks.length < 2) { return 'application'; } const extension = chunks[chunks.length - 1].toLowerCase(); if (types[extension] === undefined) { return 'application'; } else { return types[extension]; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZzItZmlsZS11cGxvYWQvZmlsZS11cGxvYWQvZmlsZS10eXBlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxRQUFRO0lBQ25CLGlCQUFpQjtJQUNqQix5Q0FBeUM7YUFDbEMsYUFBUSxHQUFhO1FBQzFCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIseUVBQXlFO1FBQ3pFLHlFQUF5RTtRQUN6RSxrREFBa0Q7UUFDbEQsa0RBQWtEO0tBQ25ELENBQUM7SUFDRix5Q0FBeUM7YUFDbEMsYUFBUSxHQUFhO1FBQzFCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLG1FQUFtRTtRQUNuRSxzRUFBc0U7UUFDdEUsZ0RBQWdEO1FBQ2hELG1EQUFtRDtRQUNuRCxnREFBZ0Q7UUFDaEQsdURBQXVEO0tBQ3hELENBQUM7SUFDRix5Q0FBeUM7YUFDbEMsYUFBUSxHQUFhO1FBQzFCLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLCtCQUErQjtRQUMvQiwyRUFBMkU7UUFDM0UsdUVBQXVFO1FBQ3ZFLHdFQUF3RTtRQUN4RSxxREFBcUQ7UUFDckQsNERBQTREO1FBQzVELDREQUE0RDtRQUM1RCx5REFBeUQ7S0FDMUQsQ0FBQztJQUVGLFNBQVM7SUFDVCx5Q0FBeUM7YUFDbEMsYUFBUSxHQUFhO1FBQzFCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLHVCQUF1QjtRQUN2QixpQkFBaUI7UUFDakIsZ0NBQWdDO0tBQ2pDLENBQUM7SUFFRixzQkFBc0I7SUFDdEIseUNBQXlDO2FBQ2xDLGtCQUFhLEdBQWE7UUFDL0Isb0JBQW9CO1FBQ3BCLHlCQUF5QjtRQUN6QixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLDhCQUE4QjtRQUM5QiwwQkFBMEI7UUFDMUIs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QUFFLENBQUM7UUFDNUQsSUFBSSxLQUFLLENBQUUsU0FBUyxDQUFFLEtBQUssU0FBUyxFQUFFO1lBQ3BDLE9BQU8sYUFBYSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBRSxTQUFTLENBQUUsQ0FBQztTQUMzQjtJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlTGlrZU9iamVjdCB9IGZyb20gJy4uL2luZGV4JztcblxuZXhwb3J0IGNsYXNzIEZpbGVUeXBlIHtcbiAgLyogIE1TIG9mZmljZSAgKi9cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgc3RhdGljIG1pbWVfZG9jOiBzdHJpbmdbXSA9IFtcbiAgICAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZScsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLmRvY3VtZW50Lm1hY3JvRW5hYmxlZC4xMicsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvRW5hYmxlZC4xMidcbiAgXTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgc3RhdGljIG1pbWVfeHNsOiBzdHJpbmdbXSA9IFtcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZScsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5tYWNyb0VuYWJsZWQuMTInLFxuICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGVtcGxhdGUubWFjcm9FbmFibGVkLjEyJyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC4xMicsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVkLjEyJ1xuICBdO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBzdGF0aWMgbWltZV9wcHQ6IHN0cmluZ1tdID0gW1xuICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLFxuICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGUnLFxuICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93JyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9FbmFibGVkLjEyJyxcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvRW5hYmxlZC4xMicsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb0VuYWJsZWQuMTInLFxuICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9FbmFibGVkLjEyJ1xuICBdO1xuXG4gIC8qIFBTRCAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBzdGF0aWMgbWltZV9wc2Q6IHN0cmluZ1tdID0gW1xuICAgICdpbWFnZS9waG90b3Nob3AnLFxuICAgICdpbWFnZS94LXBob3Rvc2hvcCcsXG4gICAgJ2ltYWdlL3BzZCcsXG4gICAgJ2FwcGxpY2F0aW9uL3Bob3Rvc2hvcCcsXG4gICAgJ2FwcGxpY2F0aW9uL3BzZCcsXG4gICAgJ3p6LWFwcGxpY2F0aW9uL3p6LXdpbmFzc29jLXBzZCdcbiAgXTtcblxuICAvKiBDb21wcmVzc2VkIGZpbGVzICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHN0YXRpYyBtaW1lX2NvbXByZXNzOiBzdHJpbmdbXSA9IFtcbiAgICAnYXBwbGljYXRpb24veC1ndGFyJyxcbiAgICAnYXBwbGljYXRpb24veC1nY29tcHJlc3MnLFxuICAgICdhcHBsaWNhdGlvbi9jb21wcmVzcycsXG4gICAgJ2FwcGxpY2F0aW9uL3gtdGFyJyxcbiAgICAnYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZCcsXG4gICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgJ2FwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQnLFxuICAgICdhcHBsaWNhdGlvbi96aXAtY29tcHJlc3NlZCcsXG4gICAgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCcsXG4gICAgJ2FwcGxpY2F0aW9uL2d6aXAnLFxuICAgICdhcHBsaWNhdGlvbi94LWJ6aXAyJ1xuICBdO1xuXG4gIHN0YXRpYyBnZXRNaW1lQ2xhc3MoZmlsZTogRmlsZUxpa2VPYmplY3QpOiBzdHJpbmcge1xuICAgIGxldCBtaW1lQ2xhc3MgPSAnYXBwbGljYXRpb24nO1xuICAgIGlmIChmaWxlPy50eXBlICYmIHRoaXMubWltZV9wc2QuaW5kZXhPZihmaWxlLnR5cGUpICE9PSAtMSkge1xuICAgICAgbWltZUNsYXNzID0gJ2ltYWdlJztcbiAgICB9IGVsc2UgaWYgKGZpbGU/LnR5cGU/Lm1hdGNoKCdpbWFnZS4qJykpIHtcbiAgICAgIG1pbWVDbGFzcyA9ICdpbWFnZSc7XG4gICAgfSBlbHNlIGlmIChmaWxlPy50eXBlPy5tYXRjaCgndmlkZW8uKicpKSB7XG4gICAgICBtaW1lQ2xhc3MgPSAndmlkZW8nO1xuICAgIH0gZWxzZSBpZiAoZmlsZT8udHlwZT8ubWF0Y2goJ2F1ZGlvLionKSkge1xuICAgICAgbWltZUNsYXNzID0gJ2F1ZGlvJztcbiAgICB9IGVsc2UgaWYgKGZpbGU/LnR5cGUgPT09ICdhcHBsaWNhdGlvbi9wZGYnKSB7XG4gICAgICBtaW1lQ2xhc3MgPSAncGRmJztcbiAgICB9IGVsc2UgaWYgKGZpbGU/LnR5cGUgJiYgdGhpcy5taW1lX2NvbXByZXNzLmluZGV4T2YoZmlsZS50eXBlKSAhPT0gLTEpIHtcbiAgICAgIG1pbWVDbGFzcyA9ICdjb21wcmVzcyc7XG4gICAgfSBlbHNlIGlmIChmaWxlPy50eXBlICYmIHRoaXMubWltZV9kb2MuaW5kZXhPZihmaWxlLnR5cGUpICE9PSAtMSkge1xuICAgICAgbWltZUNsYXNzID0gJ2RvYyc7XG4gICAgfSBlbHNlIGlmIChmaWxlPy50eXBlICYmIHRoaXMubWltZV94c2wuaW5kZXhPZihmaWxlLnR5cGUpICE9PSAtMSkge1xuICAgICAgbWltZUNsYXNzID0gJ3hscyc7XG4gICAgfSBlbHNlIGlmIChmaWxlPy50eXBlICYmIHRoaXMubWltZV9wcHQuaW5kZXhPZihmaWxlLnR5cGUpICE9PSAtMSkge1xuICAgICAgbWltZUNsYXNzID0gJ3BwdCc7XG4gICAgfVxuICAgIGlmIChtaW1lQ2xhc3MgPT09ICdhcHBsaWNhdGlvbicgJiYgZmlsZT8ubmFtZSkge1xuICAgICAgbWltZUNsYXNzID0gdGhpcy5maWxlVHlwZURldGVjdGlvbihmaWxlLm5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBtaW1lQ2xhc3M7XG4gIH1cblxuICBzdGF0aWMgZmlsZVR5cGVEZXRlY3Rpb24oaW5wdXRGaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlczogeyBbIGtleTogc3RyaW5nIF06IHN0cmluZyB9ID0ge1xuICAgICAganBnOiAnaW1hZ2UnLFxuICAgICAganBlZzogJ2ltYWdlJyxcbiAgICAgIHRpZjogJ2ltYWdlJyxcbiAgICAgIHBzZDogJ2ltYWdlJyxcbiAgICAgIGJtcDogJ2ltYWdlJyxcbiAgICAgIHBuZzogJ2ltYWdlJyxcbiAgICAgIG5lZjogJ2ltYWdlJyxcbiAgICAgIHRpZmY6ICdpbWFnZScsXG4gICAgICBjcjI6ICdpbWFnZScsXG4gICAgICBkd2c6ICdpbWFnZScsXG4gICAgICBjZHI6ICdpbWFnZScsXG4gICAgICBhaTogJ2ltYWdlJyxcbiAgICAgIGluZGQ6ICdpbWFnZScsXG4gICAgICBwaW46ICdpbWFnZScsXG4gICAgICBjZHA6ICdpbWFnZScsXG4gICAgICBza3A6ICdpbWFnZScsXG4gICAgICBzdHA6ICdpbWFnZScsXG4gICAgICAnM2RtJzogJ2ltYWdlJyxcbiAgICAgIG1wMzogJ2F1ZGlvJyxcbiAgICAgIHdhdjogJ2F1ZGlvJyxcbiAgICAgIHdtYTogJ2F1ZGlvJyxcbiAgICAgIG1vZDogJ2F1ZGlvJyxcbiAgICAgIG00YTogJ2F1ZGlvJyxcbiAgICAgIGNvbXByZXNzOiAnY29tcHJlc3MnLFxuICAgICAgemlwOiAnY29tcHJlc3MnLFxuICAgICAgcmFyOiAnY29tcHJlc3MnLFxuICAgICAgJzd6JzogJ2NvbXByZXNzJyxcbiAgICAgIGx6OiAnY29tcHJlc3MnLFxuICAgICAgejAxOiAnY29tcHJlc3MnLFxuICAgICAgYnoyOiAnY29tcHJlc3MnLFxuICAgICAgZ3o6ICdjb21wcmVzcycsXG4gICAgICBwZGY6ICdwZGYnLFxuICAgICAgeGxzOiAneGxzJyxcbiAgICAgIHhsc3g6ICd4bHMnLFxuICAgICAgb2RzOiAneGxzJyxcbiAgICAgIG1wNDogJ3ZpZGVvJyxcbiAgICAgIGF2aTogJ3ZpZGVvJyxcbiAgICAgIHdtdjogJ3ZpZGVvJyxcbiAgICAgIG1wZzogJ3ZpZGVvJyxcbiAgICAgIG10czogJ3ZpZGVvJyxcbiAgICAgIGZsdjogJ3ZpZGVvJyxcbiAgICAgICczZ3AnOiAndmlkZW8nLFxuICAgICAgdm9iOiAndmlkZW8nLFxuICAgICAgbTR2OiAndmlkZW8nLFxuICAgICAgbXBlZzogJ3ZpZGVvJyxcbiAgICAgIG0ydHM6ICd2aWRlbycsXG4gICAgICBtb3Y6ICd2aWRlbycsXG4gICAgICBkb2M6ICdkb2MnLFxuICAgICAgZG9jeDogJ2RvYycsXG4gICAgICBlcHM6ICdkb2MnLFxuICAgICAgdHh0OiAnZG9jJyxcbiAgICAgIG9kdDogJ2RvYycsXG4gICAgICBydGY6ICdkb2MnLFxuICAgICAgcHB0OiAncHB0JyxcbiAgICAgIHBwdHg6ICdwcHQnLFxuICAgICAgcHBzOiAncHB0JyxcbiAgICAgIHBwc3g6ICdwcHQnLFxuICAgICAgb2RwOiAncHB0J1xuICAgIH07XG5cbiAgICBjb25zdCBjaHVua3MgPSBpbnB1dEZpbGVuYW1lLnNwbGl0KCcuJyk7XG4gICAgaWYgKGNodW5rcy5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uJztcbiAgICB9XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gY2h1bmtzWyBjaHVua3MubGVuZ3RoIC0gMSBdLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHR5cGVzWyBleHRlbnNpb24gXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHR5cGVzWyBleHRlbnNpb24gXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==