@intzi1992/cdk-table-exporter
Version:
Abstract CdkTable Exporter
29 lines • 3.94 kB
JavaScript
import { ExportType } from '../export-type';
import * as FileSaver from 'file-saver-es';
import { MAT_TABLE_EXPORTER, DOT, XLS_REGEX } from '../constants';
export class FileUtil {
static save(content, mime, options) {
const blob = new Blob([content], { type: mime.contentTypeHeader });
let fileName = MAT_TABLE_EXPORTER;
if (options && options.fileName) {
fileName = options.fileName;
}
FileSaver.saveAs(blob, fileName + mime.extension);
}
static isXls(fileName) {
return fileName.toLowerCase().match(XLS_REGEX) != null;
}
static identifyExportType(fileName) {
if (fileName && FileUtil.isXls(fileName)) {
return ExportType.XLS;
}
else {
return ExportType.XLSX;
}
}
static removeExtension(options) {
if (options)
options.fileName = options.fileName?.split(DOT)[0];
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrLXRhYmxlLWV4cG9ydGVyL3NyYy9saWIvdXRpbC9maWxlLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxTQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSWxFLE1BQU0sT0FBTyxRQUFRO0lBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFlLEVBQUUsSUFBVSxFQUFFLE9BQWlCO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQztRQUNsQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDOUIsQ0FBQztRQUNELFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLFFBQWlCO1FBQ2hELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQWlCO1FBQzdDLElBQUksT0FBTztZQUNULE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3J0VHlwZSB9IGZyb20gJy4uL2V4cG9ydC10eXBlJztcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyLWVzJztcbmltcG9ydCB7IE1BVF9UQUJMRV9FWFBPUlRFUiwgRE9ULCBYTFNfUkVHRVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWltZSB9IGZyb20gJy4uL21pbWUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJy4uL29wdGlvbnMnO1xuXG5leHBvcnQgY2xhc3MgRmlsZVV0aWwge1xuICBwdWJsaWMgc3RhdGljIHNhdmUoY29udGVudDogc3RyaW5nLCBtaW1lOiBNaW1lLCBvcHRpb25zPzogT3B0aW9ucykge1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY29udGVudF0sIHt0eXBlOiBtaW1lLmNvbnRlbnRUeXBlSGVhZGVyfSk7XG4gICAgbGV0IGZpbGVOYW1lID0gTUFUX1RBQkxFX0VYUE9SVEVSO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZmlsZU5hbWUpIHtcbiAgICAgIGZpbGVOYW1lID0gb3B0aW9ucy5maWxlTmFtZTtcbiAgICB9XG4gICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCBmaWxlTmFtZSArIG1pbWUuZXh0ZW5zaW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNYbHMoZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmaWxlTmFtZS50b0xvd2VyQ2FzZSgpLm1hdGNoKFhMU19SRUdFWCkgIT0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaWRlbnRpZnlFeHBvcnRUeXBlKGZpbGVOYW1lPzogc3RyaW5nKTogRXhwb3J0VHlwZSB7XG4gICAgaWYgKGZpbGVOYW1lICYmIEZpbGVVdGlsLmlzWGxzKGZpbGVOYW1lKSkge1xuICAgICAgcmV0dXJuIEV4cG9ydFR5cGUuWExTO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRXhwb3J0VHlwZS5YTFNYO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVtb3ZlRXh0ZW5zaW9uKG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMpXG4gICAgICBvcHRpb25zLmZpbGVOYW1lID0gb3B0aW9ucy5maWxlTmFtZT8uc3BsaXQoRE9UKVswXTtcbiAgfVxufVxuIl19