UI: updated public api in import-export service

This commit is contained in:
Vladyslav_Prykhodko 2025-09-26 11:59:10 +03:00
parent fc9c692e0b
commit cdcb2c4fd6

View File

@ -821,7 +821,7 @@ export class ImportExportService {
return cellData; return cellData;
} }
public exportCsv(data: {[key: string]: any}[], filename: string) { public exportCsv(data: {[key: string]: any}[], filename: string, normalizeFileName = false) {
let colsHead: string; let colsHead: string;
let colsData: string; let colsData: string;
if (data && data.length) { if (data && data.length) {
@ -836,18 +836,18 @@ export class ImportExportService {
colsData = ''; colsData = '';
} }
const csvData = `${colsHead}\n${colsData}`; const csvData = `${colsHead}\n${colsData}`;
this.downloadFile(csvData, filename, CSV_TYPE); this.downloadFile(csvData, filename, CSV_TYPE, normalizeFileName);
} }
public exportText(data: string | Array<string>, filename: string) { public exportText(data: string | Array<string>, filename: string, normalizeFileName = false) {
let content = data; let content = data;
if (Array.isArray(data)) { if (Array.isArray(data)) {
content = data.join('\n'); content = data.join('\n');
} }
this.downloadFile(content, filename, TEXT_TYPE); this.downloadFile(content, filename, TEXT_TYPE, normalizeFileName);
} }
public exportJSZip(data: object, filename: string): Observable<void> { public exportJSZip(data: object, filename: string, normalizeFileName = false): Observable<void> {
const exportJsSubjectSubject = new Subject<void>(); const exportJsSubjectSubject = new Subject<void>();
import('jszip').then((JSZip) => { import('jszip').then((JSZip) => {
try { try {
@ -859,7 +859,7 @@ export class ImportExportService {
} }
} }
jsZip.generateAsync({type: 'blob'}).then(content => { jsZip.generateAsync({type: 'blob'}).then(content => {
this.downloadFile(content, filename, ZIP_TYPE); this.downloadFile(content, filename, ZIP_TYPE, normalizeFileName);
exportJsSubjectSubject.next(null); exportJsSubjectSubject.next(null);
}).catch((e: any) => { }).catch((e: any) => {
exportJsSubjectSubject.error(e); exportJsSubjectSubject.error(e);
@ -1174,7 +1174,7 @@ export class ImportExportService {
this.downloadFile(data, filename, JSON_TYPE, normalizeFileName); this.downloadFile(data, filename, JSON_TYPE, normalizeFileName);
} }
private prepareFilename(filename: string, extension: string, normalizeFileName: boolean): string { private prepareFilename(filename: string, extension: string, normalizeFileName = false): string {
if (normalizeFileName) { if (normalizeFileName) {
filename = filename.toLowerCase().replace(/\s/g, '_'); filename = filename.toLowerCase().replace(/\s/g, '_');
} }
@ -1182,7 +1182,7 @@ export class ImportExportService {
return `${filename}.${extension}`; return `${filename}.${extension}`;
} }
private downloadFile(data: any, filename = 'download', fileType: FileType, normalizeFileName = false) { private downloadFile(data: any, filename = 'download', fileType: FileType, normalizeFileName: boolean) {
filename = this.prepareFilename(filename, fileType.extension, normalizeFileName); filename = this.prepareFilename(filename, fileType.extension, normalizeFileName);
const blob = new Blob([data], {type: fileType.mimeType}); const blob = new Blob([data], {type: fileType.mimeType});
const url = URL.createObjectURL(blob); const url = URL.createObjectURL(blob);