@dbg-riskit/angular-excel-export 9999.9999.9999-rc.445048 → 9999.9999.9999-rc.4579154

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