@dbg-riskit/angular-excel-export 13.0.2 → 9999.9999.9999-rc.21396
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/esm2020/lib/excel.export.service.mjs +9 -4
- package/esm2020/lib/excel.file.export.directive.mjs +11 -2
- package/fesm2015/dbg-riskit-angular-excel-export.mjs +18 -4
- package/fesm2015/dbg-riskit-angular-excel-export.mjs.map +1 -1
- package/fesm2020/dbg-riskit-angular-excel-export.mjs +18 -4
- package/fesm2020/dbg-riskit-angular-excel-export.mjs.map +1 -1
- package/lib/excel.export.service.d.ts +5 -2
- package/lib/excel.file.export.directive.d.ts +4 -2
- package/package.json +4 -4
|
@@ -3,10 +3,15 @@ import { deepClone } from '@dbg-riskit/common';
|
|
|
3
3
|
import * as XLSX from 'xlsx';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class ExcelExportService {
|
|
6
|
-
exportAsExcel(exportData, filename,
|
|
6
|
+
exportAsExcel(exportData, filename, columns, tabs) {
|
|
7
7
|
if (exportData && exportData.length && columns) {
|
|
8
8
|
const data = this.createHeaders(exportData, columns);
|
|
9
|
-
|
|
9
|
+
if (tabs == null) {
|
|
10
|
+
this.export(data, filename);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.export(data, filename, tabs);
|
|
14
|
+
}
|
|
10
15
|
}
|
|
11
16
|
}
|
|
12
17
|
createHeaders(data, columns) {
|
|
@@ -23,7 +28,7 @@ export class ExcelExportService {
|
|
|
23
28
|
const headers = {};
|
|
24
29
|
const keys = Object.keys(arr[0]);
|
|
25
30
|
keys.forEach((key) => {
|
|
26
|
-
headers[key] = columns[index][
|
|
31
|
+
headers[key] = columns[index][key].header;
|
|
27
32
|
});
|
|
28
33
|
const clonedData = deepClone(arr);
|
|
29
34
|
clonedData.unshift(headers);
|
|
@@ -93,4 +98,4 @@ ExcelExportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", v
|
|
|
93
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelExportService, decorators: [{
|
|
94
99
|
type: Injectable
|
|
95
100
|
}] });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWV4Y2VsLWV4cG9ydC9zcmMvbGliL2V4Y2VsLmV4cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOztBQUk3QixNQUFNLE9BQU8sa0JBQWtCO0lBRXBCLGFBQWEsQ0FBQyxVQUFpQixFQUFFLFFBQWdCLEVBQUUsSUFBZSxFQUNwRCxPQUEwRTtRQUMzRixJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUU1QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUVyRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FFckM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVcsRUFDWCxPQUF5RTtRQUMzRixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxPQUE2QyxDQUFDLENBQUM7U0FDcEY7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBVyxFQUFFLE9BQTJDO1FBQzVFLE1BQU0sZUFBZSxHQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVSxFQUFFLEtBQWEs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QUNsRTtpQkFBTTtnQkFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN6QztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBVyxFQUFFLFNBQWlCLEVBQUUsUUFBZ0I7UUFDcEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxTQUFpQjtRQUNqQyxNQUFNLFFBQVEsR0FBRyxHQUFHLFNBQVMsT0FBTyxDQUFDO1FBQ3JDLE9BQU87WUFDSCxTQUFTO1lBQ1QsUUFBUTtTQUNYLENBQUM7SUFDTixDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQVk7UUFDL0IsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7K0dBcEdRLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtkZWVwQ2xvbmV9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xuaW1wb3J0IHtDU1ZFeHBvcnRDb2x1bW59IGZyb20gJy4vZXhjZWwuZmlsZS5leHBvcnQuZGlyZWN0aXZlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV4Y2VsRXhwb3J0U2VydmljZSB7XG5cbiAgICBwdWJsaWMgZXhwb3J0QXNFeGNlbChleHBvcnREYXRhOiBhbnlbXSwgZmlsZW5hbWU6IHN0cmluZywgdGFicz86IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM/OiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48YW55Pj4gfCBBcnJheTxBcnJheTxDU1ZFeHBvcnRDb2x1bW48YW55Pj4+KSB7XG4gICAgICAgIGlmIChleHBvcnREYXRhICYmIGV4cG9ydERhdGEubGVuZ3RoICYmIGNvbHVtbnMpIHtcblxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY3JlYXRlSGVhZGVycyhleHBvcnREYXRhLCBjb2x1bW5zKTtcblxuICAgICAgICAgICAgdGhpcy5leHBvcnQoZGF0YSwgZmlsZW5hbWUsIHRhYnMpO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhlYWRlcnMoZGF0YTogYW55W10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IEFycmF5PENTVkV4cG9ydENvbHVtbjxhbnk+PiB8IEFycmF5PEFycmF5PENTVkV4cG9ydENvbHVtbjxhbnk+Pj4pOiBhbnlbXSB7XG4gICAgICAgIGlmICh0aGlzLmlzQXJyYXlPZkFycmF5cyhkYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlUYWJIZWFkZXJzKGRhdGEsIGNvbHVtbnMgYXMgQXJyYXk8QXJyYXk8Q1NWRXhwb3J0Q29sdW1uPGFueT4+Pik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaW5nbGVUYWJIZWFkZXJzKGRhdGEsIGNvbHVtbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtdWx0aVRhYkhlYWRlcnMoZGF0YTogYW55W10sIGNvbHVtbnM6IEFycmF5PEFycmF5PENTVkV4cG9ydENvbHVtbjxhbnk+Pj4pOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGRhdGFXaXRoSGVhZGVyczogYW55W10gPSBbXTtcbiAgICAgICAgZGF0YS5mb3JFYWNoKChhcnI6IGFueVtdLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYXJyWzBdKTtcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1trZXldID0gY29sdW1uc1tpbmRleF1bK2tleV0uaGVhZGVyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBjbG9uZWREYXRhID0gZGVlcENsb25lKGFycik7XG4gICAgICAgICAgICBjbG9uZWREYXRhLnVuc2hpZnQoaGVhZGVycyk7XG4gICAgICAgICAgICBkYXRhV2l0aEhlYWRlcnMucHVzaChjbG9uZWREYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkYXRhV2l0aEhlYWRlcnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaW5nbGVUYWJIZWFkZXJzKGRhdGE6IGFueVtdLCBjb2x1bW5zOiBhbnkpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGRhdGFbMF0pO1xuXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaGVhZGVyc1trZXldID0gY29sdW1uc1tpbmRleF0uaGVhZGVyO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjbG9uZWREYXRhID0gZGVlcENsb25lKGRhdGEpO1xuICAgICAgICBjbG9uZWREYXRhLnVuc2hpZnQoaGVhZGVycyk7XG4gICAgICAgIHJldHVybiBjbG9uZWREYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhwb3J0KGRhdGE6IGFueVtdLCBmaWxlbmFtZTogc3RyaW5nLCB0YWJzPzogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgc2hlZXROYW1lLFxuICAgICAgICAgICAgZmlsZU5hbWVcbiAgICAgICAgfSA9IHRoaXMuZ2V0RmlsZU5hbWUoZmlsZW5hbWUpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzQXJyYXlPZkFycmF5cyhkYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlUYWJFeHBvcnQoZGF0YSwgZmlsZU5hbWUsIHRhYnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2luZ2xlVGFiRXhwb3J0KGRhdGEsIHNoZWV0TmFtZSwgZmlsZU5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtdWx0aVRhYkV4cG9ydChkYXRhOiBhbnlbXSwgZmlsZW5hbWU6IHN0cmluZywgdGFicz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0gZGF0YS5yZWR1Y2UoKHJlc3VsdCwgY3VyciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICgnU2hlZXRzJyBpbiByZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbJ1NoZWV0cyddID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHRbJ1NoZWV0cyddLFxuICAgICAgICAgICAgICAgICAgICBbdGFicyFbaW5kZXhdXTogWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGN1cnIsIHtza2lwSGVhZGVyOiB0cnVlfSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbJ1NoZWV0cyddID0ge1t0YWJzIVtpbmRleF1dOiBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoY3Vyciwge3NraXBIZWFkZXI6IHRydWV9KX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJ1NoZWV0TmFtZXMnIGluIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFsnU2hlZXROYW1lcyddID0gWy4uLnJlc3VsdFsnU2hlZXROYW1lcyddLCB0YWJzIVtpbmRleF1dO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbJ1NoZWV0TmFtZXMnXSA9IFt0YWJzIVtpbmRleF1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgICAgICBYTFNYLndyaXRlRmlsZSh3b3JrYm9vaywgZmlsZW5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2luZ2xlVGFiRXhwb3J0KGRhdGE6IGFueVtdLCBzaGVldE5hbWU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB3b3Jrc2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoZGF0YSwge3NraXBIZWFkZXI6IHRydWV9KTtcbiAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod29ya2Jvb2ssIHdvcmtzaGVldCwgc2hlZXROYW1lKTtcbiAgICAgICAgWExTWC53cml0ZUZpbGUod29ya2Jvb2ssIGZpbGVuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbGVOYW1lKHNoZWV0TmFtZTogc3RyaW5nKTogeyBzaGVldE5hbWU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHtzaGVldE5hbWV9Lnhsc3hgO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hlZXROYW1lLFxuICAgICAgICAgICAgZmlsZU5hbWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBcnJheU9mQXJyYXlzKGFycmF5OiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYXJyYXkuZXZlcnkoKGl0ZW0pID0+IEFycmF5LmlzQXJyYXkoaXRlbSkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWV4Y2VsLWV4cG9ydC9zcmMvbGliL2V4Y2VsLmV4cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOztBQUk3QixNQUFNLE9BQU8sa0JBQWtCO0lBS3BCLGFBQWEsQ0FBQyxVQUFpQyxFQUFFLFFBQWdCLEVBQ25ELE9BRUUsRUFBRSxJQUFlO1FBQ3BDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQWtCLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ25EO1NBQ0o7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQTJCLEVBQUUsT0FFakQ7UUFDRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQWtCLEVBQzFDLE9BQTRELENBQUMsQ0FBQztTQUNyRTthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQXlDLENBQUMsQ0FBQztTQUNqRjtJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBZ0IsRUFBRSxPQUV4QztRQUNFLE1BQU0sZUFBZSxHQUFlLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBYSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzFDLE1BQU0sT0FBTyxHQUE4QixFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzlDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUIsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFjLEVBQUUsT0FBdUM7UUFDNUUsTUFBTSxPQUFPLEdBQThCLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBSU8sTUFBTSxDQUFDLElBQTJCLEVBQUUsUUFBZ0IsRUFBRSxJQUFlO1FBQ3pFLE1BQU0sRUFDRixTQUFTLEVBQ1QsUUFBUSxFQUNYLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQWtCLEVBQUUsUUFBUSxFQUFFLElBQUssQ0FBQyxDQUFDO1NBQ25FO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUMxRDtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBZ0IsRUFBRSxRQUFnQixFQUFFLElBQWM7UUFDckUsTUFBTSxRQUFRLEdBQWtCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2hFLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRTtnQkFDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHO29CQUNmLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztvQkFDbkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7aUJBQ3BFLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUM7YUFDMUY7WUFDRCxJQUFJLFlBQVksSUFBSSxNQUFNLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEVBQW1CLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQWMsRUFBRSxTQUFpQixFQUFFLFFBQWdCO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxXQUFXLENBQUMsU0FBaUI7UUFDakMsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLE9BQU8sQ0FBQztRQUNyQyxPQUFPO1lBQ0gsU0FBUztZQUNULFFBQVE7U0FDWCxDQUFDO0lBQ04sQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUE0QjtRQUMvQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzsrR0FoSFEsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2RlZXBDbG9uZX0gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5pbXBvcnQge0NTVkV4cG9ydENvbHVtbn0gZnJvbSAnLi9leGNlbC5maWxlLmV4cG9ydC5kaXJlY3RpdmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXhjZWxFeHBvcnRTZXJ2aWNlIHtcblxuICAgIHB1YmxpYyBleHBvcnRBc0V4Y2VsKGV4cG9ydERhdGE6IG9iamVjdFtdLCBmaWxlbmFtZTogc3RyaW5nLCBjb2x1bW5zOiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4pOiB2b2lkO1xuICAgIHB1YmxpYyBleHBvcnRBc0V4Y2VsKGV4cG9ydERhdGE6IG9iamVjdFtdW10sIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PiB9PiwgdGFiczogc3RyaW5nW10pOiB2b2lkO1xuICAgIHB1YmxpYyBleHBvcnRBc0V4Y2VsKGV4cG9ydERhdGE6IG9iamVjdFtdIHwgb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4gfCBBcnJheTx7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgfT4sIHRhYnM/OiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAoZXhwb3J0RGF0YSAmJiBleHBvcnREYXRhLmxlbmd0aCAmJiBjb2x1bW5zKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5jcmVhdGVIZWFkZXJzKGV4cG9ydERhdGEsIGNvbHVtbnMpO1xuICAgICAgICAgICAgaWYgKHRhYnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0KGRhdGEsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnQoZGF0YSBhcyBvYmplY3RbXVtdLCBmaWxlbmFtZSwgdGFicyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhlYWRlcnMoZGF0YTogb2JqZWN0W10gfCBvYmplY3RbXVtdLCBjb2x1bW5zOiBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4gfCBBcnJheTx7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+XG4gICAgfT4pOiBvYmplY3RbXSB8IG9iamVjdFtdW10ge1xuICAgICAgICBpZiAodGhpcy5pc0FycmF5T2ZBcnJheXMoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpVGFiSGVhZGVycyhkYXRhIGFzIG9iamVjdFtdW10sXG4gICAgICAgICAgICAgICAgY29sdW1ucyBhcyBBcnJheTx7IFtrZXk6IHN0cmluZ106IENTVkV4cG9ydENvbHVtbjxvYmplY3Q+IH0+KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRhYkhlYWRlcnMoZGF0YSwgY29sdW1ucyBhcyBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtdWx0aVRhYkhlYWRlcnMoZGF0YTogb2JqZWN0W11bXSwgY29sdW1uczogQXJyYXk8e1xuICAgICAgICBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PlxuICAgIH0+KTogb2JqZWN0W11bXSB7XG4gICAgICAgIGNvbnN0IGRhdGFXaXRoSGVhZGVyczogb2JqZWN0W11bXSA9IFtdO1xuICAgICAgICBkYXRhLmZvckVhY2goKGFycjogb2JqZWN0W10sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhhcnJbMF0pO1xuICAgICAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzW2tleV0gPSBjb2x1bW5zW2luZGV4XVtrZXldLmhlYWRlcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgY2xvbmVkRGF0YSA9IGRlZXBDbG9uZShhcnIpO1xuICAgICAgICAgICAgY2xvbmVkRGF0YS51bnNoaWZ0KGhlYWRlcnMpO1xuICAgICAgICAgICAgZGF0YVdpdGhIZWFkZXJzLnB1c2goY2xvbmVkRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZGF0YVdpdGhIZWFkZXJzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2luZ2xlVGFiSGVhZGVycyhkYXRhOiBvYmplY3RbXSwgY29sdW1uczogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+KTogb2JqZWN0W10ge1xuICAgICAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhkYXRhWzBdKTtcblxuICAgICAgICBrZXlzLmZvckVhY2goKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IGNvbHVtbnNbaW5kZXhdLmhlYWRlcjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY2xvbmVkRGF0YSA9IGRlZXBDbG9uZShkYXRhKTtcbiAgICAgICAgY2xvbmVkRGF0YS51bnNoaWZ0KGhlYWRlcnMpO1xuICAgICAgICByZXR1cm4gY2xvbmVkRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4cG9ydChkYXRhOiBvYmplY3RbXSwgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgcHJpdmF0ZSBleHBvcnQoZGF0YTogb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZywgdGFiczogc3RyaW5nW10pOiB2b2lkO1xuICAgIHByaXZhdGUgZXhwb3J0KGRhdGE6IG9iamVjdFtdIHwgb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZywgdGFicz86IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHNoZWV0TmFtZSxcbiAgICAgICAgICAgIGZpbGVOYW1lXG4gICAgICAgIH0gPSB0aGlzLmdldEZpbGVOYW1lKGZpbGVuYW1lKTtcblxuICAgICAgICBpZiAodGhpcy5pc0FycmF5T2ZBcnJheXMoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpVGFiRXhwb3J0KGRhdGEgYXMgb2JqZWN0W11bXSwgZmlsZU5hbWUsIHRhYnMhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRhYkV4cG9ydChkYXRhLCBzaGVldE5hbWUsIGZpbGVOYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbXVsdGlUYWJFeHBvcnQoZGF0YTogb2JqZWN0W11bXSwgZmlsZW5hbWU6IHN0cmluZywgdGFiczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSBkYXRhLnJlZHVjZSgocmVzdWx0LCBjdXJyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCdTaGVldHMnIGluIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFsnU2hlZXRzJ10gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdFsnU2hlZXRzJ10sXG4gICAgICAgICAgICAgICAgICAgIFt0YWJzW2luZGV4XV06IFhMU1gudXRpbHMuanNvbl90b19zaGVldChjdXJyLCB7c2tpcEhlYWRlcjogdHJ1ZX0pXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0WydTaGVldHMnXSA9IHtbdGFic1tpbmRleF1dOiBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoY3Vyciwge3NraXBIZWFkZXI6IHRydWV9KX07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJ1NoZWV0TmFtZXMnIGluIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFsnU2hlZXROYW1lcyddID0gWy4uLnJlc3VsdFsnU2hlZXROYW1lcyddLCB0YWJzW2luZGV4XV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdFsnU2hlZXROYW1lcyddID0gW3RhYnNbaW5kZXhdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9IGFzIFhMU1guV29ya0Jvb2spO1xuICAgICAgICBYTFNYLndyaXRlRmlsZSh3b3JrYm9vaywgZmlsZW5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2luZ2xlVGFiRXhwb3J0KGRhdGE6IG9iamVjdFtdLCBzaGVldE5hbWU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB3b3Jrc2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoZGF0YSwge3NraXBIZWFkZXI6IHRydWV9KTtcbiAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod29ya2Jvb2ssIHdvcmtzaGVldCwgc2hlZXROYW1lKTtcbiAgICAgICAgWExTWC53cml0ZUZpbGUod29ya2Jvb2ssIGZpbGVuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbGVOYW1lKHNoZWV0TmFtZTogc3RyaW5nKTogeyBzaGVldE5hbWU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHtzaGVldE5hbWV9Lnhsc3hgO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hlZXROYW1lLFxuICAgICAgICAgICAgZmlsZU5hbWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBcnJheU9mQXJyYXlzKGFycmF5OiBvYmplY3RbXSB8IG9iamVjdFtdW10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGFycmF5LmV2ZXJ5KChpdGVtKSA9PiBBcnJheS5pc0FycmF5KGl0ZW0pKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -39,7 +39,16 @@ export class ExcelFileExportDirective extends BaseComponent {
|
|
|
39
39
|
this.logger.error(new Error('Wrong data structure provided!'));
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
|
-
|
|
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
|
+
}
|
|
43
52
|
}
|
|
44
53
|
}
|
|
45
54
|
ExcelFileExportDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ExcelFileExportDirective, deps: [{ token: i0.ElementRef }, { token: i1.ExcelExportService }, { token: i2.Logger }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -68,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
|
68
77
|
}], disabled: [{
|
|
69
78
|
type: Input
|
|
70
79
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuZmlsZS5leHBvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1leGNlbC1leHBvcnQvc3JjL2xpYi9leGNlbC5maWxlLmV4cG9ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBZ0J2RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQXNCdkQsWUFBb0MsVUFBc0IsRUFDdEIsa0JBQXNDLEVBQ3RDLE1BQWM7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFId0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWM0MsYUFBUSxHQUFHLE1BQU0sQ0FBQztJQVl6QixDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELFFBQVEsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzFCLEtBQUssU0FBUztnQkFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDekIsS0FBSyxRQUFRO2dCQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7U0FDbkc7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO1lBQzdELE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEYsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7WUFDL0QsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7WUFDdEQsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRTtZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFDMUQsSUFBSSxDQUFDLE9BQXlDLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUN4RSxJQUFJLENBQUMsT0FBNEQsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckY7SUFDTCxDQUFDOztxSEEzRVEsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFQcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQU07d0JBQ04sMEJBQTBCLEVBQUUsTUFBTTt3QkFDbEMsU0FBUyxFQUFtQixVQUFVO3FCQUN6QztpQkFDSjt1SkFTVSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsMEJBQTBCO2dCQUkxQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUlsQixRQUFRO3NCQURkLEtBQUs7dUJBQUMsMkJBQTJCO2dCQUkzQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUl2QixRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtMb2dnZXIsIFZhbHVlR2V0dGVyfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtFeGNlbEV4cG9ydFNlcnZpY2V9IGZyb20gJy4vZXhjZWwuZXhwb3J0LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENTVkV4cG9ydENvbHVtbjxUPiB7XG4gICAgZ2V0OiBWYWx1ZUdldHRlcjxUPjtcbiAgICBoZWFkZXI6IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmlzay14bHN4LWV4cG9ydF0nLFxuICAgIGhvc3QgICAgOiB7XG4gICAgICAgICdbY2xhc3Mucmlzay14bHN4LWV4cG9ydF0nOiAndHJ1ZScsXG4gICAgICAgICcoY2xpY2spJyAgICAgICAgICAgICAgICAgOiAnZXhwb3J0KCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBFeGNlbEZpbGVFeHBvcnREaXJlY3RpdmUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqICdyaXNrLXhsc3gtZXhwb3J0LWNvbHVtbnMnIGNhbiBiZSBwcm92aWRlZCBhcyBhcnJheSBPUiBhcnJheSBvZiBhcnJheXMsXG4gICAgICogV2hlbiBwcm92aWRlZCBhcyBhcnJheSBvZiBhcnJheXMgdGhlbiAncmlzay14bHN4LWV4cG9ydCcgc2hvdWxkIGJlIHByb3ZpZGVkIGFzIGFycmF5IG9mIGFycmF5cyBhcyB3ZWxsLFxuICAgICAqIFRoYXQgbWVhbnMgdGhhdCBtdWx0aXBsZSB0YWJzIGFyZSB1c2VkLCB0YWIgbmFtZXMgYXJlIHByb3ZpZGVkIGluICdyaXNrLXhsc3gtZXhwb3J0LXRhYnMnIGFzIGFycmF5IG9mIHN0cmluZ3MsXG4gICAgICovXG4gICAgQElucHV0KCdyaXNrLXhsc3gtZXhwb3J0LWNvbHVtbnMnKVxuICAgIHB1YmxpYyBjb2x1bW5zPzogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPG9iamVjdD4+IHwgQXJyYXk8eyBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PiB9PjtcblxuICAgIEBJbnB1dCgncmlzay14bHN4LWV4cG9ydCcpXG4gICAgcHVibGljIGRhdGE/OiBvYmplY3RbXSB8IG9iamVjdFtdW107XG5cbiAgICBASW5wdXQoJ3Jpc2steGxzeC1leHBvcnQtZmlsZW5hbWUnKVxuICAgIHB1YmxpYyBmaWxlbmFtZSA9ICdkYXRhJztcblxuICAgIEBJbnB1dCgncmlzay14bHN4LWV4cG9ydC10YWJzJylcbiAgICBwdWJsaWMgdGFicz86IHN0cmluZ1tdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBleGNlbEV4cG9ydFNlcnZpY2U6IEV4Y2VsRXhwb3J0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZC50b0xvd2VyQ2FzZSgpID09PSAnZGlzYWJsZWQnIHx8IHRoaXMuZGlzYWJsZWQudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBvcnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihuZXcgRXJyb3IoJ05vIGRhdGEgcHJvdmlkZWQgZm9yIGV4cG9ydCEnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHRoaXMudGFicyAmJiB0aGlzLnRhYnMubGVuZ3RoICYmICF0aGlzLmV4Y2VsRXhwb3J0U2VydmljZS5pc0FycmF5T2ZBcnJheXModGhpcy5kYXRhKSkgfHxcbiAgICAgICAgICAgICghdGhpcy50YWJzICYmIHRoaXMuZXhjZWxFeHBvcnRTZXJ2aWNlLmlzQXJyYXlPZkFycmF5cyh0aGlzLmRhdGEpKSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobmV3IEVycm9yKCdXcm9uZyBkYXRhIHN0cnVjdHVyZSBwcm92aWRlZCEnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuY29sdW1ucykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobmV3IEVycm9yKCdDb2x1bW5zIG5vdCBwcm92aWRlZCEnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YWJzID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZXhjZWxFeHBvcnRTZXJ2aWNlLmV4cG9ydEFzRXhjZWwodGhpcy5kYXRhLCB0aGlzLmZpbGVuYW1lLFxuICAgICAgICAgICAgICAgIHRoaXMuY29sdW1ucyBhcyBBcnJheTxDU1ZFeHBvcnRDb2x1bW48b2JqZWN0Pj4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5leGNlbEV4cG9ydFNlcnZpY2UuZXhwb3J0QXNFeGNlbCh0aGlzLmRhdGEgYXMgb2JqZWN0W11bXSwgdGhpcy5maWxlbmFtZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnMgYXMgQXJyYXk8eyBba2V5OiBzdHJpbmddOiBDU1ZFeHBvcnRDb2x1bW48b2JqZWN0PiB9PiwgdGhpcy50YWJzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -7,10 +7,15 @@ import * as XLSX from 'xlsx';
|
|
|
7
7
|
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
8
8
|
|
|
9
9
|
class ExcelExportService {
|
|
10
|
-
exportAsExcel(exportData, filename,
|
|
10
|
+
exportAsExcel(exportData, filename, columns, tabs) {
|
|
11
11
|
if (exportData && exportData.length && columns) {
|
|
12
12
|
const data = this.createHeaders(exportData, columns);
|
|
13
|
-
|
|
13
|
+
if (tabs == null) {
|
|
14
|
+
this.export(data, filename);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.export(data, filename, tabs);
|
|
18
|
+
}
|
|
14
19
|
}
|
|
15
20
|
}
|
|
16
21
|
createHeaders(data, columns) {
|
|
@@ -27,7 +32,7 @@ class ExcelExportService {
|
|
|
27
32
|
const headers = {};
|
|
28
33
|
const keys = Object.keys(arr[0]);
|
|
29
34
|
keys.forEach((key) => {
|
|
30
|
-
headers[key] = columns[index][
|
|
35
|
+
headers[key] = columns[index][key].header;
|
|
31
36
|
});
|
|
32
37
|
const clonedData = deepClone(arr);
|
|
33
38
|
clonedData.unshift(headers);
|
|
@@ -131,7 +136,16 @@ class ExcelFileExportDirective extends BaseComponent {
|
|
|
131
136
|
this.logger.error(new Error('Wrong data structure provided!'));
|
|
132
137
|
return;
|
|
133
138
|
}
|
|
134
|
-
|
|
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
|
+
}
|
|
135
149
|
}
|
|
136
150
|
}
|
|
137
151
|
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 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbg-riskit-angular-excel-export.mjs","sources":["../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.export.service.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.file.export.directive.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.export.module.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/dbg-riskit-angular-excel-export.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {deepClone} from '@dbg-riskit/common';\nimport * as XLSX from 'xlsx';\nimport {CSVExportColumn} from './excel.file.export.directive';\n\n@Injectable()\nexport class ExcelExportService {\n\n public exportAsExcel(exportData: any[], filename: string, tabs?: string[],\n columns?: Array<CSVExportColumn<any>> | Array<Array<CSVExportColumn<any>>>) {\n if (exportData && exportData.length && columns) {\n\n const data = this.createHeaders(exportData, columns);\n\n this.export(data, filename, tabs);\n\n }\n }\n\n private createHeaders(data: any[],\n columns: Array<CSVExportColumn<any>> | Array<Array<CSVExportColumn<any>>>): any[] {\n if (this.isArrayOfArrays(data)) {\n return this.multiTabHeaders(data, columns as Array<Array<CSVExportColumn<any>>>);\n } else {\n return this.singleTabHeaders(data, columns);\n }\n }\n\n private multiTabHeaders(data: any[], columns: Array<Array<CSVExportColumn<any>>>): any[] {\n const dataWithHeaders: any[] = [];\n data.forEach((arr: any[], 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: any[], columns: any): any[] {\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: any[], 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, fileName, tabs);\n } else {\n return this.singleTabExport(data, sheetName, fileName);\n }\n }\n\n private multiTabExport(data: any[], 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 }, {});\n XLSX.writeFile(workbook, filename);\n }\n\n private singleTabExport(data: any[], 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: any[]): 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<any>> | Array<Array<CSVExportColumn<any>>>;\n\n @Input('risk-xlsx-export')\n public data?: any[];\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 this.excelExportService.exportAsExcel(this.data, this.filename, this.tabs, this.columns);\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":"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"}
|
|
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":"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"}
|
|
@@ -7,10 +7,15 @@ import * as XLSX from 'xlsx';
|
|
|
7
7
|
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
8
8
|
|
|
9
9
|
class ExcelExportService {
|
|
10
|
-
exportAsExcel(exportData, filename,
|
|
10
|
+
exportAsExcel(exportData, filename, columns, tabs) {
|
|
11
11
|
if (exportData && exportData.length && columns) {
|
|
12
12
|
const data = this.createHeaders(exportData, columns);
|
|
13
|
-
|
|
13
|
+
if (tabs == null) {
|
|
14
|
+
this.export(data, filename);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.export(data, filename, tabs);
|
|
18
|
+
}
|
|
14
19
|
}
|
|
15
20
|
}
|
|
16
21
|
createHeaders(data, columns) {
|
|
@@ -27,7 +32,7 @@ class ExcelExportService {
|
|
|
27
32
|
const headers = {};
|
|
28
33
|
const keys = Object.keys(arr[0]);
|
|
29
34
|
keys.forEach((key) => {
|
|
30
|
-
headers[key] = columns[index][
|
|
35
|
+
headers[key] = columns[index][key].header;
|
|
31
36
|
});
|
|
32
37
|
const clonedData = deepClone(arr);
|
|
33
38
|
clonedData.unshift(headers);
|
|
@@ -134,7 +139,16 @@ class ExcelFileExportDirective extends BaseComponent {
|
|
|
134
139
|
this.logger.error(new Error('Wrong data structure provided!'));
|
|
135
140
|
return;
|
|
136
141
|
}
|
|
137
|
-
|
|
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
|
+
}
|
|
138
152
|
}
|
|
139
153
|
}
|
|
140
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 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbg-riskit-angular-excel-export.mjs","sources":["../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.export.service.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.file.export.directive.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/lib/excel.export.module.ts","../../../../pkg/dbg-riskit/angular-excel-export/src/dbg-riskit-angular-excel-export.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {deepClone} from '@dbg-riskit/common';\nimport * as XLSX from 'xlsx';\nimport {CSVExportColumn} from './excel.file.export.directive';\n\n@Injectable()\nexport class ExcelExportService {\n\n public exportAsExcel(exportData: any[], filename: string, tabs?: string[],\n columns?: Array<CSVExportColumn<any>> | Array<Array<CSVExportColumn<any>>>) {\n if (exportData && exportData.length && columns) {\n\n const data = this.createHeaders(exportData, columns);\n\n this.export(data, filename, tabs);\n\n }\n }\n\n private createHeaders(data: any[],\n columns: Array<CSVExportColumn<any>> | Array<Array<CSVExportColumn<any>>>): any[] {\n if (this.isArrayOfArrays(data)) {\n return this.multiTabHeaders(data, columns as Array<Array<CSVExportColumn<any>>>);\n } else {\n return this.singleTabHeaders(data, columns);\n }\n }\n\n private multiTabHeaders(data: any[], columns: Array<Array<CSVExportColumn<any>>>): any[] {\n const dataWithHeaders: any[] = [];\n data.forEach((arr: any[], 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: any[], columns: any): any[] {\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: any[], 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, fileName, tabs);\n } else {\n return this.singleTabExport(data, sheetName, fileName);\n }\n }\n\n private multiTabExport(data: any[], 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 }, {});\n XLSX.writeFile(workbook, filename);\n }\n\n private singleTabExport(data: any[], 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: any[]): 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<any>> | Array<Array<CSVExportColumn<any>>>;\n\n @Input('risk-xlsx-export')\n public data?: any[];\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 this.excelExportService.exportAsExcel(this.data, this.filename, this.tabs, this.columns);\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":"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"}
|
|
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":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { CSVExportColumn } from './excel.file.export.directive';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class ExcelExportService {
|
|
4
|
-
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;
|
|
5
8
|
private createHeaders;
|
|
6
9
|
private multiTabHeaders;
|
|
7
10
|
private singleTabHeaders;
|
|
@@ -9,7 +12,7 @@ export declare class ExcelExportService {
|
|
|
9
12
|
private multiTabExport;
|
|
10
13
|
private singleTabExport;
|
|
11
14
|
private getFileName;
|
|
12
|
-
isArrayOfArrays(array:
|
|
15
|
+
isArrayOfArrays(array: object[] | object[][]): boolean;
|
|
13
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<ExcelExportService, never>;
|
|
14
17
|
static ɵprov: i0.ɵɵInjectableDeclaration<ExcelExportService>;
|
|
15
18
|
}
|
|
@@ -16,8 +16,10 @@ export declare class ExcelFileExportDirective extends BaseComponent {
|
|
|
16
16
|
* When provided as array of arrays then 'risk-xlsx-export' should be provided as array of arrays as well,
|
|
17
17
|
* That means that multiple tabs are used, tab names are provided in 'risk-xlsx-export-tabs' as array of strings,
|
|
18
18
|
*/
|
|
19
|
-
columns?: Array<CSVExportColumn<
|
|
20
|
-
|
|
19
|
+
columns?: Array<CSVExportColumn<object>> | Array<{
|
|
20
|
+
[key: string]: CSVExportColumn<object>;
|
|
21
|
+
}>;
|
|
22
|
+
data?: object[] | object[][];
|
|
21
23
|
filename: string;
|
|
22
24
|
tabs?: string[];
|
|
23
25
|
disabled?: boolean | string;
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbg-riskit/angular-excel-export",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9999.9999.9999-rc.21396",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/core": "^13.0.2",
|
|
7
7
|
"@angular/platform-browser": "^13.0.2",
|
|
8
8
|
"@angular/common": "^13.0.2",
|
|
9
|
-
"@dbg-riskit/common": "~
|
|
10
|
-
"@dbg-riskit/angular-common": "~
|
|
11
|
-
"@dbg-riskit/angular-logging": "~
|
|
9
|
+
"@dbg-riskit/common": "~9999.9999.9999-rc.21396",
|
|
10
|
+
"@dbg-riskit/angular-common": "~9999.9999.9999-rc.21396",
|
|
11
|
+
"@dbg-riskit/angular-logging": "~9999.9999.9999-rc.21396",
|
|
12
12
|
"xlsx": "^0.17.4"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|