@dbg-riskit/angular-excel-export 12.3.0 → 9999.9999.9999-rc.12148
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.
- package/dbg-riskit-angular-excel-export.d.ts +1 -0
- package/docs/README.md +1 -11
- package/{esm2015/dbg-riskit-angular-excel-export.js → esm2020/dbg-riskit-angular-excel-export.mjs} +0 -0
- package/esm2020/lib/excel.export.module.mjs +32 -0
- package/esm2020/lib/excel.export.service.mjs +101 -0
- package/esm2020/lib/excel.file.export.directive.mjs +80 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/fesm2015/dbg-riskit-angular-excel-export.mjs +210 -0
- package/fesm2015/dbg-riskit-angular-excel-export.mjs.map +1 -0
- package/fesm2020/dbg-riskit-angular-excel-export.mjs +213 -0
- package/fesm2020/dbg-riskit-angular-excel-export.mjs.map +1 -0
- package/lib/excel.export.module.d.ts +6 -0
- package/lib/excel.export.service.d.ts +8 -2
- package/lib/excel.file.export.directive.d.ts +7 -2
- package/package.json +26 -14
- package/bundles/dbg-riskit-angular-excel-export.umd.js +0 -534
- package/bundles/dbg-riskit-angular-excel-export.umd.js.map +0 -1
- package/dbg-riskit-angular-excel-export.metadata.json +0 -1
- package/esm2015/lib/excel.export.module.js +0 -23
- package/esm2015/lib/excel.export.service.js +0 -91
- package/esm2015/lib/excel.file.export.directive.js +0 -65
- package/fesm2015/dbg-riskit-angular-excel-export.js +0 -180
- package/fesm2015/dbg-riskit-angular-excel-export.js.map +0 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
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';
|
|
6
|
+
import * as XLSX from 'xlsx';
|
|
7
|
+
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
8
|
+
|
|
9
|
+
class ExcelExportService {
|
|
10
|
+
exportAsExcel(exportData, filename, columns, tabs) {
|
|
11
|
+
if (exportData && exportData.length && columns) {
|
|
12
|
+
const data = this.createHeaders(exportData, columns);
|
|
13
|
+
if (tabs == null) {
|
|
14
|
+
this.export(data, filename);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.export(data, filename, tabs);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
createHeaders(data, columns) {
|
|
22
|
+
if (this.isArrayOfArrays(data)) {
|
|
23
|
+
return this.multiTabHeaders(data, columns);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return this.singleTabHeaders(data, columns);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
multiTabHeaders(data, columns) {
|
|
30
|
+
const dataWithHeaders = [];
|
|
31
|
+
data.forEach((arr, index) => {
|
|
32
|
+
const headers = {};
|
|
33
|
+
const keys = Object.keys(arr[0]);
|
|
34
|
+
keys.forEach((key) => {
|
|
35
|
+
headers[key] = columns[index][key].header;
|
|
36
|
+
});
|
|
37
|
+
const clonedData = deepClone(arr);
|
|
38
|
+
clonedData.unshift(headers);
|
|
39
|
+
dataWithHeaders.push(clonedData);
|
|
40
|
+
});
|
|
41
|
+
return dataWithHeaders;
|
|
42
|
+
}
|
|
43
|
+
singleTabHeaders(data, columns) {
|
|
44
|
+
const headers = {};
|
|
45
|
+
const keys = Object.keys(data[0]);
|
|
46
|
+
keys.forEach((key, index) => {
|
|
47
|
+
headers[key] = columns[index].header;
|
|
48
|
+
});
|
|
49
|
+
const clonedData = deepClone(data);
|
|
50
|
+
clonedData.unshift(headers);
|
|
51
|
+
return clonedData;
|
|
52
|
+
}
|
|
53
|
+
export(data, filename, tabs) {
|
|
54
|
+
const { sheetName, fileName } = this.getFileName(filename);
|
|
55
|
+
if (this.isArrayOfArrays(data)) {
|
|
56
|
+
return this.multiTabExport(data, fileName, tabs);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return this.singleTabExport(data, sheetName, fileName);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
multiTabExport(data, filename, tabs) {
|
|
63
|
+
const workbook = data.reduce((result, curr, index) => {
|
|
64
|
+
if ('Sheets' in result) {
|
|
65
|
+
result['Sheets'] = {
|
|
66
|
+
...result['Sheets'],
|
|
67
|
+
[tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true })
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
result['Sheets'] = { [tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true }) };
|
|
72
|
+
}
|
|
73
|
+
if ('SheetNames' in result) {
|
|
74
|
+
result['SheetNames'] = [...result['SheetNames'], tabs[index]];
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
result['SheetNames'] = [tabs[index]];
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}, {});
|
|
81
|
+
XLSX.writeFile(workbook, filename);
|
|
82
|
+
}
|
|
83
|
+
singleTabExport(data, sheetName, filename) {
|
|
84
|
+
const worksheet = XLSX.utils.json_to_sheet(data, { skipHeader: true });
|
|
85
|
+
const workbook = XLSX.utils.book_new();
|
|
86
|
+
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
|
|
87
|
+
XLSX.writeFile(workbook, filename);
|
|
88
|
+
}
|
|
89
|
+
getFileName(sheetName) {
|
|
90
|
+
const fileName = `${sheetName}.xlsx`;
|
|
91
|
+
return {
|
|
92
|
+
sheetName,
|
|
93
|
+
fileName
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
isArrayOfArrays(array) {
|
|
97
|
+
return array.every((item) => Array.isArray(item));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
ExcelExportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
101
|
+
ExcelExportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportService });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportService, decorators: [{
|
|
103
|
+
type: Injectable
|
|
104
|
+
}] });
|
|
105
|
+
|
|
106
|
+
class ExcelFileExportDirective extends BaseComponent {
|
|
107
|
+
constructor(elementRef, excelExportService, logger) {
|
|
108
|
+
super();
|
|
109
|
+
this.elementRef = elementRef;
|
|
110
|
+
this.excelExportService = excelExportService;
|
|
111
|
+
this.logger = logger;
|
|
112
|
+
this.filename = 'data';
|
|
113
|
+
}
|
|
114
|
+
isDisabled() {
|
|
115
|
+
if (this.elementRef.nativeElement.disabled === true) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
if (this.disabled == null) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
switch (typeof this.disabled) {
|
|
122
|
+
case 'boolean':
|
|
123
|
+
return this.disabled;
|
|
124
|
+
case 'string':
|
|
125
|
+
return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
export() {
|
|
130
|
+
if (this.isDisabled()) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (this.data == null) {
|
|
134
|
+
this.logger.error(new Error('No data provided for export!'));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if ((this.tabs && this.tabs.length && !this.excelExportService.isArrayOfArrays(this.data)) ||
|
|
138
|
+
(!this.tabs && this.excelExportService.isArrayOfArrays(this.data))) {
|
|
139
|
+
this.logger.error(new Error('Wrong data structure provided!'));
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (!this.columns) {
|
|
143
|
+
this.logger.error(new Error('Columns not provided!'));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (this.tabs == null) {
|
|
147
|
+
this.excelExportService.exportAsExcel(this.data, this.filename, this.columns);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.excelExportService.exportAsExcel(this.data, this.filename, this.columns, this.tabs);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
ExcelFileExportDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelFileExportDirective, deps: [{ token: i0.ElementRef }, { token: ExcelExportService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Directive });
|
|
155
|
+
ExcelFileExportDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", 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 });
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelFileExportDirective, decorators: [{
|
|
157
|
+
type: Directive,
|
|
158
|
+
args: [{
|
|
159
|
+
selector: '[risk-xlsx-export]',
|
|
160
|
+
host: {
|
|
161
|
+
'[class.risk-xlsx-export]': 'true',
|
|
162
|
+
'(click)': 'export()'
|
|
163
|
+
}
|
|
164
|
+
}]
|
|
165
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ExcelExportService }, { type: i2.Logger }]; }, propDecorators: { columns: [{
|
|
166
|
+
type: Input,
|
|
167
|
+
args: ['risk-xlsx-export-columns']
|
|
168
|
+
}], data: [{
|
|
169
|
+
type: Input,
|
|
170
|
+
args: ['risk-xlsx-export']
|
|
171
|
+
}], filename: [{
|
|
172
|
+
type: Input,
|
|
173
|
+
args: ['risk-xlsx-export-filename']
|
|
174
|
+
}], tabs: [{
|
|
175
|
+
type: Input,
|
|
176
|
+
args: ['risk-xlsx-export-tabs']
|
|
177
|
+
}], disabled: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}] } });
|
|
180
|
+
|
|
181
|
+
class ExcelExportModule {
|
|
182
|
+
}
|
|
183
|
+
ExcelExportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
184
|
+
ExcelExportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportModule, declarations: [ExcelFileExportDirective], imports: [CommonModule], exports: [ExcelFileExportDirective] });
|
|
185
|
+
ExcelExportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportModule, providers: [
|
|
186
|
+
ExcelExportService
|
|
187
|
+
], imports: [[
|
|
188
|
+
CommonModule
|
|
189
|
+
]] });
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportModule, decorators: [{
|
|
191
|
+
type: NgModule,
|
|
192
|
+
args: [{
|
|
193
|
+
imports: [
|
|
194
|
+
CommonModule
|
|
195
|
+
],
|
|
196
|
+
declarations: [
|
|
197
|
+
ExcelFileExportDirective
|
|
198
|
+
],
|
|
199
|
+
exports: [
|
|
200
|
+
ExcelFileExportDirective
|
|
201
|
+
],
|
|
202
|
+
providers: [
|
|
203
|
+
ExcelExportService
|
|
204
|
+
]
|
|
205
|
+
}]
|
|
206
|
+
}] });
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Generated bundle index. Do not edit.
|
|
210
|
+
*/
|
|
211
|
+
|
|
212
|
+
export { ExcelExportModule, ExcelExportService, ExcelFileExportDirective };
|
|
213
|
+
//# sourceMappingURL=dbg-riskit-angular-excel-export.mjs.map
|
|
@@ -0,0 +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 if ('Sheets' in result) {\n result['Sheets'] = {\n ...result['Sheets'],\n [tabs[index]]: XLSX.utils.json_to_sheet(curr, {skipHeader: true})\n };\n } else {\n result['Sheets'] = {[tabs[index]]: XLSX.utils.json_to_sheet(curr, {skipHeader: true})};\n }\n if ('SheetNames' in result) {\n result['SheetNames'] = [...result['SheetNames'], tabs[index]];\n } else {\n result['SheetNames'] = [tabs[index]];\n }\n return result;\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":[],"mappings":";;;;;;;;MAMa,kBAAkB;IAKpB,aAAa,CAAC,UAAiC,EAAE,QAAgB,EACnD,OAEE,EAAE,IAAe;QACpC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,OAAO,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,IAAI,IAAI,IAAI,EAAE;gBACd,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;QACE,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;QACE,MAAM,eAAe,GAAe,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAa,EAAE,KAAa;YACtC,MAAM,OAAO,GAA8B,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG;gBACb,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;aAC7C,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAClC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;KAC1B;IAEO,gBAAgB,CAAC,IAAc,EAAE,OAAuC;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;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,UAAU,CAAC;KACrB;IAIO,MAAM,CAAC,IAA2B,EAAE,QAAgB,EAAE,IAAe;QACzE,MAAM,EACF,SAAS,EACT,QAAQ,EACX,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE/B,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;IAEO,cAAc,CAAC,IAAgB,EAAE,QAAgB,EAAE,IAAc;QACrE,MAAM,QAAQ,GAAkB,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;YAC5D,IAAI,QAAQ,IAAI,MAAM,EAAE;gBACpB,MAAM,CAAC,QAAQ,CAAC,GAAG;oBACf,GAAG,MAAM,CAAC,QAAQ,CAAC;oBACnB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC;iBACpE,CAAC;aACL;iBAAM;gBACH,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,EAAC,CAAC;aAC1F;YACD,IAAI,YAAY,IAAI,MAAM,EAAE;gBACxB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACjE;iBAAM;gBACH,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACxC;YACD,OAAO,MAAM,CAAC;SACjB,EAAE,EAAmB,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACtC;IAEO,eAAe,CAAC,IAAc,EAAE,SAAiB,EAAE,QAAgB;QACvE,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;QAC7D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACtC;IAEO,WAAW,CAAC,SAAiB;QACjC,MAAM,QAAQ,GAAG,GAAG,SAAS,OAAO,CAAC;QACrC,OAAO;YACH,SAAS;YACT,QAAQ;SACX,CAAC;KACL;IAEM,eAAe,CAAC,KAA4B;QAC/C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;;+GAhHQ,kBAAkB;mHAAlB,kBAAkB;2FAAlB,kBAAkB;kBAD9B,UAAU;;;MCYE,wBAAyB,SAAQ,aAAa;IAsBvD,YAAoC,UAAsB,EACtB,kBAAsC,EACtC,MAAc;QAC9C,KAAK,EAAE,CAAC;QAHwB,eAAU,GAAV,UAAU,CAAY;QACtB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,WAAM,GAAN,MAAM,CAAQ;QAV3C,aAAQ,GAAG,MAAM,CAAC;KAYxB;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;YACjD,OAAO,IAAI,CAAC;SACf;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACvB,OAAO,KAAK,CAAC;SAChB;QAED,QAAQ,OAAO,IAAI,CAAC,QAAQ;YACxB,KAAK,SAAS;gBACV,OAAO,IAAI,CAAC,QAAQ,CAAC;YACzB,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;SACnG;QAED,OAAO,KAAK,CAAC;KAChB;IAEM,MAAM;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,OAAO;SACV;QAED,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;aACpF,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;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACtD,OAAO;SACV;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACnB,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;;qHA3EQ,wBAAwB;yGAAxB,wBAAwB;2FAAxB,wBAAwB;kBAPpC,SAAS;mBAAC;oBACP,QAAQ,EAAE,oBAAoB;oBAC9B,IAAI,EAAM;wBACN,0BAA0B,EAAE,MAAM;wBAClC,SAAS,EAAmB,UAAU;qBACzC;iBACJ;oJASU,OAAO;sBADb,KAAK;uBAAC,0BAA0B;gBAI1B,IAAI;sBADV,KAAK;uBAAC,kBAAkB;gBAIlB,QAAQ;sBADd,KAAK;uBAAC,2BAA2B;gBAI3B,IAAI;sBADV,KAAK;uBAAC,uBAAuB;gBAIvB,QAAQ;sBADd,KAAK;;;MCjBG,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBATtB,wBAAwB,aAHxB,YAAY,aAMZ,wBAAwB;+GAMnB,iBAAiB,aAJZ;QACV,kBAAkB;KACrB,YAXa;YACV,YAAY;SACf;2FAWQ,iBAAiB;kBAd7B,QAAQ;mBAAC;oBACN,OAAO,EAAO;wBACV,YAAY;qBACf;oBACD,YAAY,EAAE;wBACV,wBAAwB;qBAC3B;oBACD,OAAO,EAAO;wBACV,wBAAwB;qBAC3B;oBACD,SAAS,EAAK;wBACV,kBAAkB;qBACrB;iBACJ;;;AClBD;;;;;;"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./excel.file.export.directive";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
1
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>;
|
|
2
8
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { CSVExportColumn } from './excel.file.export.directive';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class ExcelExportService {
|
|
3
|
-
exportAsExcel(exportData:
|
|
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;
|
|
4
8
|
private createHeaders;
|
|
5
9
|
private multiTabHeaders;
|
|
6
10
|
private singleTabHeaders;
|
|
@@ -8,5 +12,7 @@ export declare class ExcelExportService {
|
|
|
8
12
|
private multiTabExport;
|
|
9
13
|
private singleTabExport;
|
|
10
14
|
private getFileName;
|
|
11
|
-
isArrayOfArrays(array:
|
|
15
|
+
isArrayOfArrays(array: object[] | object[][]): boolean;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ExcelExportService, never>;
|
|
17
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ExcelExportService>;
|
|
12
18
|
}
|
|
@@ -2,6 +2,7 @@ import { ElementRef } from '@angular/core';
|
|
|
2
2
|
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
3
3
|
import { Logger, ValueGetter } from '@dbg-riskit/common';
|
|
4
4
|
import { ExcelExportService } from './excel.export.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
5
6
|
export interface CSVExportColumn<T> {
|
|
6
7
|
get: ValueGetter<T>;
|
|
7
8
|
header: string;
|
|
@@ -15,12 +16,16 @@ export declare class ExcelFileExportDirective extends BaseComponent {
|
|
|
15
16
|
* When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,
|
|
16
17
|
* That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,
|
|
17
18
|
*/
|
|
18
|
-
columns?: Array<CSVExportColumn<
|
|
19
|
-
|
|
19
|
+
columns?: Array<CSVExportColumn<object>> | Array<{
|
|
20
|
+
[key: string]: CSVExportColumn<object>;
|
|
21
|
+
}>;
|
|
22
|
+
data?: object[] | object[][];
|
|
20
23
|
filename: string;
|
|
21
24
|
tabs?: string[];
|
|
22
25
|
disabled?: boolean | string;
|
|
23
26
|
constructor(elementRef: ElementRef, excelExportService: ExcelExportService, logger: Logger);
|
|
24
27
|
private isDisabled;
|
|
25
28
|
export(): void;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ExcelFileExportDirective, never>;
|
|
30
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ExcelFileExportDirective, "[risk-xlsx-export]", never, { "columns": "risk-xlsx-export-columns"; "data": "risk-xlsx-export"; "filename": "risk-xlsx-export-filename"; "tabs": "risk-xlsx-export-tabs"; "disabled": "disabled"; }, {}, never>;
|
|
26
31
|
}
|
package/package.json
CHANGED
|
@@ -1,25 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbg-riskit/angular-excel-export",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9999.9999.9999-rc.12148",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/core": "^
|
|
7
|
-
"@angular/platform-browser": "^
|
|
8
|
-
"@angular/common": "^
|
|
9
|
-
"@dbg-riskit/common": "~
|
|
10
|
-
"@dbg-riskit/angular-common": "~
|
|
11
|
-
"@dbg-riskit/angular-logging": "~
|
|
12
|
-
"xlsx": "^0.17.
|
|
6
|
+
"@angular/core": "^13.0.2",
|
|
7
|
+
"@angular/platform-browser": "^13.0.2",
|
|
8
|
+
"@angular/common": "^13.0.2",
|
|
9
|
+
"@dbg-riskit/common": "~9999.9999.9999-rc.12148",
|
|
10
|
+
"@dbg-riskit/angular-common": "~9999.9999.9999-rc.12148",
|
|
11
|
+
"@dbg-riskit/angular-logging": "~9999.9999.9999-rc.12148",
|
|
12
|
+
"xlsx": "^0.17.4"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"tslib": "^2.3.1"
|
|
16
16
|
},
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"fesm2015": "fesm2015/dbg-riskit-angular-excel-export.
|
|
17
|
+
"module": "fesm2015/dbg-riskit-angular-excel-export.mjs",
|
|
18
|
+
"es2020": "fesm2020/dbg-riskit-angular-excel-export.mjs",
|
|
19
|
+
"esm2020": "esm2020/dbg-riskit-angular-excel-export.mjs",
|
|
20
|
+
"fesm2020": "fesm2020/dbg-riskit-angular-excel-export.mjs",
|
|
21
|
+
"fesm2015": "fesm2015/dbg-riskit-angular-excel-export.mjs",
|
|
22
22
|
"typings": "dbg-riskit-angular-excel-export.d.ts",
|
|
23
|
-
"
|
|
23
|
+
"exports": {
|
|
24
|
+
"./package.json": {
|
|
25
|
+
"default": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dbg-riskit-angular-excel-export.d.ts",
|
|
29
|
+
"esm2020": "./esm2020/dbg-riskit-angular-excel-export.mjs",
|
|
30
|
+
"es2020": "./fesm2020/dbg-riskit-angular-excel-export.mjs",
|
|
31
|
+
"es2015": "./fesm2015/dbg-riskit-angular-excel-export.mjs",
|
|
32
|
+
"node": "./fesm2015/dbg-riskit-angular-excel-export.mjs",
|
|
33
|
+
"default": "./fesm2020/dbg-riskit-angular-excel-export.mjs"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
24
36
|
"sideEffects": false
|
|
25
37
|
}
|