@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 CHANGED
@@ -1,13 +1,12 @@
1
- ![CI](https://github.deutsche-boerse.de/dev/risk-angular-common/workflows/CI/badge.svg?event=push)
2
- ![lint-bash](https://github.deutsche-boerse.de/dev/risk-angular-common/workflows/lint-bash/badge.svg?event=push)
3
- ![lint-docker](https://github.deutsche-boerse.de/dev/risk-angular-common/workflows/lint-docker/badge.svg?event=push)
1
+ ![CI](https://github.deutsche-boerse.de/RiskIT/risk-angular-common/workflows/CI/badge.svg?event=push)
2
+ ![lint-bash](https://github.deutsche-boerse.de/RiskIT/risk-angular-common/workflows/lint-bash/badge.svg?event=push)
3
+ ![lint-docker](https://github.deutsche-boerse.de/RiskIT/risk-angular-common/workflows/lint-docker/badge.svg?event=push)
4
4
 
5
5
  # risk-angular-common (Angular 13 and @angular/material based library for RiskIT applications)
6
6
 
7
7
  Used by:
8
- - [dev/DAVe-UI](https://github.deutsche-boerse.de/dev/DAVe-UI)
9
- - [dev/DAVe-MarginEstimator-UI](https://github.deutsche-boerse.de/dev/DAVe-MarginEstimator-UI)
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.63199",
3
+ "version": "9999.9999.9999-rc.6692537",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
- "@angular/core": "^13.2.6",
7
- "@angular/platform-browser": "^13.2.6",
8
- "@angular/common": "^13.2.6",
9
- "@dbg-riskit/common": "~9999.9999.9999-rc.63199",
10
- "@dbg-riskit/angular-common": "~9999.9999.9999-rc.63199",
11
- "@dbg-riskit/angular-logging": "~9999.9999.9999-rc.63199",
12
- "xlsx": "^0.18.4"
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.3.1"
15
+ "tslib": "^2.8.1"
16
16
  },
17
- "module": "fesm2015/dbg-riskit-angular-excel-export.mjs",
18
- "es2020": "fesm2020/dbg-riskit-angular-excel-export.mjs",
19
- "esm2020": "esm2020/dbg-riskit-angular-excel-export.mjs",
20
- "fesm2020": "fesm2020/dbg-riskit-angular-excel-export.mjs",
21
- "fesm2015": "fesm2015/dbg-riskit-angular-excel-export.mjs",
22
- "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": "./dbg-riskit-angular-excel-export.d.ts",
29
- "esm2020": "./esm2020/dbg-riskit-angular-excel-export.mjs",
30
- "es2020": "./fesm2020/dbg-riskit-angular-excel-export.mjs",
31
- "es2015": "./fesm2015/dbg-riskit-angular-excel-export.mjs",
32
- "node": "./fesm2015/dbg-riskit-angular-excel-export.mjs",
33
- "default": "./fesm2020/dbg-riskit-angular-excel-export.mjs"
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
- /// <amd-module name="@dbg-riskit/angular-excel-export" />
5
- export * from './public_api';
@@ -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==
@@ -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
@@ -1,3 +0,0 @@
1
- export * from './lib/excel.export.module';
2
- export * from './lib/excel.export.service';
3
- export * from './lib/excel.file.export.directive';