@dbg-riskit/angular-excel-export 18.1.0 → 20.0.0

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,8 +1,6 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
- import { Injectable, Directive, Input, NgModule } from '@angular/core';
4
- import * as i2 from '@dbg-riskit/common';
5
- import { deepClone } from '@dbg-riskit/common';
2
+ import { Injectable, inject, ElementRef, Input, Directive } from '@angular/core';
3
+ import { deepClone, Logger } from '@dbg-riskit/common';
6
4
  import * as XLSX from 'xlsx';
7
5
  import { BaseComponent } from '@dbg-riskit/angular-view';
8
6
 
@@ -89,36 +87,22 @@ class ExcelExportService {
89
87
  isArrayOfArrays(array) {
90
88
  return array.every((item) => Array.isArray(item));
91
89
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
93
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportService }); }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: ExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: ExcelExportService, providedIn: 'root' }); }
94
92
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportService, decorators: [{
96
- type: Injectable
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: ExcelExportService, decorators: [{
94
+ type: Injectable,
95
+ args: [{ providedIn: 'root' }]
97
96
  }] });
98
97
 
99
98
  class ExcelFileExportDirective extends BaseComponent {
100
- constructor(elementRef, excelExportService, logger) {
101
- super();
102
- this.elementRef = elementRef;
103
- this.excelExportService = excelExportService;
104
- this.logger = logger;
99
+ constructor() {
100
+ super(...arguments);
101
+ this.elementRef = inject(ElementRef);
102
+ this.excelExportService = inject(ExcelExportService);
103
+ this.logger = inject(Logger);
105
104
  this.filename = 'data';
106
105
  }
107
- isDisabled() {
108
- if (this.elementRef.nativeElement.disabled === true) {
109
- return true;
110
- }
111
- if (this.disabled == null) {
112
- return false;
113
- }
114
- switch (typeof this.disabled) {
115
- case 'boolean':
116
- return this.disabled;
117
- case 'string':
118
- return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';
119
- }
120
- return false;
121
- }
122
106
  export() {
123
107
  if (this.isDisabled()) {
124
108
  return;
@@ -143,10 +127,25 @@ class ExcelFileExportDirective extends BaseComponent {
143
127
  this.excelExportService.exportAsExcel(this.data, this.filename, this.columns, this.tabs);
144
128
  }
145
129
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelFileExportDirective, deps: [{ token: i0.ElementRef }, { token: ExcelExportService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Directive }); }
147
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ExcelFileExportDirective, selector: "[risk-xlsx-export]", inputs: { columns: ["risk-xlsx-export-columns", "columns"], data: ["risk-xlsx-export", "data"], filename: ["risk-xlsx-export-filename", "filename"], tabs: ["risk-xlsx-export-tabs", "tabs"], disabled: "disabled" }, host: { listeners: { "click": "export()" }, properties: { "class.risk-xlsx-export": "true" } }, usesInheritance: true, ngImport: i0 }); }
130
+ isDisabled() {
131
+ if (this.elementRef.nativeElement.disabled === true) {
132
+ return true;
133
+ }
134
+ if (this.disabled == null) {
135
+ return false;
136
+ }
137
+ switch (typeof this.disabled) {
138
+ case 'boolean':
139
+ return this.disabled;
140
+ case 'string':
141
+ return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';
142
+ }
143
+ return false;
144
+ }
145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: ExcelFileExportDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
146
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.12", type: ExcelFileExportDirective, isStandalone: true, selector: "[risk-xlsx-export]", inputs: { columns: ["risk-xlsx-export-columns", "columns"], data: ["risk-xlsx-export", "data"], filename: ["risk-xlsx-export-filename", "filename"], tabs: ["risk-xlsx-export-tabs", "tabs"], disabled: "disabled" }, host: { listeners: { "click": "export()" }, properties: { "class.risk-xlsx-export": "true" } }, usesInheritance: true, ngImport: i0 }); }
148
147
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelFileExportDirective, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: ExcelFileExportDirective, decorators: [{
150
149
  type: Directive,
151
150
  args: [{
152
151
  selector: '[risk-xlsx-export]',
@@ -155,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
155
154
  '(click)': 'export()'
156
155
  }
157
156
  }]
158
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: ExcelExportService }, { type: i2.Logger }], propDecorators: { columns: [{
157
+ }], propDecorators: { columns: [{
159
158
  type: Input,
160
159
  args: ['risk-xlsx-export-columns']
161
160
  }], data: [{
@@ -171,34 +170,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
171
170
  type: Input
172
171
  }] } });
173
172
 
174
- class ExcelExportModule {
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
176
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, declarations: [ExcelFileExportDirective], imports: [CommonModule], exports: [ExcelFileExportDirective] }); }
177
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, providers: [
178
- ExcelExportService
179
- ], imports: [CommonModule] }); }
180
- }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, decorators: [{
182
- type: NgModule,
183
- args: [{
184
- imports: [
185
- CommonModule
186
- ],
187
- declarations: [
188
- ExcelFileExportDirective
189
- ],
190
- exports: [
191
- ExcelFileExportDirective
192
- ],
193
- providers: [
194
- ExcelExportService
195
- ]
196
- }]
197
- }] });
198
-
199
173
  /**
200
174
  * Generated bundle index. Do not edit.
201
175
  */
202
176
 
203
- export { ExcelExportModule, ExcelExportService, ExcelFileExportDirective };
177
+ export { ExcelExportService, ExcelFileExportDirective };
204
178
  //# sourceMappingURL=dbg-riskit-angular-excel-export.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dbg-riskit-angular-excel-export.mjs","sources":["../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.export.service.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.file.export.directive.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.export.module.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/dbg-riskit-angular-excel-export.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {deepClone} from '@dbg-riskit/common';\nimport * as XLSX from 'xlsx';\nimport {CSVExportColumn} from './excel.file.export.directive';\n\n@Injectable()\nexport class ExcelExportService {\n\n public exportAsExcel(exportData: object[], filename: string, columns: Array<CSVExportColumn<object>>): void;\n public exportAsExcel(exportData: object[][], filename: string,\n columns: Array<{ [key: string]: CSVExportColumn<object> }>, tabs: string[]): void;\n public exportAsExcel(exportData: object[] | object[][], filename: string,\n columns: Array<CSVExportColumn<object>> | Array<{\n [key: string]: CSVExportColumn<object>\n }>, tabs?: string[]): void {\n if (exportData && exportData.length && columns) {\n const data = this.createHeaders(exportData, columns);\n if (tabs == null) {\n this.export(data, filename);\n } else {\n this.export(data as object[][], filename, tabs);\n }\n }\n }\n\n private createHeaders(data: object[] | object[][], columns: Array<CSVExportColumn<object>> | Array<{\n [key: string]: CSVExportColumn<object>\n }>): object[] | object[][] {\n if (this.isArrayOfArrays(data)) {\n return this.multiTabHeaders(data as object[][],\n columns as Array<{ [key: string]: CSVExportColumn<object> }>);\n } else {\n return this.singleTabHeaders(data, columns as Array<CSVExportColumn<object>>);\n }\n }\n\n private multiTabHeaders(data: object[][], columns: Array<{\n [key: string]: CSVExportColumn<object>\n }>): object[][] {\n const dataWithHeaders: object[][] = [];\n data.forEach((arr: object[], index: number) => {\n const headers: { [key: string]: string } = {};\n const keys = Object.keys(arr[0]);\n keys.forEach((key) => {\n headers[key] = columns[index][key].header;\n });\n const clonedData = deepClone(arr);\n clonedData.unshift(headers);\n dataWithHeaders.push(clonedData);\n });\n return dataWithHeaders;\n }\n\n private singleTabHeaders(data: object[], columns: Array<CSVExportColumn<object>>): object[] {\n const headers: { [key: string]: string } = {};\n const keys = Object.keys(data[0]);\n\n keys.forEach((key, index) => {\n headers[key] = columns[index].header;\n });\n\n const clonedData = deepClone(data);\n clonedData.unshift(headers);\n return clonedData;\n }\n\n private export(data: object[], filename: string): void;\n private export(data: object[][], filename: string, tabs: string[]): void;\n private export(data: object[] | object[][], filename: string, tabs?: string[]): void {\n const {\n sheetName,\n fileName\n } = this.getFileName(filename);\n\n if (this.isArrayOfArrays(data)) {\n return this.multiTabExport(data as object[][], fileName, tabs!);\n } else {\n return this.singleTabExport(data, sheetName, fileName);\n }\n }\n\n private multiTabExport(data: object[][], filename: string, tabs: string[]): void {\n const workbook: XLSX.WorkBook = data.reduce((result, curr, index) => {\n result.Sheets = {\n ...result.Sheets,\n [tabs[index]]: XLSX.utils.json_to_sheet(curr, {skipHeader: true})\n };\n result.SheetNames = [...result.SheetNames, tabs[index]];\n return result;\n }, {\n Sheets : {},\n SheetNames: []\n } as XLSX.WorkBook);\n XLSX.writeFile(workbook, filename);\n }\n\n private singleTabExport(data: object[], sheetName: string, filename: string): void {\n const worksheet = XLSX.utils.json_to_sheet(data, {skipHeader: true});\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);\n XLSX.writeFile(workbook, filename);\n }\n\n private getFileName(sheetName: string): { sheetName: string, fileName: string } {\n const fileName = `${sheetName}.xlsx`;\n return {\n sheetName,\n fileName\n };\n }\n\n public isArrayOfArrays(array: object[] | object[][]): boolean {\n return array.every((item) => Array.isArray(item));\n }\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\nimport {Logger, ValueGetter} from '@dbg-riskit/common';\nimport {ExcelExportService} from './excel.export.service';\n\nexport interface CSVExportColumn<T> {\n get: ValueGetter<T>;\n header: string;\n}\n\n@Directive({\n selector: '[risk-xlsx-export]',\n host : {\n '[class.risk-xlsx-export]': 'true',\n '(click)' : 'export()'\n }\n})\nexport class ExcelFileExportDirective extends BaseComponent {\n\n /**\n * 'risk-xlsx-export-columns' can be provided as array OR array of arrays,\n * When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,\n * That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,\n */\n @Input('risk-xlsx-export-columns')\n public columns?: Array<CSVExportColumn<object>> | Array<{ [key: string]: CSVExportColumn<object> }>;\n\n @Input('risk-xlsx-export')\n public data?: object[] | object[][];\n\n @Input('risk-xlsx-export-filename')\n public filename = 'data';\n\n @Input('risk-xlsx-export-tabs')\n public tabs?: string[];\n\n @Input()\n public disabled?: boolean | string;\n\n public constructor(private readonly elementRef: ElementRef,\n private readonly excelExportService: ExcelExportService,\n private readonly logger: Logger) {\n super();\n }\n\n private isDisabled(): boolean {\n if (this.elementRef.nativeElement.disabled === true) {\n return true;\n }\n\n if (this.disabled == null) {\n return false;\n }\n\n switch (typeof this.disabled) {\n case 'boolean':\n return this.disabled;\n case 'string':\n return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';\n }\n\n return false;\n }\n\n public export(): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.data == null) {\n this.logger.error(new Error('No data provided for export!'));\n return;\n }\n\n if ((this.tabs && this.tabs.length && !this.excelExportService.isArrayOfArrays(this.data)) ||\n (!this.tabs && this.excelExportService.isArrayOfArrays(this.data))) {\n this.logger.error(new Error('Wrong data structure provided!'));\n return;\n }\n\n if (!this.columns) {\n this.logger.error(new Error('Columns not provided!'));\n return;\n }\n\n if (this.tabs == null) {\n this.excelExportService.exportAsExcel(this.data, this.filename,\n this.columns as Array<CSVExportColumn<object>>);\n } else {\n this.excelExportService.exportAsExcel(this.data as object[][], this.filename,\n this.columns as Array<{ [key: string]: CSVExportColumn<object> }>, this.tabs);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ExcelExportService} from './excel.export.service';\nimport {ExcelFileExportDirective} from './excel.file.export.directive';\n\n@NgModule({\n imports : [\n CommonModule\n ],\n declarations: [\n ExcelFileExportDirective\n ],\n exports : [\n ExcelFileExportDirective\n ],\n providers : [\n ExcelExportService\n ]\n})\nexport class ExcelExportModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ExcelExportService"],"mappings":";;;;;;;;MAMa,kBAAkB,CAAA;AAKpB,IAAA,aAAa,CAAC,UAAiC,EAAE,QAAgB,EACnD,OAEE,EAAE,IAAe,EAAA;QACpC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,OAAO,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACrD,YAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,IAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;aACnD;SACJ;KACJ;IAEO,aAAa,CAAC,IAA2B,EAAE,OAEjD,EAAA;AACE,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAkB,EAC1C,OAA4D,CAAC,CAAC;SACrE;aAAM;YACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAyC,CAAC,CAAC;SACjF;KACJ;IAEO,eAAe,CAAC,IAAgB,EAAE,OAExC,EAAA;QACE,MAAM,eAAe,GAAe,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAa,EAAE,KAAa,KAAI;YAC1C,MAAM,OAAO,GAA8B,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACjB,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC9C,aAAC,CAAC,CAAC;AACH,YAAA,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,YAAA,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5B,YAAA,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,eAAe,CAAC;KAC1B;IAEO,gBAAgB,CAAC,IAAc,EAAE,OAAuC,EAAA;QAC5E,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACzC,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5B,QAAA,OAAO,UAAU,CAAC;KACrB;AAIO,IAAA,MAAM,CAAC,IAA2B,EAAE,QAAgB,EAAE,IAAe,EAAA;AACzE,QAAA,MAAM,EACF,SAAS,EACT,QAAQ,EACX,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE/B,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAkB,EAAE,QAAQ,EAAE,IAAK,CAAC,CAAC;SACnE;aAAM;YACH,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC1D;KACJ;AAEO,IAAA,cAAc,CAAC,IAAgB,EAAE,QAAgB,EAAE,IAAc,EAAA;AACrE,QAAA,MAAM,QAAQ,GAAkB,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,KAAI;YAChE,MAAM,CAAC,MAAM,GAAG;gBACZ,GAAG,MAAM,CAAC,MAAM;AAChB,gBAAA,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC;aACpE,CAAC;AACF,YAAA,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,YAAA,OAAO,MAAM,CAAC;AAClB,SAAC,EAAE;AACC,YAAA,MAAM,EAAM,EAAE;AACd,YAAA,UAAU,EAAE,EAAE;AACA,SAAA,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACtC;AAEO,IAAA,eAAe,CAAC,IAAc,EAAE,SAAiB,EAAE,QAAgB,EAAA;AACvE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACtC;AAEO,IAAA,WAAW,CAAC,SAAiB,EAAA;AACjC,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,SAAS,OAAO,CAAC;QACrC,OAAO;YACH,SAAS;YACT,QAAQ;SACX,CAAC;KACL;AAEM,IAAA,eAAe,CAAC,KAA4B,EAAA;AAC/C,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;+GA3GQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;ACYL,MAAO,wBAAyB,SAAQ,aAAa,CAAA;AAsBvD,IAAA,WAAA,CAAoC,UAAsB,EACtB,kBAAsC,EACtC,MAAc,EAAA;AAC9C,QAAA,KAAK,EAAE,CAAC;QAHwB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAV3C,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;KAYxB;IAEO,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;AACjD,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AACvB,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,QAAQ,OAAO,IAAI,CAAC,QAAQ;AACxB,YAAA,KAAK,SAAS;gBACV,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;SACnG;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;IAEM,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,OAAO;SACV;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC7D,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AACrF,aAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC/D,OAAO;SACV;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACtD,OAAO;SACV;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAC1D,IAAI,CAAC,OAAyC,CAAC,CAAC;SACvD;aAAM;YACH,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAkB,EAAE,IAAI,CAAC,QAAQ,EACxE,IAAI,CAAC,OAA4D,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACrF;KACJ;+GA3EQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,0BAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,IAAA,EAAA,CAAA,uBAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAM;AACN,wBAAA,0BAA0B,EAAE,MAAM;AAClC,wBAAA,SAAS,EAAmB,UAAU;AACzC,qBAAA;AACJ,iBAAA,CAAA;kIASU,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,0BAA0B,CAAA;gBAI1B,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,kBAAkB,CAAA;gBAIlB,QAAQ,EAAA,CAAA;sBADd,KAAK;uBAAC,2BAA2B,CAAA;gBAI3B,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,uBAAuB,CAAA;gBAIvB,QAAQ,EAAA,CAAA;sBADd,KAAK;;;MCjBG,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EATtB,YAAA,EAAA,CAAA,wBAAwB,CAHxB,EAAA,OAAA,EAAA,CAAA,YAAY,aAMZ,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAMnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAJZ,SAAA,EAAA;YACV,kBAAkB;AACrB,SAAA,EAAA,OAAA,EAAA,CAVG,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAYP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAO;wBACV,YAAY;AACf,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,wBAAwB;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAO;wBACV,wBAAwB;AAC3B,qBAAA;AACD,oBAAA,SAAS,EAAK;wBACV,kBAAkB;AACrB,qBAAA;AACJ,iBAAA,CAAA;;;AClBD;;AAEG;;;;"}
1
+ {"version":3,"file":"dbg-riskit-angular-excel-export.mjs","sources":["../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.export.service.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.file.export.directive.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/dbg-riskit-angular-excel-export.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {deepClone} from '@dbg-riskit/common';\nimport * as XLSX from 'xlsx';\nimport {CSVExportColumn} from './excel.file.export.directive';\n\n@Injectable({providedIn: 'root'})\nexport class ExcelExportService {\n\n public exportAsExcel(exportData: object[], filename: string, columns: Array<CSVExportColumn<object>>): void;\n public exportAsExcel(exportData: object[][], filename: string,\n columns: Array<{ [key: string]: CSVExportColumn<object> }>, tabs: string[]): void;\n public exportAsExcel(exportData: object[] | object[][], filename: string,\n columns: Array<CSVExportColumn<object>> | Array<{\n [key: string]: CSVExportColumn<object>\n }>, tabs?: string[]): void {\n if (exportData && exportData.length && columns) {\n const data = this.createHeaders(exportData, columns);\n if (tabs == null) {\n this.export(data, filename);\n } else {\n this.export(data as object[][], filename, tabs);\n }\n }\n }\n\n private createHeaders(data: object[] | object[][], columns: Array<CSVExportColumn<object>> | Array<{\n [key: string]: CSVExportColumn<object>\n }>): object[] | object[][] {\n if (this.isArrayOfArrays(data)) {\n return this.multiTabHeaders(data as object[][],\n columns as Array<{ [key: string]: CSVExportColumn<object> }>);\n } else {\n return this.singleTabHeaders(data, columns as Array<CSVExportColumn<object>>);\n }\n }\n\n private multiTabHeaders(data: object[][], columns: Array<{\n [key: string]: CSVExportColumn<object>\n }>): object[][] {\n const dataWithHeaders: object[][] = [];\n data.forEach((arr: object[], index: number) => {\n const headers: { [key: string]: string } = {};\n const keys = Object.keys(arr[0]);\n keys.forEach((key) => {\n headers[key] = columns[index][key].header;\n });\n const clonedData = deepClone(arr);\n clonedData.unshift(headers);\n dataWithHeaders.push(clonedData);\n });\n return dataWithHeaders;\n }\n\n private singleTabHeaders(data: object[], columns: Array<CSVExportColumn<object>>): object[] {\n const headers: { [key: string]: string } = {};\n const keys = Object.keys(data[0]);\n\n keys.forEach((key, index) => {\n headers[key] = columns[index].header;\n });\n\n const clonedData = deepClone(data);\n clonedData.unshift(headers);\n return clonedData;\n }\n\n private export(data: object[], filename: string): void;\n private export(data: object[][], filename: string, tabs: string[]): void;\n private export(data: object[] | object[][], filename: string, tabs?: string[]): void {\n const {\n sheetName,\n fileName\n } = this.getFileName(filename);\n\n if (this.isArrayOfArrays(data)) {\n return this.multiTabExport(data as object[][], fileName, tabs!);\n } else {\n return this.singleTabExport(data, sheetName, fileName);\n }\n }\n\n private multiTabExport(data: object[][], filename: string, tabs: string[]): void {\n const workbook: XLSX.WorkBook = data.reduce((result, curr, index) => {\n result.Sheets = {\n ...result.Sheets,\n [tabs[index]]: XLSX.utils.json_to_sheet(curr, {skipHeader: true})\n };\n result.SheetNames = [...result.SheetNames, tabs[index]];\n return result;\n }, {\n Sheets : {},\n SheetNames: []\n } as XLSX.WorkBook);\n XLSX.writeFile(workbook, filename);\n }\n\n private singleTabExport(data: object[], sheetName: string, filename: string): void {\n const worksheet = XLSX.utils.json_to_sheet(data, {skipHeader: true});\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);\n XLSX.writeFile(workbook, filename);\n }\n\n private getFileName(sheetName: string): { sheetName: string, fileName: string } {\n const fileName = `${sheetName}.xlsx`;\n return {\n sheetName,\n fileName\n };\n }\n\n public isArrayOfArrays(array: object[] | object[][]): boolean {\n return array.every((item) => Array.isArray(item));\n }\n}\n","import {Directive, ElementRef, inject, Input} from '@angular/core';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\nimport {Logger, ValueGetter} from '@dbg-riskit/common';\nimport {ExcelExportService} from './excel.export.service';\n\nexport interface CSVExportColumn<T> {\n get: ValueGetter<T>;\n header: string;\n}\n\n@Directive({\n selector: '[risk-xlsx-export]',\n host : {\n '[class.risk-xlsx-export]': 'true',\n '(click)' : 'export()'\n }\n})\nexport class ExcelFileExportDirective extends BaseComponent {\n private readonly elementRef = inject(ElementRef);\n private readonly excelExportService = inject(ExcelExportService);\n private readonly logger = inject(Logger);\n\n /**\n * 'risk-xlsx-export-columns' can be provided as array OR array of arrays,\n * When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,\n * That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,\n */\n @Input('risk-xlsx-export-columns')\n public columns?: Array<CSVExportColumn<object>> | Array<{ [key: string]: CSVExportColumn<object> }>;\n\n @Input('risk-xlsx-export')\n public data?: object[] | object[][];\n\n @Input('risk-xlsx-export-filename')\n public filename = 'data';\n\n @Input('risk-xlsx-export-tabs')\n public tabs?: string[];\n\n @Input()\n public disabled?: boolean | string;\n\n public export(): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.data == null) {\n this.logger.error(new Error('No data provided for export!'));\n return;\n }\n\n if ((this.tabs && this.tabs.length && !this.excelExportService.isArrayOfArrays(this.data)) ||\n (!this.tabs && this.excelExportService.isArrayOfArrays(this.data))) {\n this.logger.error(new Error('Wrong data structure provided!'));\n return;\n }\n\n if (!this.columns) {\n this.logger.error(new Error('Columns not provided!'));\n return;\n }\n\n if (this.tabs == null) {\n this.excelExportService.exportAsExcel(this.data, this.filename,\n this.columns as Array<CSVExportColumn<object>>);\n } else {\n this.excelExportService.exportAsExcel(this.data as object[][], this.filename,\n this.columns as Array<{ [key: string]: CSVExportColumn<object> }>, this.tabs);\n }\n }\n\n private isDisabled(): boolean {\n if (this.elementRef.nativeElement.disabled === true) {\n return true;\n }\n\n if (this.disabled == null) {\n return false;\n }\n\n switch (typeof this.disabled) {\n case 'boolean':\n return this.disabled;\n case 'string':\n return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';\n }\n\n return false;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,49 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@dbg-riskit/angular-excel-export" />
5
- export * from './public_api';
1
+ import { BaseComponent } from '@dbg-riskit/angular-view';
2
+ import { ValueGetter } from '@dbg-riskit/common';
3
+ import * as i0 from '@angular/core';
4
+
5
+ interface CSVExportColumn<T> {
6
+ get: ValueGetter<T>;
7
+ header: string;
8
+ }
9
+ declare class ExcelFileExportDirective extends BaseComponent {
10
+ private readonly elementRef;
11
+ private readonly excelExportService;
12
+ private readonly logger;
13
+ /**
14
+ * 'risk-xlsx-export-columns' can be provided as array OR array of arrays,
15
+ * When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,
16
+ * That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,
17
+ */
18
+ columns?: Array<CSVExportColumn<object>> | Array<{
19
+ [key: string]: CSVExportColumn<object>;
20
+ }>;
21
+ data?: object[] | object[][];
22
+ filename: string;
23
+ tabs?: string[];
24
+ disabled?: boolean | string;
25
+ export(): void;
26
+ private isDisabled;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExcelFileExportDirective, never>;
28
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ExcelFileExportDirective, "[risk-xlsx-export]", never, { "columns": { "alias": "risk-xlsx-export-columns"; "required": false; }; "data": { "alias": "risk-xlsx-export"; "required": false; }; "filename": { "alias": "risk-xlsx-export-filename"; "required": false; }; "tabs": { "alias": "risk-xlsx-export-tabs"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
29
+ }
30
+
31
+ declare class ExcelExportService {
32
+ exportAsExcel(exportData: object[], filename: string, columns: Array<CSVExportColumn<object>>): void;
33
+ exportAsExcel(exportData: object[][], filename: string, columns: Array<{
34
+ [key: string]: CSVExportColumn<object>;
35
+ }>, tabs: string[]): void;
36
+ private createHeaders;
37
+ private multiTabHeaders;
38
+ private singleTabHeaders;
39
+ private export;
40
+ private multiTabExport;
41
+ private singleTabExport;
42
+ private getFileName;
43
+ isArrayOfArrays(array: object[] | object[][]): boolean;
44
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExcelExportService, never>;
45
+ static ɵprov: i0.ɵɵInjectableDeclaration<ExcelExportService>;
46
+ }
47
+
48
+ export { ExcelExportService, ExcelFileExportDirective };
49
+ export type { CSVExportColumn };
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@dbg-riskit/angular-excel-export",
3
- "version": "18.1.0",
3
+ "version": "20.0.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
- "@angular/core": "^18.2.13",
7
- "@angular/platform-browser": "^18.2.13",
8
- "@angular/common": "^18.2.13",
9
- "@dbg-riskit/common": "~18.1.0",
10
- "@dbg-riskit/angular-common": "~18.1.0",
11
- "@dbg-riskit/angular-logging": "~18.1.0",
12
- "xlsx": "^0.18.5"
6
+ "@angular/core": "^20.3.12",
7
+ "@angular/platform-browser": "^20.3.12",
8
+ "@angular/common": "^20.3.12",
9
+ "@dbg-riskit/common": "~20.0.0",
10
+ "@dbg-riskit/angular-common": "~20.0.0",
11
+ "@dbg-riskit/angular-logging": "~20.0.0",
12
+ "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
13
13
  },
14
14
  "dependencies": {
15
- "tslib": "^2.6.2"
15
+ "tslib": "^2.8.1"
16
16
  },
17
17
  "module": "fesm2022/dbg-riskit-angular-excel-export.mjs",
18
18
  "typings": "index.d.ts",
@@ -22,10 +22,7 @@
22
22
  },
23
23
  ".": {
24
24
  "types": "./index.d.ts",
25
- "esm2022": "./esm2022/dbg-riskit-angular-excel-export.mjs",
26
- "esm": "./esm2022/dbg-riskit-angular-excel-export.mjs",
27
25
  "default": "./fesm2022/dbg-riskit-angular-excel-export.mjs"
28
26
  }
29
- },
30
- "sideEffects": false
27
+ }
31
28
  }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJnLXJpc2tpdC1hbmd1bGFyLWV4Y2VsLWV4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZXhjZWwtZXhwb3J0L3NyYy9kYmctcmlza2l0LWFuZ3VsYXItZXhjZWwtZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -1,30 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { ExcelExportService } from './excel.export.service';
4
- import { ExcelFileExportDirective } from './excel.file.export.directive';
5
- import * as i0 from "@angular/core";
6
- export class ExcelExportModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, declarations: [ExcelFileExportDirective], imports: [CommonModule], exports: [ExcelFileExportDirective] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, providers: [
10
- ExcelExportService
11
- ], imports: [CommonModule] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- imports: [
17
- CommonModule
18
- ],
19
- declarations: [
20
- ExcelFileExportDirective
21
- ],
22
- exports: [
23
- ExcelFileExportDirective
24
- ],
25
- providers: [
26
- ExcelExportService
27
- ]
28
- }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZXhwb3J0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZXhjZWwtZXhwb3J0L3NyYy9saWIvZXhjZWwuZXhwb3J0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQnZFLE1BQU0sT0FBTyxpQkFBaUI7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQVR0Qix3QkFBd0IsYUFIeEIsWUFBWSxhQU1aLHdCQUF3QjtnSEFNbkIsaUJBQWlCLGFBSlo7WUFDVixrQkFBa0I7U0FDckIsWUFWRyxZQUFZOzs0RkFZUCxpQkFBaUI7a0JBZDdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFPO3dCQUNWLFlBQVk7cUJBQ2Y7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHdCQUF3QjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFPO3dCQUNWLHdCQUF3QjtxQkFDM0I7b0JBQ0QsU0FBUyxFQUFLO3dCQUNWLGtCQUFrQjtxQkFDckI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFeGNlbEV4cG9ydFNlcnZpY2V9IGZyb20gJy4vZXhjZWwuZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHtFeGNlbEZpbGVFeHBvcnREaXJlY3RpdmV9IGZyb20gJy4vZXhjZWwuZmlsZS5leHBvcnQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzICAgICA6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRXhjZWxGaWxlRXhwb3J0RGlyZWN0aXZlXG4gICAgXSxcbiAgICBleHBvcnRzICAgICA6IFtcbiAgICAgICAgRXhjZWxGaWxlRXhwb3J0RGlyZWN0aXZlXG4gICAgXSxcbiAgICBwcm92aWRlcnMgICA6IFtcbiAgICAgICAgRXhjZWxFeHBvcnRTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBFeGNlbEV4cG9ydE1vZHVsZSB7XG59XG4iXX0=
@@ -1,94 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { deepClone } from '@dbg-riskit/common';
3
- import * as XLSX from 'xlsx';
4
- import * as i0 from "@angular/core";
5
- export class ExcelExportService {
6
- exportAsExcel(exportData, filename, columns, tabs) {
7
- if (exportData && exportData.length && columns) {
8
- const data = this.createHeaders(exportData, columns);
9
- if (tabs == null) {
10
- this.export(data, filename);
11
- }
12
- else {
13
- this.export(data, filename, tabs);
14
- }
15
- }
16
- }
17
- createHeaders(data, columns) {
18
- if (this.isArrayOfArrays(data)) {
19
- return this.multiTabHeaders(data, columns);
20
- }
21
- else {
22
- return this.singleTabHeaders(data, columns);
23
- }
24
- }
25
- multiTabHeaders(data, columns) {
26
- const dataWithHeaders = [];
27
- data.forEach((arr, index) => {
28
- const headers = {};
29
- const keys = Object.keys(arr[0]);
30
- keys.forEach((key) => {
31
- headers[key] = columns[index][key].header;
32
- });
33
- const clonedData = deepClone(arr);
34
- clonedData.unshift(headers);
35
- dataWithHeaders.push(clonedData);
36
- });
37
- return dataWithHeaders;
38
- }
39
- singleTabHeaders(data, columns) {
40
- const headers = {};
41
- const keys = Object.keys(data[0]);
42
- keys.forEach((key, index) => {
43
- headers[key] = columns[index].header;
44
- });
45
- const clonedData = deepClone(data);
46
- clonedData.unshift(headers);
47
- return clonedData;
48
- }
49
- export(data, filename, tabs) {
50
- const { sheetName, fileName } = this.getFileName(filename);
51
- if (this.isArrayOfArrays(data)) {
52
- return this.multiTabExport(data, fileName, tabs);
53
- }
54
- else {
55
- return this.singleTabExport(data, sheetName, fileName);
56
- }
57
- }
58
- multiTabExport(data, filename, tabs) {
59
- const workbook = data.reduce((result, curr, index) => {
60
- result.Sheets = {
61
- ...result.Sheets,
62
- [tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true })
63
- };
64
- result.SheetNames = [...result.SheetNames, tabs[index]];
65
- return result;
66
- }, {
67
- Sheets: {},
68
- SheetNames: []
69
- });
70
- XLSX.writeFile(workbook, filename);
71
- }
72
- singleTabExport(data, sheetName, filename) {
73
- const worksheet = XLSX.utils.json_to_sheet(data, { skipHeader: true });
74
- const workbook = XLSX.utils.book_new();
75
- XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
76
- XLSX.writeFile(workbook, filename);
77
- }
78
- getFileName(sheetName) {
79
- const fileName = `${sheetName}.xlsx`;
80
- return {
81
- sheetName,
82
- fileName
83
- };
84
- }
85
- isArrayOfArrays(array) {
86
- return array.every((item) => Array.isArray(item));
87
- }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
89
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportService }); }
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelExportService, decorators: [{
92
- type: Injectable
93
- }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWV4Y2VsLWV4cG9ydC9zcmMvbGliL2V4Y2VsLmV4cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOztBQUk3QixNQUFNLE9BQU8sa0JBQWtCO0lBS3BCLGFBQWEsQ0FBQyxVQUFpQyxFQUFFLFFBQWdCLEVBQ25ELE9BRUUsRUFBRSxJQUFlO1FBQ3BDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDckQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBa0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQTJCLEVBQUUsT0FFakQ7UUFDRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBa0IsRUFDMUMsT0FBNEQsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFB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QUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFjLEVBQUUsU0FBaUIsRUFBRSxRQUFnQjtRQUN2RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sV0FBVyxDQUFDLFNBQWlCO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsU0FBUyxPQUFPLENBQUM7UUFDckMsT0FBTztZQUNILFNBQVM7WUFDVCxRQUFRO1NBQ1gsQ0FBQztJQUNOLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBNEI7UUFDL0MsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzsrR0EzR1Esa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtkZWVwQ2xvbmV9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xuaW1wb3J0IHtDU1ZFeHBvcnRDb2x1bW59IGZyb20gJy4vZXhjZWwuZmlsZS5leHBvcnQuZGlyZWN0aXZlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV4Y2VsRXhwb3J0U2VydmljZSB7XG5cbiAgICBwdWJsaWMgZXhwb3J0QXNFeGNlbChleHBvcnREYXRhOiBvYmplY3RbXSwgZmlsZW5hbWU6IHN0cmluZywgY29sdW1uczogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+KTogdm9pZDtcbiAgICBwdWJsaWMgZXhwb3J0QXNFeGNlbChleHBvcnREYXRhOiBvYmplY3RbXVtdLCBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IEFycmF5PHsgW2tleTogc3RyaW5nXTogQ1NWRXhwb3J0Q29sdW1uPG9iamVjdD4gfT4sIHRhYnM6IHN0cmluZ1tdKTogdm9pZDtcbiAgICBwdWJsaWMgZXhwb3J0QXNFeGNlbChleHBvcnREYXRhOiBvYmplY3RbXSB8IG9iamVjdFtdW10sIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+IHwgQXJyYXk8e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgIH0+LCB0YWJzPzogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKGV4cG9ydERhdGEgJiYgZXhwb3J0RGF0YS5sZW5ndGggJiYgY29sdW1ucykge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY3JlYXRlSGVhZGVycyhleHBvcnREYXRhLCBjb2x1bW5zKTtcbiAgICAgICAgICAgIGlmICh0YWJzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydChkYXRhLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0KGRhdGEgYXMgb2JqZWN0W11bXSwgZmlsZW5hbWUsIHRhYnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIZWFkZXJzKGRhdGE6IG9iamVjdFtdIHwgb2JqZWN0W11bXSwgY29sdW1uczogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+IHwgQXJyYXk8e1xuICAgICAgICBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PlxuICAgIH0+KTogb2JqZWN0W10gfCBvYmplY3RbXVtdIHtcbiAgICAgICAgaWYgKHRoaXMuaXNBcnJheU9mQXJyYXlzKGRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tdWx0aVRhYkhlYWRlcnMoZGF0YSBhcyBvYmplY3RbXVtdLFxuICAgICAgICAgICAgICAgIGNvbHVtbnMgYXMgQXJyYXk8eyBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PiB9Pik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaW5nbGVUYWJIZWFkZXJzKGRhdGEsIGNvbHVtbnMgYXMgQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbXVsdGlUYWJIZWFkZXJzKGRhdGE6IG9iamVjdFtdW10sIGNvbHVtbnM6IEFycmF5PHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogQ1NWRXhwb3J0Q29sdW1uPG9iamVjdD5cbiAgICB9Pik6IG9iamVjdFtdW10ge1xuICAgICAgICBjb25zdCBkYXRhV2l0aEhlYWRlcnM6IG9iamVjdFtdW10gPSBbXTtcbiAgICAgICAgZGF0YS5mb3JFYWNoKChhcnI6IG9iamVjdFtdLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYXJyWzBdKTtcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1trZXldID0gY29sdW1uc1tpbmRleF1ba2V5XS5oZWFkZXI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGNsb25lZERhdGEgPSBkZWVwQ2xvbmUoYXJyKTtcbiAgICAgICAgICAgIGNsb25lZERhdGEudW5zaGlmdChoZWFkZXJzKTtcbiAgICAgICAgICAgIGRhdGFXaXRoSGVhZGVycy5wdXNoKGNsb25lZERhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGRhdGFXaXRoSGVhZGVycztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNpbmdsZVRhYkhlYWRlcnMoZGF0YTogb2JqZWN0W10sIGNvbHVtbnM6IEFycmF5PENTVkV4cG9ydENvbHVtbjxvYmplY3Q+Pik6IG9iamVjdFtdIHtcbiAgICAgICAgY29uc3QgaGVhZGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZGF0YVswXSk7XG5cbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBoZWFkZXJzW2tleV0gPSBjb2x1bW5zW2luZGV4XS5oZWFkZXI7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNsb25lZERhdGEgPSBkZWVwQ2xvbmUoZGF0YSk7XG4gICAgICAgIGNsb25lZERhdGEudW5zaGlmdChoZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIGNsb25lZERhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHBvcnQoZGF0YTogb2JqZWN0W10sIGZpbGVuYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAgIHByaXZhdGUgZXhwb3J0KGRhdGE6IG9iamVjdFtdW10sIGZpbGVuYW1lOiBzdHJpbmcsIHRhYnM6IHN0cmluZ1tdKTogdm9pZDtcbiAgICBwcml2YXRlIGV4cG9ydChkYXRhOiBvYmplY3RbXSB8IG9iamVjdFtdW10sIGZpbGVuYW1lOiBzdHJpbmcsIHRhYnM/OiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBzaGVldE5hbWUsXG4gICAgICAgICAgICBmaWxlTmFtZVxuICAgICAgICB9ID0gdGhpcy5nZXRGaWxlTmFtZShmaWxlbmFtZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNBcnJheU9mQXJyYXlzKGRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tdWx0aVRhYkV4cG9ydChkYXRhIGFzIG9iamVjdFtdW10sIGZpbGVOYW1lLCB0YWJzISk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaW5nbGVUYWJFeHBvcnQoZGF0YSwgc2hlZXROYW1lLCBmaWxlTmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG11bHRpVGFiRXhwb3J0KGRhdGE6IG9iamVjdFtdW10sIGZpbGVuYW1lOiBzdHJpbmcsIHRhYnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0gZGF0YS5yZWR1Y2UoKHJlc3VsdCwgY3VyciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdC5TaGVldHMgPSB7XG4gICAgICAgICAgICAgICAgLi4ucmVzdWx0LlNoZWV0cyxcbiAgICAgICAgICAgICAgICBbdGFic1tpbmRleF1dOiBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoY3Vyciwge3NraXBIZWFkZXI6IHRydWV9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc3VsdC5TaGVldE5hbWVzID0gWy4uLnJlc3VsdC5TaGVldE5hbWVzLCB0YWJzW2luZGV4XV07XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBTaGVldHMgICAgOiB7fSxcbiAgICAgICAgICAgIFNoZWV0TmFtZXM6IFtdXG4gICAgICAgIH0gYXMgWExTWC5Xb3JrQm9vayk7XG4gICAgICAgIFhMU1gud3JpdGVGaWxlKHdvcmtib29rLCBmaWxlbmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaW5nbGVUYWJFeHBvcnQoZGF0YTogb2JqZWN0W10sIHNoZWV0TmFtZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdvcmtzaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChkYXRhLCB7c2tpcEhlYWRlcjogdHJ1ZX0pO1xuICAgICAgICBjb25zdCB3b3JrYm9vayA9IFhMU1gudXRpbHMuYm9va19uZXcoKTtcbiAgICAgICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3b3JrYm9vaywgd29ya3NoZWV0LCBzaGVldE5hbWUpO1xuICAgICAgICBYTFNYLndyaXRlRmlsZSh3b3JrYm9vaywgZmlsZW5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZU5hbWUoc2hlZXROYW1lOiBzdHJpbmcpOiB7IHNoZWV0TmFtZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nIH0ge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke3NoZWV0TmFtZX0ueGxzeGA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaGVldE5hbWUsXG4gICAgICAgICAgICBmaWxlTmFtZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FycmF5T2ZBcnJheXMoYXJyYXk6IG9iamVjdFtdIHwgb2JqZWN0W11bXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXJyYXkuZXZlcnkoKGl0ZW0pID0+IEFycmF5LmlzQXJyYXkoaXRlbSkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,80 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { BaseComponent } from '@dbg-riskit/angular-view';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./excel.export.service";
5
- import * as i2 from "@dbg-riskit/common";
6
- export class ExcelFileExportDirective extends BaseComponent {
7
- constructor(elementRef, excelExportService, logger) {
8
- super();
9
- this.elementRef = elementRef;
10
- this.excelExportService = excelExportService;
11
- this.logger = logger;
12
- this.filename = 'data';
13
- }
14
- isDisabled() {
15
- if (this.elementRef.nativeElement.disabled === true) {
16
- return true;
17
- }
18
- if (this.disabled == null) {
19
- return false;
20
- }
21
- switch (typeof this.disabled) {
22
- case 'boolean':
23
- return this.disabled;
24
- case 'string':
25
- return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';
26
- }
27
- return false;
28
- }
29
- export() {
30
- if (this.isDisabled()) {
31
- return;
32
- }
33
- if (this.data == null) {
34
- this.logger.error(new Error('No data provided for export!'));
35
- return;
36
- }
37
- if ((this.tabs && this.tabs.length && !this.excelExportService.isArrayOfArrays(this.data)) ||
38
- (!this.tabs && this.excelExportService.isArrayOfArrays(this.data))) {
39
- this.logger.error(new Error('Wrong data structure provided!'));
40
- return;
41
- }
42
- if (!this.columns) {
43
- this.logger.error(new Error('Columns not provided!'));
44
- return;
45
- }
46
- if (this.tabs == null) {
47
- this.excelExportService.exportAsExcel(this.data, this.filename, this.columns);
48
- }
49
- else {
50
- this.excelExportService.exportAsExcel(this.data, this.filename, this.columns, this.tabs);
51
- }
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelFileExportDirective, deps: [{ token: i0.ElementRef }, { token: i1.ExcelExportService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Directive }); }
54
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ExcelFileExportDirective, selector: "[risk-xlsx-export]", inputs: { columns: ["risk-xlsx-export-columns", "columns"], data: ["risk-xlsx-export", "data"], filename: ["risk-xlsx-export-filename", "filename"], tabs: ["risk-xlsx-export-tabs", "tabs"], disabled: "disabled" }, host: { listeners: { "click": "export()" }, properties: { "class.risk-xlsx-export": "true" } }, usesInheritance: true, ngImport: i0 }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExcelFileExportDirective, decorators: [{
57
- type: Directive,
58
- args: [{
59
- selector: '[risk-xlsx-export]',
60
- host: {
61
- '[class.risk-xlsx-export]': 'true',
62
- '(click)': 'export()'
63
- }
64
- }]
65
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ExcelExportService }, { type: i2.Logger }], propDecorators: { columns: [{
66
- type: Input,
67
- args: ['risk-xlsx-export-columns']
68
- }], data: [{
69
- type: Input,
70
- args: ['risk-xlsx-export']
71
- }], filename: [{
72
- type: Input,
73
- args: ['risk-xlsx-export-filename']
74
- }], tabs: [{
75
- type: Input,
76
- args: ['risk-xlsx-export-tabs']
77
- }], disabled: [{
78
- type: Input
79
- }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZmlsZS5leHBvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1leGNlbC1leHBvcnQvc3JjL2xpYi9leGNlbC5maWxlLmV4cG9ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBZ0J2RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQXNCdkQsWUFBb0MsVUFBc0IsRUFDdEIsa0JBQXNDLEVBQ3RDLE1BQWM7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFId0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWM0MsYUFBUSxHQUFHLE1BQU0sQ0FBQztJQVl6QixDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELFFBQVEsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsS0FBSyxTQUFTO2dCQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN6QixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FBQztRQUNwRyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztZQUM3RCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEYsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQztZQUMvRCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBQ3RELE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUMxRCxJQUFJLENBQUMsT0FBeUMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUN4RSxJQUFJLENBQUMsT0FBNEQsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEYsQ0FBQztJQUNMLENBQUM7K0dBM0VRLHdCQUF3QjttR0FBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBTTt3QkFDTiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyxTQUFTLEVBQW1CLFVBQVU7cUJBQ3pDO2lCQUNKO3FJQVNVLE9BQU87c0JBRGIsS0FBSzt1QkFBQywwQkFBMEI7Z0JBSTFCLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBSWxCLFFBQVE7c0JBRGQsS0FBSzt1QkFBQywyQkFBMkI7Z0JBSTNCLElBQUk7c0JBRFYsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBSXZCLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VDb21wb25lbnR9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItdmlldyc7XG5pbXBvcnQge0xvZ2dlciwgVmFsdWVHZXR0ZXJ9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge0V4Y2VsRXhwb3J0U2VydmljZX0gZnJvbSAnLi9leGNlbC5leHBvcnQuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ1NWRXhwb3J0Q29sdW1uPFQ+IHtcbiAgICBnZXQ6IFZhbHVlR2V0dGVyPFQ+O1xuICAgIGhlYWRlcjogc3RyaW5nO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyaXNrLXhsc3gtZXhwb3J0XScsXG4gICAgaG9zdCAgICA6IHtcbiAgICAgICAgJ1tjbGFzcy5yaXNrLXhsc3gtZXhwb3J0XSc6ICd0cnVlJyxcbiAgICAgICAgJyhjbGljayknICAgICAgICAgICAgICAgICA6ICdleHBvcnQoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEV4Y2VsRmlsZUV4cG9ydERpcmVjdGl2ZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuXG4gICAgLyoqXG4gICAgICogJ3Jpc2steGxzeC1leHBvcnQtY29sdW1ucycgY2FuIGJlIHByb3ZpZGVkIGFzIGFycmF5IE9SIGFycmF5IG9mIGFycmF5cyxcbiAgICAgKiBXaGVuIHByb3ZpZGVkIGFzIGFycmF5IG9mIGFycmF5cyB0aGVuICdyaXNrLXhsc3gtZXhwb3J0JyBzaG91bGQgYmUgcHJvdmlkZWQgYXMgYXJyYXkgb2YgYXJyYXlzIGFzIHdlbGwsXG4gICAgICogVGhhdCBtZWFucyB0aGF0IG11bHRpcGxlIHRhYnMgYXJlIHVzZWQsIHRhYiBuYW1lcyBhcmUgcHJvdmlkZWQgaW4gJ3Jpc2steGxzeC1leHBvcnQtdGFicycgYXMgYXJyYXkgb2Ygc3RyaW5ncyxcbiAgICAgKi9cbiAgICBASW5wdXQoJ3Jpc2steGxzeC1leHBvcnQtY29sdW1ucycpXG4gICAgcHVibGljIGNvbHVtbnM/OiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4gfCBBcnJheTx7IFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+IH0+O1xuXG4gICAgQElucHV0KCdyaXNrLXhsc3gtZXhwb3J0JylcbiAgICBwdWJsaWMgZGF0YT86IG9iamVjdFtdIHwgb2JqZWN0W11bXTtcblxuICAgIEBJbnB1dCgncmlzay14bHN4LWV4cG9ydC1maWxlbmFtZScpXG4gICAgcHVibGljIGZpbGVuYW1lID0gJ2RhdGEnO1xuXG4gICAgQElucHV0KCdyaXNrLXhsc3gtZXhwb3J0LXRhYnMnKVxuICAgIHB1YmxpYyB0YWJzPzogc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZD86IGJvb2xlYW4gfCBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2VsRXhwb3J0U2VydmljZTogRXhjZWxFeHBvcnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkLnRvTG93ZXJDYXNlKCkgPT09ICdkaXNhYmxlZCcgfHwgdGhpcy5kaXNhYmxlZC50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cG9ydCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRhID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKG5ldyBFcnJvcignTm8gZGF0YSBwcm92aWRlZCBmb3IgZXhwb3J0IScpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgodGhpcy50YWJzICYmIHRoaXMudGFicy5sZW5ndGggJiYgIXRoaXMuZXhjZWxFeHBvcnRTZXJ2aWNlLmlzQXJyYXlPZkFycmF5cyh0aGlzLmRhdGEpKSB8fFxuICAgICAgICAgICAgKCF0aGlzLnRhYnMgJiYgdGhpcy5leGNlbEV4cG9ydFNlcnZpY2UuaXNBcnJheU9mQXJyYXlzKHRoaXMuZGF0YSkpKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihuZXcgRXJyb3IoJ1dyb25nIGRhdGEgc3RydWN0dXJlIHByb3ZpZGVkIScpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jb2x1bW5zKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihuZXcgRXJyb3IoJ0NvbHVtbnMgbm90IHByb3ZpZGVkIScpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRhYnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5leGNlbEV4cG9ydFNlcnZpY2UuZXhwb3J0QXNFeGNlbCh0aGlzLmRhdGEsIHRoaXMuZmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zIGFzIEFycmF5PENTVkV4cG9ydENvbHVtbjxvYmplY3Q+Pik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmV4Y2VsRXhwb3J0U2VydmljZS5leHBvcnRBc0V4Y2VsKHRoaXMuZGF0YSBhcyBvYmplY3RbXVtdLCB0aGlzLmZpbGVuYW1lLFxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW1ucyBhcyBBcnJheTx7IFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+IH0+LCB0aGlzLnRhYnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,4 +0,0 @@
1
- export * from './lib/excel.export.module';
2
- export * from './lib/excel.export.service';
3
- export * from './lib/excel.file.export.directive';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZXhjZWwtZXhwb3J0L3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZXhjZWwuZXhwb3J0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGNlbC5leHBvcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9leGNlbC5maWxlLmV4cG9ydC5kaXJlY3RpdmUnO1xuIl19
@@ -1,8 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./excel.file.export.directive";
3
- import * as i2 from "@angular/common";
4
- export declare class ExcelExportModule {
5
- static ɵfac: i0.ɵɵFactoryDeclaration<ExcelExportModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<ExcelExportModule, [typeof i1.ExcelFileExportDirective], [typeof i2.CommonModule], [typeof i1.ExcelFileExportDirective]>;
7
- static ɵinj: i0.ɵɵInjectorDeclaration<ExcelExportModule>;
8
- }
@@ -1,18 +0,0 @@
1
- import { CSVExportColumn } from './excel.file.export.directive';
2
- import * as i0 from "@angular/core";
3
- export declare class ExcelExportService {
4
- exportAsExcel(exportData: object[], filename: string, columns: Array<CSVExportColumn<object>>): void;
5
- exportAsExcel(exportData: object[][], filename: string, columns: Array<{
6
- [key: string]: CSVExportColumn<object>;
7
- }>, tabs: string[]): void;
8
- private createHeaders;
9
- private multiTabHeaders;
10
- private singleTabHeaders;
11
- private export;
12
- private multiTabExport;
13
- private singleTabExport;
14
- private getFileName;
15
- isArrayOfArrays(array: object[] | object[][]): boolean;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<ExcelExportService, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<ExcelExportService>;
18
- }
@@ -1,31 +0,0 @@
1
- import { ElementRef } from '@angular/core';
2
- import { BaseComponent } from '@dbg-riskit/angular-view';
3
- import { Logger, ValueGetter } from '@dbg-riskit/common';
4
- import { ExcelExportService } from './excel.export.service';
5
- import * as i0 from "@angular/core";
6
- export interface CSVExportColumn<T> {
7
- get: ValueGetter<T>;
8
- header: string;
9
- }
10
- export declare class ExcelFileExportDirective extends BaseComponent {
11
- private readonly elementRef;
12
- private readonly excelExportService;
13
- private readonly logger;
14
- /**
15
- * 'risk-xlsx-export-columns' can be provided as array OR array of arrays,
16
- * When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,
17
- * That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,
18
- */
19
- columns?: Array<CSVExportColumn<object>> | Array<{
20
- [key: string]: CSVExportColumn<object>;
21
- }>;
22
- data?: object[] | object[][];
23
- filename: string;
24
- tabs?: string[];
25
- disabled?: boolean | string;
26
- constructor(elementRef: ElementRef, excelExportService: ExcelExportService, logger: Logger);
27
- private isDisabled;
28
- export(): void;
29
- static ɵfac: i0.ɵɵFactoryDeclaration<ExcelFileExportDirective, never>;
30
- static ɵdir: i0.ɵɵDirectiveDeclaration<ExcelFileExportDirective, "[risk-xlsx-export]", never, { "columns": { "alias": "risk-xlsx-export-columns"; "required": false; }; "data": { "alias": "risk-xlsx-export"; "required": false; }; "filename": { "alias": "risk-xlsx-export-filename"; "required": false; }; "tabs": { "alias": "risk-xlsx-export-tabs"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
31
- }
package/public_api.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './lib/excel.export.module';
2
- export * from './lib/excel.export.service';
3
- export * from './lib/excel.file.export.directive';