@angel199/exporter 0.0.6 → 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.
@@ -15,13 +15,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
15
15
  }] });
16
16
 
17
17
  class ExportService {
18
- messageServices;
18
+ messagesService;
19
19
  constructor(messagesService) {
20
- this.messageServices = messagesService;
20
+ this.messagesService = messagesService;
21
21
  }
22
22
  // esempio metodo notifiche
23
23
  notify(message) {
24
- this.messageServices.add({ severity: 'info', summary: 'Export', detail: message });
24
+ this.messagesService.add({ severity: 'info', summary: 'Export', detail: message });
25
25
  }
26
26
  exportDataTable(data, allColumns, format, fileName) {
27
27
  const fieldsToKeep = allColumns.map(col => col.field);
@@ -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 messageServices: MessageService;\r\n\r\n constructor(messagesService:MessageService){\r\n this.messageServices = messagesService;\r\n }\r\n\r\n // esempio metodo notifiche\r\n private notify(message: string) {\r\n this.messageServices.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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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angel199/exporter",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "PrimeNG table exporter (Excel & PDF) for Angular",
5
5
  "author": "Angelo Castaldo",
6
6
  "license": "MIT",
@@ -7,7 +7,7 @@ declare class Exporter {
7
7
  }
8
8
 
9
9
  declare class ExportService {
10
- messageServices: MessageService;
10
+ private messagesService;
11
11
  constructor(messagesService: MessageService);
12
12
  private notify;
13
13
  exportDataTable(data: any[], allColumns: any[], format: 'PDF' | 'XLSX', fileName: string): void;