@angel199/exporter 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component,
|
|
3
|
-
import { MessageService } from 'primeng/api';
|
|
2
|
+
import { Component, Injectable } from '@angular/core';
|
|
4
3
|
import jsPDF from 'jspdf';
|
|
5
4
|
import autoTable from 'jspdf-autotable';
|
|
6
5
|
import * as FileSaver from 'file-saver';
|
|
6
|
+
import * as i1 from 'primeng/api';
|
|
7
7
|
|
|
8
8
|
class Exporter {
|
|
9
9
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: Exporter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -15,8 +15,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
15
15
|
}] });
|
|
16
16
|
|
|
17
17
|
class ExportService {
|
|
18
|
-
|
|
19
|
-
messagesService
|
|
18
|
+
messagesService;
|
|
19
|
+
constructor(messagesService) {
|
|
20
|
+
this.messagesService = messagesService;
|
|
21
|
+
}
|
|
20
22
|
// esempio metodo notifiche
|
|
21
23
|
notify(message) {
|
|
22
24
|
this.messagesService.add({ severity: 'info', summary: 'Export', detail: message });
|
|
@@ -69,7 +71,7 @@ class ExportService {
|
|
|
69
71
|
});
|
|
70
72
|
doc.save(`${fileName}.pdf`);
|
|
71
73
|
}
|
|
72
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
74
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ExportService, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
73
75
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ExportService, providedIn: 'root' });
|
|
74
76
|
}
|
|
75
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ExportService, decorators: [{
|
|
@@ -77,7 +79,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
77
79
|
args: [{
|
|
78
80
|
providedIn: 'root'
|
|
79
81
|
}]
|
|
80
|
-
}] });
|
|
82
|
+
}], ctorParameters: () => [{ type: i1.MessageService }] });
|
|
81
83
|
|
|
82
84
|
/*
|
|
83
85
|
* Public API Surface of exporter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angel199-exporter.mjs","sources":["../../../projects/exporter/src/lib/exporter.ts","../../../projects/exporter/src/lib/exporter.service.ts","../../../projects/exporter/src/public-api.ts","../../../projects/exporter/src/angel199-exporter.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-exporter',\r\n imports: [],\r\n template: ``,\r\n styles: ``,\r\n})\r\nexport class Exporter {\r\n\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { MessageService } from 'primeng/api'; // uso diretto della libreria\r\n\r\nimport jsPDF from 'jspdf';\r\nimport autoTable from 'jspdf-autotable';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n\r\n
|
|
1
|
+
{"version":3,"file":"angel199-exporter.mjs","sources":["../../../projects/exporter/src/lib/exporter.ts","../../../projects/exporter/src/lib/exporter.service.ts","../../../projects/exporter/src/public-api.ts","../../../projects/exporter/src/angel199-exporter.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-exporter',\r\n imports: [],\r\n template: ``,\r\n styles: ``,\r\n})\r\nexport class Exporter {\r\n\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { MessageService } from 'primeng/api'; // uso diretto della libreria\r\n\r\nimport jsPDF from 'jspdf';\r\nimport autoTable from 'jspdf-autotable';\r\nimport * as FileSaver from 'file-saver';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n \r\n\r\n constructor(private messagesService:MessageService){}\r\n\r\n // esempio metodo notifiche\r\n private notify(message: string) {\r\n this.messagesService.add({ severity: 'info', summary: 'Export', detail: message });\r\n }\r\n\r\n exportDataTable(\r\n data: any[],\r\n allColumns: any[],\r\n format: 'PDF' | 'XLSX',\r\n fileName: string\r\n ) {\r\n\r\n const fieldsToKeep = allColumns.map(col => col.field);\r\n const headers = allColumns.map(col => col.header);\r\n\r\n const filteredArray = data.map(item => {\r\n const result: any = {};\r\n\r\n fieldsToKeep.forEach(field => {\r\n const column = allColumns.find(c => c.field === field);\r\n if (column && item[field] !== undefined) {\r\n result[column.header] = item[field];\r\n }\r\n });\r\n\r\n return result;\r\n });\r\n\r\n this.notify(\"Attendere, il report è in fase di caricamento.\");\r\n\r\n if (format === 'XLSX') {\r\n this.exportExcel(filteredArray, headers, fileName);\r\n } else {\r\n this.exportPdf(filteredArray, headers, fileName);\r\n }\r\n }\r\n\r\n private exportExcel(\r\n data: Record<string, any>[],\r\n headers: string[],\r\n fileName: string\r\n ) {\r\n import('xlsx').then(xlsx => {\r\n\r\n const worksheet = xlsx.utils.json_to_sheet(data, {\r\n header: headers\r\n });\r\n\r\n const workbook = {\r\n Sheets: { [fileName]: worksheet },\r\n SheetNames: [fileName]\r\n };\r\n\r\n const excelBuffer = xlsx.write(workbook, {\r\n bookType: 'xlsx',\r\n type: 'array'\r\n });\r\n\r\n const blob = new Blob([excelBuffer], {\r\n type: 'application/octet-stream'\r\n });\r\n\r\n FileSaver.saveAs(blob, `${fileName}.xlsx`);\r\n });\r\n }\r\n\r\n async exportPdf(data: any[], headers: string[], fileName: string) {\r\n\r\n const doc = new jsPDF();\r\n\r\n autoTable(doc, {\r\n head: [headers],\r\n body: data.map(obj => headers.map(h => obj[h] ?? ''))\r\n });\r\n\r\n doc.save(`${fileName}.pdf`);\r\n}\r\n}\r\n\r\n","/*\r\n * Public API Surface of exporter\r\n */\r\n\r\nexport * from './lib/exporter';\r\nexport * from './lib/exporter.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,8 @@ declare class Exporter {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
declare class ExportService {
|
|
10
|
-
messagesService
|
|
10
|
+
private messagesService;
|
|
11
|
+
constructor(messagesService: MessageService);
|
|
11
12
|
private notify;
|
|
12
13
|
exportDataTable(data: any[], allColumns: any[], format: 'PDF' | 'XLSX', fileName: string): void;
|
|
13
14
|
private exportExcel;
|