@dbg-riskit/angular-excel-export 9999.9999.9999-rc.63199 → 9999.9999.9999-rc.6692537
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/docs/README.md +5 -6
- package/fesm2022/dbg-riskit-angular-excel-export.mjs +183 -0
- package/fesm2022/dbg-riskit-angular-excel-export.mjs.map +1 -0
- package/index.d.ts +48 -0
- package/package.json +14 -23
- package/dbg-riskit-angular-excel-export.d.ts +0 -5
- package/esm2020/dbg-riskit-angular-excel-export.mjs +0 -5
- package/esm2020/lib/excel.export.module.mjs +0 -32
- package/esm2020/lib/excel.export.service.mjs +0 -101
- package/esm2020/lib/excel.file.export.directive.mjs +0 -80
- package/esm2020/public_api.mjs +0 -4
- package/fesm2015/dbg-riskit-angular-excel-export.mjs +0 -210
- package/fesm2015/dbg-riskit-angular-excel-export.mjs.map +0 -1
- package/fesm2020/dbg-riskit-angular-excel-export.mjs +0 -213
- package/fesm2020/dbg-riskit-angular-excel-export.mjs.map +0 -1
- package/lib/excel.export.module.d.ts +0 -8
- package/lib/excel.export.service.d.ts +0 -18
- package/lib/excel.file.export.directive.d.ts +0 -31
- package/public_api.d.ts +0 -3
package/docs/README.md
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-

|
|
2
|
+

|
|
3
|
+

|
|
4
4
|
|
|
5
5
|
# risk-angular-common (Angular 13 and @angular/material based library for RiskIT applications)
|
|
6
6
|
|
|
7
7
|
Used by:
|
|
8
|
-
- [
|
|
9
|
-
- [
|
|
10
|
-
- [dev/MDH-UI](https://github.deutsche-boerse.de/dev/MDH-UI)
|
|
8
|
+
- [RiskIT/CPME-UI](https://github.deutsche-boerse.de/RiskIT/CPME-UI)
|
|
9
|
+
- [RiskIT/MDH-UI](https://github.deutsche-boerse.de/RiskIT/MDH-UI)
|
|
11
10
|
- [RiskIT/openid-k8s-token-generator](https://github.deutsche-boerse.de/RiskIT/openid-k8s-token-generator)
|
|
12
11
|
|
|
13
12
|
## Packages
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, inject, ElementRef, input, Directive } from '@angular/core';
|
|
3
|
+
import { deepClone, Logger } from '@dbg-riskit/common';
|
|
4
|
+
import * as XLSX from 'xlsx';
|
|
5
|
+
|
|
6
|
+
class RiskExcelExportService {
|
|
7
|
+
exportAsExcel(exportData, filename, columns, tabs) {
|
|
8
|
+
if (exportData && exportData.length && columns) {
|
|
9
|
+
const data = this.createHeaders(exportData, columns);
|
|
10
|
+
if (tabs == null) {
|
|
11
|
+
this.export(data, filename);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
this.export(data, filename, tabs);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
createHeaders(data, columns) {
|
|
19
|
+
if (this.isArrayOfArrays(data)) {
|
|
20
|
+
return this.multiTabHeaders(data, columns);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return this.singleTabHeaders(data, columns);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
multiTabHeaders(data, columns) {
|
|
27
|
+
const dataWithHeaders = [];
|
|
28
|
+
data.forEach((arr, index) => {
|
|
29
|
+
const headers = {};
|
|
30
|
+
const keys = Object.keys(arr[0]);
|
|
31
|
+
keys.forEach((key) => {
|
|
32
|
+
headers[key] = columns[index][key].header;
|
|
33
|
+
});
|
|
34
|
+
const clonedData = deepClone(arr);
|
|
35
|
+
clonedData.unshift(headers);
|
|
36
|
+
dataWithHeaders.push(clonedData);
|
|
37
|
+
});
|
|
38
|
+
return dataWithHeaders;
|
|
39
|
+
}
|
|
40
|
+
singleTabHeaders(data, columns) {
|
|
41
|
+
const headers = {};
|
|
42
|
+
const keys = Object.keys(data[0]);
|
|
43
|
+
keys.forEach((key, index) => {
|
|
44
|
+
headers[key] = columns[index].header;
|
|
45
|
+
});
|
|
46
|
+
const clonedData = deepClone(data);
|
|
47
|
+
clonedData.unshift(headers);
|
|
48
|
+
return clonedData;
|
|
49
|
+
}
|
|
50
|
+
export(data, filename, tabs) {
|
|
51
|
+
const { sheetName, fileName } = this.getFileName(filename);
|
|
52
|
+
if (this.isArrayOfArrays(data)) {
|
|
53
|
+
return this.multiTabExport(data, fileName, tabs);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return this.singleTabExport(data, sheetName, fileName);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
multiTabExport(data, filename, tabs) {
|
|
60
|
+
const workbook = data.reduce((result, curr, index) => {
|
|
61
|
+
result.Sheets = {
|
|
62
|
+
...result.Sheets,
|
|
63
|
+
[tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true })
|
|
64
|
+
};
|
|
65
|
+
result.SheetNames = [...result.SheetNames, tabs[index]];
|
|
66
|
+
return result;
|
|
67
|
+
}, {
|
|
68
|
+
Sheets: {},
|
|
69
|
+
SheetNames: []
|
|
70
|
+
});
|
|
71
|
+
XLSX.writeFile(workbook, filename);
|
|
72
|
+
}
|
|
73
|
+
singleTabExport(data, sheetName, filename) {
|
|
74
|
+
const worksheet = XLSX.utils.json_to_sheet(data, { skipHeader: true });
|
|
75
|
+
const workbook = XLSX.utils.book_new();
|
|
76
|
+
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
|
|
77
|
+
XLSX.writeFile(workbook, filename);
|
|
78
|
+
}
|
|
79
|
+
getFileName(sheetName) {
|
|
80
|
+
const fileName = `${sheetName}.xlsx`;
|
|
81
|
+
return {
|
|
82
|
+
sheetName,
|
|
83
|
+
fileName
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
isArrayOfArrays(array) {
|
|
87
|
+
return array.every((item) => Array.isArray(item));
|
|
88
|
+
}
|
|
89
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
90
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskExcelExportService, providedIn: 'root' }); }
|
|
91
|
+
}
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskExcelExportService, decorators: [{
|
|
93
|
+
type: Injectable,
|
|
94
|
+
args: [{ providedIn: 'root' }]
|
|
95
|
+
}] });
|
|
96
|
+
|
|
97
|
+
class RiskExcelFileExportDirective {
|
|
98
|
+
constructor() {
|
|
99
|
+
this.elementRef = inject(ElementRef);
|
|
100
|
+
this.excelExportService = inject(RiskExcelExportService);
|
|
101
|
+
this.logger = inject(Logger);
|
|
102
|
+
/**
|
|
103
|
+
* 'risk-xlsx-export-columns' can be provided as array OR array of arrays,
|
|
104
|
+
* When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,
|
|
105
|
+
* That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,
|
|
106
|
+
*/
|
|
107
|
+
this.columns = input.required(...(ngDevMode ? [{ debugName: "columns", alias: 'risk-xlsx-export-columns' }] : [{ alias: 'risk-xlsx-export-columns' }]));
|
|
108
|
+
this.data = input.required(...(ngDevMode ? [{ debugName: "data", alias: 'risk-xlsx-export' }] : [{ alias: 'risk-xlsx-export' }]));
|
|
109
|
+
this.filename = input('data', ...(ngDevMode ? [{ debugName: "filename", alias: 'risk-xlsx-export-filename' }] : [{ alias: 'risk-xlsx-export-filename' }]));
|
|
110
|
+
this.tabs = input(undefined, ...(ngDevMode ? [{ debugName: "tabs", alias: 'risk-xlsx-export-tabs' }] : [{ alias: 'risk-xlsx-export-tabs' }]));
|
|
111
|
+
this.disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : []));
|
|
112
|
+
}
|
|
113
|
+
export() {
|
|
114
|
+
if (this.isDisabled()) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const data = this.data();
|
|
118
|
+
if (!Array.isArray(data) || data.length === 0) {
|
|
119
|
+
this.logger.error(new Error('No data provided for export!'));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const tabs = this.tabs();
|
|
123
|
+
const isArrayOfArrays = this.excelExportService.isArrayOfArrays(data);
|
|
124
|
+
if (isArrayOfArrays) {
|
|
125
|
+
if (!tabs || tabs.length === 0) {
|
|
126
|
+
this.logger.error(new Error('Wrong data structure provided!'));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
if (tabs && tabs.length > 0) {
|
|
132
|
+
this.logger.error(new Error('Wrong data structure provided!'));
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const columns = this.columns();
|
|
137
|
+
if (!columns) {
|
|
138
|
+
this.logger.error(new Error('Columns not provided!'));
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (!tabs) {
|
|
142
|
+
this.excelExportService.exportAsExcel(data, this.filename(), columns);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.excelExportService.exportAsExcel(data, this.filename(), columns, tabs);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
isDisabled() {
|
|
149
|
+
if (this.elementRef.nativeElement.disabled === true) {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
const disabledValue = this.disabled();
|
|
153
|
+
if (disabledValue == null) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
switch (typeof disabledValue) {
|
|
157
|
+
case 'boolean':
|
|
158
|
+
return disabledValue;
|
|
159
|
+
case 'string':
|
|
160
|
+
return disabledValue.toLowerCase() === 'disabled' || disabledValue.toLowerCase() === 'true';
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskExcelFileExportDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
165
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: RiskExcelFileExportDirective, isStandalone: true, selector: "[risk-xlsx-export]", inputs: { columns: { classPropertyName: "columns", publicName: "risk-xlsx-export-columns", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "risk-xlsx-export", isSignal: true, isRequired: true, transformFunction: null }, filename: { classPropertyName: "filename", publicName: "risk-xlsx-export-filename", isSignal: true, isRequired: false, transformFunction: null }, tabs: { classPropertyName: "tabs", publicName: "risk-xlsx-export-tabs", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "export()" }, properties: { "class.risk-xlsx-export": "true" } }, ngImport: i0 }); }
|
|
166
|
+
}
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RiskExcelFileExportDirective, decorators: [{
|
|
168
|
+
type: Directive,
|
|
169
|
+
args: [{
|
|
170
|
+
selector: '[risk-xlsx-export]',
|
|
171
|
+
host: {
|
|
172
|
+
'[class.risk-xlsx-export]': 'true',
|
|
173
|
+
'(click)': 'export()'
|
|
174
|
+
}
|
|
175
|
+
}]
|
|
176
|
+
}], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "risk-xlsx-export-columns", required: true }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "risk-xlsx-export", required: true }] }], filename: [{ type: i0.Input, args: [{ isSignal: true, alias: "risk-xlsx-export-filename", required: false }] }], tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "risk-xlsx-export-tabs", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Generated bundle index. Do not edit.
|
|
180
|
+
*/
|
|
181
|
+
|
|
182
|
+
export { RiskExcelExportService, RiskExcelFileExportDirective };
|
|
183
|
+
//# 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/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 RiskExcelExportService {\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 {Logger, ValueGetter} from '@dbg-riskit/common';\nimport {RiskExcelExportService} 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 RiskExcelFileExportDirective {\n private readonly elementRef = inject(ElementRef);\n private readonly excelExportService = inject(RiskExcelExportService);\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 public readonly columns = input.required<Array<CSVExportColumn<object>> | Array<{\n [key: string]: CSVExportColumn<object>\n }>>({alias: 'risk-xlsx-export-columns'});\n public readonly data = input.required<object[] | object[][]>({alias: 'risk-xlsx-export'});\n public readonly filename = input('data', {alias: 'risk-xlsx-export-filename'});\n public readonly tabs = input<string[]>(undefined, {alias: 'risk-xlsx-export-tabs'});\n public readonly disabled = input<boolean | string>();\n\n public export(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const data = this.data();\n if (!Array.isArray(data) || data.length === 0) {\n this.logger.error(new Error('No data provided for export!'));\n return;\n }\n\n const tabs = this.tabs();\n const isArrayOfArrays = this.excelExportService.isArrayOfArrays(data);\n if (isArrayOfArrays) {\n if (!tabs || tabs.length === 0) {\n this.logger.error(new Error('Wrong data structure provided!'));\n return;\n }\n } else {\n if (tabs && tabs.length > 0) {\n this.logger.error(new Error('Wrong data structure provided!'));\n return;\n }\n }\n\n const columns = this.columns();\n if (!columns) {\n this.logger.error(new Error('Columns not provided!'));\n return;\n }\n\n if (!tabs) {\n this.excelExportService.exportAsExcel(data as object[], this.filename(),\n columns as Array<CSVExportColumn<object>>);\n } else {\n this.excelExportService.exportAsExcel(data as object[][], this.filename(),\n columns as Array<{ [key: string]: CSVExportColumn<object> }>, tabs);\n }\n }\n\n private isDisabled(): boolean {\n if (this.elementRef.nativeElement.disabled === true) {\n return true;\n }\n\n const disabledValue = this.disabled();\n if (disabledValue == null) {\n return false;\n }\n\n switch (typeof disabledValue) {\n case 'boolean':\n return disabledValue;\n case 'string':\n return disabledValue.toLowerCase() === 'disabled' || disabledValue.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
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { ValueGetter } from '@dbg-riskit/common';
|
|
3
|
+
|
|
4
|
+
interface CSVExportColumn<T> {
|
|
5
|
+
get: ValueGetter<T>;
|
|
6
|
+
header: string;
|
|
7
|
+
}
|
|
8
|
+
declare class RiskExcelFileExportDirective {
|
|
9
|
+
private readonly elementRef;
|
|
10
|
+
private readonly excelExportService;
|
|
11
|
+
private readonly logger;
|
|
12
|
+
/**
|
|
13
|
+
* 'risk-xlsx-export-columns' can be provided as array OR array of arrays,
|
|
14
|
+
* When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,
|
|
15
|
+
* That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,
|
|
16
|
+
*/
|
|
17
|
+
readonly columns: _angular_core.InputSignal<CSVExportColumn<object>[] | {
|
|
18
|
+
[key: string]: CSVExportColumn<object>;
|
|
19
|
+
}[]>;
|
|
20
|
+
readonly data: _angular_core.InputSignal<object[] | object[][]>;
|
|
21
|
+
readonly filename: _angular_core.InputSignal<string>;
|
|
22
|
+
readonly tabs: _angular_core.InputSignal<string[] | undefined>;
|
|
23
|
+
readonly disabled: _angular_core.InputSignal<string | boolean | undefined>;
|
|
24
|
+
export(): void;
|
|
25
|
+
private isDisabled;
|
|
26
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RiskExcelFileExportDirective, never>;
|
|
27
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RiskExcelFileExportDirective, "[risk-xlsx-export]", never, { "columns": { "alias": "risk-xlsx-export-columns"; "required": true; "isSignal": true; }; "data": { "alias": "risk-xlsx-export"; "required": true; "isSignal": true; }; "filename": { "alias": "risk-xlsx-export-filename"; "required": false; "isSignal": true; }; "tabs": { "alias": "risk-xlsx-export-tabs"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare class RiskExcelExportService {
|
|
31
|
+
exportAsExcel(exportData: object[], filename: string, columns: Array<CSVExportColumn<object>>): void;
|
|
32
|
+
exportAsExcel(exportData: object[][], filename: string, columns: Array<{
|
|
33
|
+
[key: string]: CSVExportColumn<object>;
|
|
34
|
+
}>, tabs: string[]): void;
|
|
35
|
+
private createHeaders;
|
|
36
|
+
private multiTabHeaders;
|
|
37
|
+
private singleTabHeaders;
|
|
38
|
+
private export;
|
|
39
|
+
private multiTabExport;
|
|
40
|
+
private singleTabExport;
|
|
41
|
+
private getFileName;
|
|
42
|
+
isArrayOfArrays(array: object[] | object[][]): boolean;
|
|
43
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RiskExcelExportService, never>;
|
|
44
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<RiskExcelExportService>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { RiskExcelExportService, RiskExcelFileExportDirective };
|
|
48
|
+
export type { CSVExportColumn };
|
package/package.json
CHANGED
|
@@ -1,37 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbg-riskit/angular-excel-export",
|
|
3
|
-
"version": "9999.9999.9999-rc.
|
|
3
|
+
"version": "9999.9999.9999-rc.6692537",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/core": "^
|
|
7
|
-
"@angular/platform-browser": "^
|
|
8
|
-
"@angular/common": "^
|
|
9
|
-
"@dbg-riskit/common": "~9999.9999.9999-rc.
|
|
10
|
-
"@dbg-riskit/angular-common": "~9999.9999.9999-rc.
|
|
11
|
-
"@dbg-riskit/angular-logging": "~9999.9999.9999-rc.
|
|
12
|
-
"xlsx": "^0.
|
|
6
|
+
"@angular/core": "^20.3.15",
|
|
7
|
+
"@angular/platform-browser": "^20.3.15",
|
|
8
|
+
"@angular/common": "^20.3.15",
|
|
9
|
+
"@dbg-riskit/common": "~9999.9999.9999-rc.6692537",
|
|
10
|
+
"@dbg-riskit/angular-common": "~9999.9999.9999-rc.6692537",
|
|
11
|
+
"@dbg-riskit/angular-logging": "~9999.9999.9999-rc.6692537",
|
|
12
|
+
"xlsx": "^0.20.3"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"tslib": "^2.
|
|
15
|
+
"tslib": "^2.8.1"
|
|
16
16
|
},
|
|
17
|
-
"module": "
|
|
18
|
-
"
|
|
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
|
-
"typings": "dbg-riskit-angular-excel-export.d.ts",
|
|
17
|
+
"module": "fesm2022/dbg-riskit-angular-excel-export.mjs",
|
|
18
|
+
"typings": "index.d.ts",
|
|
23
19
|
"exports": {
|
|
24
20
|
"./package.json": {
|
|
25
21
|
"default": "./package.json"
|
|
26
22
|
},
|
|
27
23
|
".": {
|
|
28
|
-
"types": "./
|
|
29
|
-
"
|
|
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"
|
|
24
|
+
"types": "./index.d.ts",
|
|
25
|
+
"default": "./fesm2022/dbg-riskit-angular-excel-export.mjs"
|
|
34
26
|
}
|
|
35
|
-
}
|
|
36
|
-
"sideEffects": false
|
|
27
|
+
}
|
|
37
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,32 +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
|
-
}
|
|
8
|
-
ExcelExportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
-
ExcelExportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, declarations: [ExcelFileExportDirective], imports: [CommonModule], exports: [ExcelFileExportDirective] });
|
|
10
|
-
ExcelExportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, providers: [
|
|
11
|
-
ExcelExportService
|
|
12
|
-
], imports: [[
|
|
13
|
-
CommonModule
|
|
14
|
-
]] });
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, decorators: [{
|
|
16
|
-
type: NgModule,
|
|
17
|
-
args: [{
|
|
18
|
-
imports: [
|
|
19
|
-
CommonModule
|
|
20
|
-
],
|
|
21
|
-
declarations: [
|
|
22
|
-
ExcelFileExportDirective
|
|
23
|
-
],
|
|
24
|
-
exports: [
|
|
25
|
-
ExcelFileExportDirective
|
|
26
|
-
],
|
|
27
|
-
providers: [
|
|
28
|
-
ExcelExportService
|
|
29
|
-
]
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZXhwb3J0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZXhjZWwtZXhwb3J0L3NyYy9saWIvZXhjZWwuZXhwb3J0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQnZFLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFUdEIsd0JBQXdCLGFBSHhCLFlBQVksYUFNWix3QkFBd0I7K0dBTW5CLGlCQUFpQixhQUpaO1FBQ1Ysa0JBQWtCO0tBQ3JCLFlBWGE7WUFDVixZQUFZO1NBQ2Y7MkZBV1EsaUJBQWlCO2tCQWQ3QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBTzt3QkFDVixZQUFZO3FCQUNmO29CQUNELFlBQVksRUFBRTt3QkFDVix3QkFBd0I7cUJBQzNCO29CQUNELE9BQU8sRUFBTzt3QkFDVix3QkFBd0I7cUJBQzNCO29CQUNELFNBQVMsRUFBSzt3QkFDVixrQkFBa0I7cUJBQ3JCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RXhjZWxFeHBvcnRTZXJ2aWNlfSBmcm9tICcuL2V4Y2VsLmV4cG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7RXhjZWxGaWxlRXhwb3J0RGlyZWN0aXZlfSBmcm9tICcuL2V4Y2VsLmZpbGUuZXhwb3J0LmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0cyAgICAgOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEV4Y2VsRmlsZUV4cG9ydERpcmVjdGl2ZVxuICAgIF0sXG4gICAgZXhwb3J0cyAgICAgOiBbXG4gICAgICAgIEV4Y2VsRmlsZUV4cG9ydERpcmVjdGl2ZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzICAgOiBbXG4gICAgICAgIEV4Y2VsRXhwb3J0U2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRXhjZWxFeHBvcnRNb2R1bGUge1xufVxuIl19
|
|
@@ -1,101 +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
|
-
if ('Sheets' in result) {
|
|
61
|
-
result['Sheets'] = {
|
|
62
|
-
...result['Sheets'],
|
|
63
|
-
[tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true })
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
result['Sheets'] = { [tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true }) };
|
|
68
|
-
}
|
|
69
|
-
if ('SheetNames' in result) {
|
|
70
|
-
result['SheetNames'] = [...result['SheetNames'], tabs[index]];
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
result['SheetNames'] = [tabs[index]];
|
|
74
|
-
}
|
|
75
|
-
return result;
|
|
76
|
-
}, {});
|
|
77
|
-
XLSX.writeFile(workbook, filename);
|
|
78
|
-
}
|
|
79
|
-
singleTabExport(data, sheetName, filename) {
|
|
80
|
-
const worksheet = XLSX.utils.json_to_sheet(data, { skipHeader: true });
|
|
81
|
-
const workbook = XLSX.utils.book_new();
|
|
82
|
-
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
|
|
83
|
-
XLSX.writeFile(workbook, filename);
|
|
84
|
-
}
|
|
85
|
-
getFileName(sheetName) {
|
|
86
|
-
const fileName = `${sheetName}.xlsx`;
|
|
87
|
-
return {
|
|
88
|
-
sheetName,
|
|
89
|
-
fileName
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
isArrayOfArrays(array) {
|
|
93
|
-
return array.every((item) => Array.isArray(item));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
ExcelExportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
97
|
-
ExcelExportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportService });
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportService, decorators: [{
|
|
99
|
-
type: Injectable
|
|
100
|
-
}] });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWV4Y2VsLWV4cG9ydC9zcmMvbGliL2V4Y2VsLmV4cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOztBQUk3QixNQUFNLE9BQU8sa0JBQWtCO0lBS3BCLGFBQWEsQ0FBQyxVQUFpQyxFQUFFLFFBQWdCLEVBQ25ELE9BRUUsRUFBRSxJQUFlO1FBQ3BDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQWtCLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ25EO1NBQ0o7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQTJCLEVBQUUsT0FFakQ7UUFDRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQWtCLEVBQzFDLE9BQTRELENBQUMsQ0FBQztTQUNyRTthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQXlDLENBQUMsQ0FBQztTQUNqRjtJQUNMLENBQUM7SUFFTyxl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QWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2RlZXBDbG9uZX0gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5pbXBvcnQge0NTVkV4cG9ydENvbHVtbn0gZnJvbSAnLi9leGNlbC5maWxlLmV4cG9ydC5kaXJlY3RpdmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXhjZWxFeHBvcnRTZXJ2aWNlIHtcblxuICAgIHB1YmxpYyBleHBvcnRBc0V4Y2VsKGV4cG9ydERhdGE6IG9iamVjdFtdLCBmaWxlbmFtZTogc3RyaW5nLCBjb2x1bW5zOiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4pOiB2b2lkO1xuICAgIHB1YmxpYyBleHBvcnRBc0V4Y2VsKGV4cG9ydERhdGE6IG9iamVjdFtdW10sIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PiB9PiwgdGFiczogc3RyaW5nW10pOiB2b2lkO1xuICAgIHB1YmxpYyBleHBvcnRBc0V4Y2VsKGV4cG9ydERhdGE6IG9iamVjdFtdIHwgb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4gfCBBcnJheTx7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgfT4sIHRhYnM/OiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAoZXhwb3J0RGF0YSAmJiBleHBvcnREYXRhLmxlbmd0aCAmJiBjb2x1bW5zKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5jcmVhdGVIZWFkZXJzKGV4cG9ydERhdGEsIGNvbHVtbnMpO1xuICAgICAgICAgICAgaWYgKHRhYnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0KGRhdGEsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnQoZGF0YSBhcyBvYmplY3RbXVtdLCBmaWxlbmFtZSwgdGFicyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhlYWRlcnMoZGF0YTogb2JqZWN0W10gfCBvYmplY3RbXVtdLCBjb2x1bW5zOiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4gfCBBcnJheTx7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+XG4gICAgfT4pOiBvYmplY3RbXSB8IG9iamVjdFtdW10ge1xuICAgICAgICBpZiAodGhpcy5pc0FycmF5T2ZBcnJheXMoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpVGFiSGVhZGVycyhkYXRhIGFzIG9iamVjdFtdW10sXG4gICAgICAgICAgICAgICAgY29sdW1ucyBhcyBBcnJheTx7IFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+IH0+KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRhYkhlYWRlcnMoZGF0YSwgY29sdW1ucyBhcyBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtdWx0aVRhYkhlYWRlcnMoZGF0YTogb2JqZWN0W11bXSwgY29sdW1uczogQXJyYXk8e1xuICAgICAgICBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PlxuICAgIH0+KTogb2JqZWN0W11bXSB7XG4gICAgICAgIGNvbnN0IGRhdGFXaXRoSGVhZGVyczogb2JqZWN0W11bXSA9IFtdO1xuICAgICAgICBkYXRhLmZvckVhY2goKGFycjogb2JqZWN0W10sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhhcnJbMF0pO1xuICAgICAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzW2tleV0gPSBjb2x1bW5zW2luZGV4XVtrZXldLmhlYWRlcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgY2xvbmVkRGF0YSA9IGRlZXBDbG9uZShhcnIpO1xuICAgICAgICAgICAgY2xvbmVkRGF0YS51bnNoaWZ0KGhlYWRlcnMpO1xuICAgICAgICAgICAgZGF0YVdpdGhIZWFkZXJzLnB1c2goY2xvbmVkRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZGF0YVdpdGhIZWFkZXJzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2luZ2xlVGFiSGVhZGVycyhkYXRhOiBvYmplY3RbXSwgY29sdW1uczogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+KTogb2JqZWN0W10ge1xuICAgICAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhkYXRhWzBdKTtcblxuICAgICAgICBrZXlzLmZvckVhY2goKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IGNvbHVtbnNbaW5kZXhdLmhlYWRlcjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY2xvbmVkRGF0YSA9IGRlZXBDbG9uZShkYXRhKTtcbiAgICAgICAgY2xvbmVkRGF0YS51bnNoaWZ0KGhlYWRlcnMpO1xuICAgICAgICByZXR1cm4gY2xvbmVkRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4cG9ydChkYXRhOiBvYmplY3RbXSwgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgcHJpdmF0ZSBleHBvcnQoZGF0YTogb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZywgdGFiczogc3RyaW5nW10pOiB2b2lkO1xuICAgIHByaXZhdGUgZXhwb3J0KGRhdGE6IG9iamVjdFtdIHwgb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZywgdGFicz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHNoZWV0TmFtZSxcbiAgICAgICAgICAgIGZpbGVOYW1lXG4gICAgICAgIH0gPSB0aGlzLmdldEZpbGVOYW1lKGZpbGVuYW1lKTtcblxuICAgICAgICBpZiAodGhpcy5pc0FycmF5T2ZBcnJheXMoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpVGFiRXhwb3J0KGRhdGEgYXMgb2JqZWN0W11bXSwgZmlsZU5hbWUsIHRhYnMhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRhYkV4cG9ydChkYXRhLCBzaGVldE5hbWUsIGZpbGVOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbXVsdGlUYWJFeHBvcnQoZGF0YTogb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZywgdGFiczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSBkYXRhLnJlZHVjZSgocmVzdWx0LCBjdXJyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCdTaGVldHMnIGluIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFsnU2hlZXRzJ10gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdFsnU2hlZXRzJ10sXG4gICAgICAgICAgICAgICAgICAgIFt0YWJzW2luZGV4XV06IFhMU1gudXRpbHMuanNvbl90b19zaGVldChjdXJyLCB7c2tpcEhlYWRlcjogdHJ1ZX0pXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0WydTaGVldHMnXSA9IHtbdGFic1tpbmRleF1dOiBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoY3Vyciwge3NraXBIZWFkZXI6IHRydWV9KX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJ1NoZWV0TmFtZXMnIGluIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFsnU2hlZXROYW1lcyddID0gWy4uLnJlc3VsdFsnU2hlZXROYW1lcyddLCB0YWJzW2luZGV4XV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdFsnU2hlZXROYW1lcyddID0gW3RhYnNbaW5kZXhdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9IGFzIFhMU1guV29ya0Jvb2spO1xuICAgICAgICBYTFNYLndyaXRlRmlsZSh3b3JrYm9vaywgZmlsZW5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2luZ2xlVGFiRXhwb3J0KGRhdGE6IG9iamVjdFtdLCBzaGVldE5hbWU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB3b3Jrc2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoZGF0YSwge3NraXBIZWFkZXI6IHRydWV9KTtcbiAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod29ya2Jvb2ssIHdvcmtzaGVldCwgc2hlZXROYW1lKTtcbiAgICAgICAgWExTWC53cml0ZUZpbGUod29ya2Jvb2ssIGZpbGVuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbGVOYW1lKHNoZWV0TmFtZTogc3RyaW5nKTogeyBzaGVldE5hbWU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHtzaGVldE5hbWV9Lnhsc3hgO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hlZXROYW1lLFxuICAgICAgICAgICAgZmlsZU5hbWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBcnJheU9mQXJyYXlzKGFycmF5OiBvYmplY3RbXSB8IG9iamVjdFtdW10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGFycmF5LmV2ZXJ5KChpdGVtKSA9PiBBcnJheS5pc0FycmF5KGl0ZW0pKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -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
|
-
}
|
|
54
|
-
ExcelFileExportDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelFileExportDirective, deps: [{ token: i0.ElementRef }, { token: i1.ExcelExportService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Directive });
|
|
55
|
-
ExcelFileExportDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", 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 });
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", 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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZmlsZS5leHBvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1leGNlbC1leHBvcnQvc3JjL2xpYi9leGNlbC5maWxlLmV4cG9ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBZ0J2RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQXNCdkQsWUFBb0MsVUFBc0IsRUFDdEIsa0JBQXNDLEVBQ3RDLE1BQWM7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFId0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWM0MsYUFBUSxHQUFHLE1BQU0sQ0FBQztJQVl6QixDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELFFBQVEsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzFCLEtBQUssU0FBUztnQkFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDekIsS0FBSyxRQUFRO2dCQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7U0FDbkc7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO1lBQzdELE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEYsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7WUFDL0QsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7WUFDdEQsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRTtZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFDMUQsSUFBSSxDQUFDLE9BQXlDLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUN4RSxJQUFJLENBQUMsT0FBNEQsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckY7SUFDTCxDQUFDOztxSEEzRVEsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFQcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQU07d0JBQ04sMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsU0FBUyxFQUFtQixVQUFVO3FCQUN6QztpQkFDSjt1SkFTVSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsMEJBQTBCO2dCQUkxQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUlsQixRQUFRO3NCQURkLEtBQUs7dUJBQUMsMkJBQTJCO2dCQUkzQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUl2QixRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtMb2dnZXIsIFZhbHVlR2V0dGVyfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtFeGNlbEV4cG9ydFNlcnZpY2V9IGZyb20gJy4vZXhjZWwuZXhwb3J0LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENTVkV4cG9ydENvbHVtbjxUPiB7XG4gICAgZ2V0OiBWYWx1ZUdldHRlcjxUPjtcbiAgICBoZWFkZXI6IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmlzay14bHN4LWV4cG9ydF0nLFxuICAgIGhvc3QgICAgOiB7XG4gICAgICAgICdbY2xhc3Mucmlzay14bHN4LWV4cG9ydF0nOiAndHJ1ZScsXG4gICAgICAgICcoY2xpY2spJyAgICAgICAgICAgICAgICAgOiAnZXhwb3J0KCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBFeGNlbEZpbGVFeHBvcnREaXJlY3RpdmUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqICdyaXNrLXhsc3gtZXhwb3J0LWNvbHVtbnMnIGNhbiBiZSBwcm92aWRlZCBhcyBhcnJheSBPUiBhcnJheSBvZiBhcnJheXMsXG4gICAgICogV2hlbiBwcm92aWRlZCBhcyBhcnJheSBvZiBhcnJheXMgdGhlbiAncmlzay14bHN4LWV4cG9ydCcgc2hvdWxkIGJlIHByb3ZpZGVkIGFzIGFycmF5IG9mIGFycmF5cyBhcyB3ZWxsLFxuICAgICAqIFRoYXQgbWVhbnMgdGhhdCBtdWx0aXBsZSB0YWJzIGFyZSB1c2VkLCB0YWIgbmFtZXMgYXJlIHByb3ZpZGVkIGluICdyaXNrLXhsc3gtZXhwb3J0LXRhYnMnIGFzIGFycmF5IG9mIHN0cmluZ3MsXG4gICAgICovXG4gICAgQElucHV0KCdyaXNrLXhsc3gtZXhwb3J0LWNvbHVtbnMnKVxuICAgIHB1YmxpYyBjb2x1bW5zPzogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+IHwgQXJyYXk8eyBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PiB9PjtcblxuICAgIEBJbnB1dCgncmlzay14bHN4LWV4cG9ydCcpXG4gICAgcHVibGljIGRhdGE/OiBvYmplY3RbXSB8IG9iamVjdFtdW107XG5cbiAgICBASW5wdXQoJ3Jpc2steGxzeC1leHBvcnQtZmlsZW5hbWUnKVxuICAgIHB1YmxpYyBmaWxlbmFtZSA9ICdkYXRhJztcblxuICAgIEBJbnB1dCgncmlzay14bHN4LWV4cG9ydC10YWJzJylcbiAgICBwdWJsaWMgdGFicz86IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBleGNlbEV4cG9ydFNlcnZpY2U6IEV4Y2VsRXhwb3J0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZC50b0xvd2VyQ2FzZSgpID09PSAnZGlzYWJsZWQnIHx8IHRoaXMuZGlzYWJsZWQudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBvcnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihuZXcgRXJyb3IoJ05vIGRhdGEgcHJvdmlkZWQgZm9yIGV4cG9ydCEnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHRoaXMudGFicyAmJiB0aGlzLnRhYnMubGVuZ3RoICYmICF0aGlzLmV4Y2VsRXhwb3J0U2VydmljZS5pc0FycmF5T2ZBcnJheXModGhpcy5kYXRhKSkgfHxcbiAgICAgICAgICAgICghdGhpcy50YWJzICYmIHRoaXMuZXhjZWxFeHBvcnRTZXJ2aWNlLmlzQXJyYXlPZkFycmF5cyh0aGlzLmRhdGEpKSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobmV3IEVycm9yKCdXcm9uZyBkYXRhIHN0cnVjdHVyZSBwcm92aWRlZCEnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuY29sdW1ucykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobmV3IEVycm9yKCdDb2x1bW5zIG5vdCBwcm92aWRlZCEnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YWJzID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZXhjZWxFeHBvcnRTZXJ2aWNlLmV4cG9ydEFzRXhjZWwodGhpcy5kYXRhLCB0aGlzLmZpbGVuYW1lLFxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW1ucyBhcyBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5leGNlbEV4cG9ydFNlcnZpY2UuZXhwb3J0QXNFeGNlbCh0aGlzLmRhdGEgYXMgb2JqZWN0W11bXSwgdGhpcy5maWxlbmFtZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMgYXMgQXJyYXk8eyBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PiB9PiwgdGhpcy50YWJzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
package/esm2020/public_api.mjs
DELETED
|
@@ -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,210 +0,0 @@
|
|
|
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'] = Object.assign(Object.assign({}, result['Sheets']), { [tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true }) });
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
result['Sheets'] = { [tabs[index]]: XLSX.utils.json_to_sheet(curr, { skipHeader: true }) };
|
|
69
|
-
}
|
|
70
|
-
if ('SheetNames' in result) {
|
|
71
|
-
result['SheetNames'] = [...result['SheetNames'], tabs[index]];
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
result['SheetNames'] = [tabs[index]];
|
|
75
|
-
}
|
|
76
|
-
return result;
|
|
77
|
-
}, {});
|
|
78
|
-
XLSX.writeFile(workbook, filename);
|
|
79
|
-
}
|
|
80
|
-
singleTabExport(data, sheetName, filename) {
|
|
81
|
-
const worksheet = XLSX.utils.json_to_sheet(data, { skipHeader: true });
|
|
82
|
-
const workbook = XLSX.utils.book_new();
|
|
83
|
-
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
|
|
84
|
-
XLSX.writeFile(workbook, filename);
|
|
85
|
-
}
|
|
86
|
-
getFileName(sheetName) {
|
|
87
|
-
const fileName = `${sheetName}.xlsx`;
|
|
88
|
-
return {
|
|
89
|
-
sheetName,
|
|
90
|
-
fileName
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
isArrayOfArrays(array) {
|
|
94
|
-
return array.every((item) => Array.isArray(item));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
ExcelExportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
98
|
-
ExcelExportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportService });
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportService, decorators: [{
|
|
100
|
-
type: Injectable
|
|
101
|
-
}] });
|
|
102
|
-
|
|
103
|
-
class ExcelFileExportDirective extends BaseComponent {
|
|
104
|
-
constructor(elementRef, excelExportService, logger) {
|
|
105
|
-
super();
|
|
106
|
-
this.elementRef = elementRef;
|
|
107
|
-
this.excelExportService = excelExportService;
|
|
108
|
-
this.logger = logger;
|
|
109
|
-
this.filename = 'data';
|
|
110
|
-
}
|
|
111
|
-
isDisabled() {
|
|
112
|
-
if (this.elementRef.nativeElement.disabled === true) {
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
if (this.disabled == null) {
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
switch (typeof this.disabled) {
|
|
119
|
-
case 'boolean':
|
|
120
|
-
return this.disabled;
|
|
121
|
-
case 'string':
|
|
122
|
-
return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';
|
|
123
|
-
}
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
export() {
|
|
127
|
-
if (this.isDisabled()) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
if (this.data == null) {
|
|
131
|
-
this.logger.error(new Error('No data provided for export!'));
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
if ((this.tabs && this.tabs.length && !this.excelExportService.isArrayOfArrays(this.data)) ||
|
|
135
|
-
(!this.tabs && this.excelExportService.isArrayOfArrays(this.data))) {
|
|
136
|
-
this.logger.error(new Error('Wrong data structure provided!'));
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
if (!this.columns) {
|
|
140
|
-
this.logger.error(new Error('Columns not provided!'));
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (this.tabs == null) {
|
|
144
|
-
this.excelExportService.exportAsExcel(this.data, this.filename, this.columns);
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
this.excelExportService.exportAsExcel(this.data, this.filename, this.columns, this.tabs);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
ExcelFileExportDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelFileExportDirective, deps: [{ token: i0.ElementRef }, { token: ExcelExportService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Directive });
|
|
152
|
-
ExcelFileExportDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", 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 });
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelFileExportDirective, decorators: [{
|
|
154
|
-
type: Directive,
|
|
155
|
-
args: [{
|
|
156
|
-
selector: '[risk-xlsx-export]',
|
|
157
|
-
host: {
|
|
158
|
-
'[class.risk-xlsx-export]': 'true',
|
|
159
|
-
'(click)': 'export()'
|
|
160
|
-
}
|
|
161
|
-
}]
|
|
162
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ExcelExportService }, { type: i2.Logger }]; }, propDecorators: { columns: [{
|
|
163
|
-
type: Input,
|
|
164
|
-
args: ['risk-xlsx-export-columns']
|
|
165
|
-
}], data: [{
|
|
166
|
-
type: Input,
|
|
167
|
-
args: ['risk-xlsx-export']
|
|
168
|
-
}], filename: [{
|
|
169
|
-
type: Input,
|
|
170
|
-
args: ['risk-xlsx-export-filename']
|
|
171
|
-
}], tabs: [{
|
|
172
|
-
type: Input,
|
|
173
|
-
args: ['risk-xlsx-export-tabs']
|
|
174
|
-
}], disabled: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}] } });
|
|
177
|
-
|
|
178
|
-
class ExcelExportModule {
|
|
179
|
-
}
|
|
180
|
-
ExcelExportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
181
|
-
ExcelExportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, declarations: [ExcelFileExportDirective], imports: [CommonModule], exports: [ExcelFileExportDirective] });
|
|
182
|
-
ExcelExportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, providers: [
|
|
183
|
-
ExcelExportService
|
|
184
|
-
], imports: [[
|
|
185
|
-
CommonModule
|
|
186
|
-
]] });
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, decorators: [{
|
|
188
|
-
type: NgModule,
|
|
189
|
-
args: [{
|
|
190
|
-
imports: [
|
|
191
|
-
CommonModule
|
|
192
|
-
],
|
|
193
|
-
declarations: [
|
|
194
|
-
ExcelFileExportDirective
|
|
195
|
-
],
|
|
196
|
-
exports: [
|
|
197
|
-
ExcelFileExportDirective
|
|
198
|
-
],
|
|
199
|
-
providers: [
|
|
200
|
-
ExcelExportService
|
|
201
|
-
]
|
|
202
|
-
}]
|
|
203
|
-
}] });
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Generated bundle index. Do not edit.
|
|
207
|
-
*/
|
|
208
|
-
|
|
209
|
-
export { ExcelExportModule, ExcelExportService, ExcelFileExportDirective };
|
|
210
|
-
//# sourceMappingURL=dbg-riskit-angular-excel-export.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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":["i1.ExcelExportService"],"mappings":"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"}
|
|
@@ -1,213 +0,0 @@
|
|
|
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.2.6", ngImport: i0, type: ExcelExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
101
|
-
ExcelExportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportService });
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", 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.2.6", 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.2.6", 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.2.6", 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.2.6", ngImport: i0, type: ExcelExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
184
|
-
ExcelExportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, declarations: [ExcelFileExportDirective], imports: [CommonModule], exports: [ExcelFileExportDirective] });
|
|
185
|
-
ExcelExportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ExcelExportModule, providers: [
|
|
186
|
-
ExcelExportService
|
|
187
|
-
], imports: [[
|
|
188
|
-
CommonModule
|
|
189
|
-
]] });
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", 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
|
|
@@ -1 +0,0 @@
|
|
|
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":["i1.ExcelExportService"],"mappings":"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"}
|
|
@@ -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": "risk-xlsx-export-columns"; "data": "risk-xlsx-export"; "filename": "risk-xlsx-export-filename"; "tabs": "risk-xlsx-export-tabs"; "disabled": "disabled"; }, {}, never>;
|
|
31
|
-
}
|
package/public_api.d.ts
DELETED