@sachin9822/reports-lib 0.0.95 → 0.0.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.mjs +4 -4
- package/esm2020/lib/models/app-config.model.mjs +2 -0
- package/esm2020/lib/reports-lib.module.mjs +26 -13
- package/esm2020/lib/services/config.service.mjs +39 -0
- package/esm2020/lib/services/report.service.mjs +16 -8
- package/esm2020/lib/shared/export.service.mjs +3 -15
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/sachin9822-reports-lib.mjs +77 -35
- package/fesm2015/sachin9822-reports-lib.mjs.map +1 -1
- package/fesm2020/sachin9822-reports-lib.mjs +80 -38
- package/fesm2020/sachin9822-reports-lib.mjs.map +1 -1
- package/lib/assets/config/app-config.frontend.json +37 -0
- package/lib/assets/config/app-config.json +5 -0
- package/lib/assets/config/app-config.release.json +40 -0
- package/lib/models/app-config.model.d.ts +48 -0
- package/lib/reports-lib.module.d.ts +5 -5
- package/lib/services/config.service.d.ts +20 -0
- package/lib/services/report.service.d.ts +6 -5
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/lib/assets/svg-loaders/audio.svg +0 -28
- package/lib/assets/svg-loaders/ball-triangle.svg +0 -46
- package/lib/assets/svg-loaders/bars.svg +0 -52
- package/lib/assets/svg-loaders/circles.svg +0 -20
- package/lib/assets/svg-loaders/grid.svg +0 -56
- package/lib/assets/svg-loaders/hearts.svg +0 -17
- package/lib/assets/svg-loaders/oval.svg +0 -16
- package/lib/assets/svg-loaders/puff.svg +0 -36
- package/lib/assets/svg-loaders/rings.svg +0 -41
- package/lib/assets/svg-loaders/spinning-circles.svg +0 -54
- package/lib/assets/svg-loaders/three-dots.svg +0 -32
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvbW9kZWxzL2FwcC1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUFwcENvbmZpZyB7XHJcbiAgICByZXBvcnRTZXJ2aWNlVXJsOiBzdHJpbmc7XHJcbiAgICBsYW5ndWFnZT86IHN0cmluZztcclxuICAgIHZlcnNpb24/OiBzdHJpbmc7XHJcbiAgICBleGNlcHRpb25VUkxjb25maWc/OiBzdHJpbmc7XHJcbiAgICBhcGlLZXk/OiBzdHJpbmc7XHJcbiAgICByZWFkb25seT86IGFueTtcclxuICAgIGF1dGg/OiB7XHJcbiAgICAgICAgaXNzdWVyPzogc3RyaW5nO1xyXG4gICAgICAgIHJlZGlyZWN0VXJpPzogc3RyaW5nO1xyXG4gICAgICAgIHNpbGVudFJlZnJlc2hSZWRpcmVjdFVyaT86IHN0cmluZyxcclxuICAgICAgICBjbGllbnRJZD86IHN0cmluZztcclxuICAgICAgICBsb2dvdXRVcmw/OiBzdHJpbmc7XHJcbiAgICAgICAgc2NvcGU/OiBzdHJpbmc7XHJcbiAgICAgICAgcmVxdWlyZUh0dHBzPzogYm9vbGVhbjtcclxuICAgICAgICByZXF1ZXN0QWNjZXNzVG9rZW4/OiBib29sZWFuO1xyXG4gICAgICAgIHNob3dEZWJ1Z0luZm9ybWF0aW9uPzogYm9vbGVhbjtcclxuICAgICAgICBvaWRjPzogYm9vbGVhbjtcclxuICAgICAgICB1c2VTaWxlbnRSZWZyZXNoPzogYm9vbGVhbjtcclxuICAgIH07XHJcbiAgICBmb3JtYXR0aW5nPzoge1xyXG4gICAgICAgIHNob3J0RGF0ZT86IHN0cmluZyxcclxuICAgICAgICBsb25nRGF0ZT86IHN0cmluZyxcclxuICAgICAgICB0aW1lPzogc3RyaW5nLFxyXG4gICAgICAgIHRpbWVab25lPzogc3RyaW5nXHJcbiAgICB9O1xyXG4gICAgbG9nZ2luZz86IHtcclxuICAgICAgICBsZXZlbE1pbj86IHN0cmluZztcclxuICAgICAgICBsZXZlbE1heD86IHN0cmluZztcclxuICAgIH07XHJcbiAgICBpZGxlPzoge1xyXG4gICAgICAgIHRpbWVvdXQ/OiBudW1iZXI7XHJcbiAgICAgICAgY291bnRkb3duPzogbnVtYmVyO1xyXG4gICAgfTtcclxuICAgIGFkdmVydFN0b3JhZ2VVcmw/OiBzdHJpbmc7XHJcbiAgICBzY3JpcHR4U2VydmljZVVybD86IHN0cmluZztcclxuICAgIHNjcmlwdHhMaWNlbmNlPzogc3RyaW5nO1xyXG4gICAgc2VsZkhvc3RlZFNlcnZpY2VVcmw/OiBzdHJpbmc7XHJcbiAgICBzZXJ2aWNlVXJsPzogc3RyaW5nO1xyXG4gICAgbG9jYWxDaGVxdWVTZXR0bGVtZW50U3RvY2tUeXBlQ29kZT86IHN0cmluZztcclxuICAgIGxvY2FsQ2FzaFNldHRsZW1lbnRTdG9ja1R5cGVDb2RlPzogc3RyaW5nO1xyXG4gICAgbG9jYWxTZXR0bGVtZW50RGVub21pbmF0aW9uPzogc3RyaW5nO1xyXG4gICAgc3lzQmFzZVJvdW5kT2ZmPzogc3RyaW5nO1xyXG4gICAgc3lzQmFzZVJvdW5kT2ZmVmF0Pzogc3RyaW5nO1xyXG4gICAgc2Vzc2lvblRpbWVvdXRNaW51dGVzPzogc3RyaW5nO1xyXG4gICAgZGlyZWN0VG9BY2NvdW50PzpzdHJpbmc7XHJcbiAgICBjYXNoUGF5b3V0PzpzdHJpbmc7XHJcblxyXG59XHJcbiJdfQ==
|
@@ -1,30 +1,37 @@
|
|
1
|
-
import { NgModule } from '@angular/core';
|
1
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
2
2
|
import { ReportsLibComponent } from './reports-lib.component';
|
3
3
|
import { AccGlDetailsEnquiryReportComponent } from './components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component';
|
4
4
|
import { AgGridModule } from 'ag-grid-angular';
|
5
5
|
import { ReportsLibRoutingModule } from './reports-lib-routing.module';
|
6
|
-
import { OAuthModule } from 'angular-oauth2-oidc';
|
7
|
-
import { NgIdleModule } from '@ng-idle/core';
|
8
6
|
import { CommonModule } from '@angular/common';
|
9
7
|
import { FormsModule } from '@angular/forms';
|
10
8
|
import { RouterModule } from '@angular/router';
|
9
|
+
import { ConfigService } from '../lib/services/config.service';
|
11
10
|
import * as i0 from "@angular/core";
|
12
|
-
|
13
|
-
|
11
|
+
export function initializeApp(config) {
|
12
|
+
return () => config.load('/assets/config/app-config.json').toPromise();
|
13
|
+
}
|
14
14
|
export class ReportsLibModule {
|
15
15
|
}
|
16
16
|
ReportsLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportsLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
17
17
|
ReportsLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ReportsLibModule, declarations: [ReportsLibComponent,
|
18
18
|
AccGlDetailsEnquiryReportComponent], imports: [AgGridModule,
|
19
19
|
ReportsLibRoutingModule,
|
20
|
-
CommonModule,
|
20
|
+
CommonModule,
|
21
|
+
FormsModule,
|
21
22
|
RouterModule], exports: [ReportsLibComponent,
|
22
23
|
AccGlDetailsEnquiryReportComponent] });
|
23
|
-
ReportsLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportsLibModule,
|
24
|
+
ReportsLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportsLibModule, providers: [
|
25
|
+
ConfigService,
|
26
|
+
{
|
27
|
+
provide: APP_INITIALIZER,
|
28
|
+
useFactory: initializeApp,
|
29
|
+
deps: [ConfigService],
|
30
|
+
multi: true
|
31
|
+
}
|
32
|
+
], imports: [AgGridModule,
|
24
33
|
ReportsLibRoutingModule,
|
25
34
|
CommonModule,
|
26
|
-
NgIdleModule.forRoot(),
|
27
|
-
OAuthModule.forRoot(),
|
28
35
|
FormsModule,
|
29
36
|
RouterModule] });
|
30
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportsLibModule, decorators: [{
|
@@ -38,16 +45,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
38
45
|
AgGridModule,
|
39
46
|
ReportsLibRoutingModule,
|
40
47
|
CommonModule,
|
41
|
-
NgIdleModule.forRoot(),
|
42
|
-
OAuthModule.forRoot(),
|
43
48
|
FormsModule,
|
44
49
|
RouterModule
|
45
50
|
],
|
46
|
-
providers: [
|
51
|
+
providers: [
|
52
|
+
ConfigService,
|
53
|
+
{
|
54
|
+
provide: APP_INITIALIZER,
|
55
|
+
useFactory: initializeApp,
|
56
|
+
deps: [ConfigService],
|
57
|
+
multi: true
|
58
|
+
}
|
59
|
+
],
|
47
60
|
exports: [
|
48
61
|
ReportsLibComponent,
|
49
62
|
AccGlDetailsEnquiryReportComponent
|
50
63
|
]
|
51
64
|
}]
|
52
65
|
}] });
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0cy1saWIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9yZXBvcnRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDeEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFL0QsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFxQjtJQUNqRCxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUN6RSxDQUFDO0FBNkJELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkF4QnpCLG1CQUFtQjtRQUNuQixrQ0FBa0MsYUFHbEMsWUFBWTtRQUNaLHVCQUF1QjtRQUN2QixZQUFZO1FBQ1osV0FBVztRQUNYLFlBQVksYUFZWixtQkFBbUI7UUFDbkIsa0NBQWtDOzhHQUd6QixnQkFBZ0IsYUFkaEI7UUFDVCxhQUFhO1FBQ2I7WUFDVSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsYUFBYTtZQUN6QixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDckIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNWLFlBZEMsWUFBWTtRQUNaLHVCQUF1QjtRQUN2QixZQUFZO1FBQ1osV0FBVztRQUNYLFlBQVk7MkZBZ0JILGdCQUFnQjtrQkExQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0NBQWtDO3FCQUNuQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3FCQUNiO29CQUNELFNBQVMsRUFBRTt3QkFDVCxhQUFhO3dCQUNiOzRCQUNVLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsYUFBYTs0QkFDekIsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDOzRCQUNyQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDVjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixrQ0FBa0M7cUJBQ25DO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXBvcnRzTGliQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBvcnRzLWxpYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0L2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IFJlcG9ydHNMaWJSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9yZXBvcnRzLWxpYi1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuIFxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChjb25maWc6IENvbmZpZ1NlcnZpY2UpIHtcclxuICByZXR1cm4gKCkgPT4gY29uZmlnLmxvYWQoJy9hc3NldHMvY29uZmlnL2FwcC1jb25maWcuanNvbicpLnRvUHJvbWlzZSgpO1xyXG59XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFJlcG9ydHNMaWJDb21wb25lbnQsXHJcbiAgICBBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBZ0dyaWRNb2R1bGUsXHJcbiAgICBSZXBvcnRzTGliUm91dGluZ01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENvbmZpZ1NlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVBcHAsXHJcbiAgICAgICAgICAgICAgZGVwczogW0NvbmZpZ1NlcnZpY2VdLFxyXG4gICAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFJlcG9ydHNMaWJDb21wb25lbnQsXHJcbiAgICBBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0c0xpYk1vZHVsZSB7IH1cclxuIl19
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { tap } from 'rxjs/operators';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
4
|
+
import * as _ from 'lodash';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/common/http";
|
7
|
+
export class ConfigService {
|
8
|
+
constructor(http) {
|
9
|
+
this.http = http;
|
10
|
+
}
|
11
|
+
load(url) {
|
12
|
+
return this.http.get(url).pipe(tap((json) => {
|
13
|
+
// Set the config
|
14
|
+
this.config = json;
|
15
|
+
// Create the behavior subject
|
16
|
+
this.onConfigChanged = new BehaviorSubject(this.config);
|
17
|
+
}));
|
18
|
+
}
|
19
|
+
get get() {
|
20
|
+
return this.config;
|
21
|
+
}
|
22
|
+
/**
|
23
|
+
* Set the new config from given object
|
24
|
+
*
|
25
|
+
* @param config
|
26
|
+
*/
|
27
|
+
setConfig(config) {
|
28
|
+
// Merge the config
|
29
|
+
this.config = _.merge({}, this.config, config);
|
30
|
+
// Trigger the event
|
31
|
+
this.onConfigChanged.next(this.config);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
ConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfigService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
35
|
+
ConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfigService });
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConfigService, decorators: [{
|
37
|
+
type: Injectable
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRzLWxpYi9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFHNUIsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDLEdBQVc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM3QyxpQkFBaUI7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFbkIsOEJBQThCO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLE1BQWtCO1FBQ3hCLG1CQUFtQjtRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0Msb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDOzswR0FoQ1EsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSUFwcENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9hcHAtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSAsICBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29uZmlnU2VydmljZSB7XHJcbiAgICBwcml2YXRlIGNvbmZpZzogSUFwcENvbmZpZztcclxuXHJcbiAgICBvbkNvbmZpZ0NoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cclxuXHJcbiAgICBsb2FkKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUodGFwKChqc29uOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8gU2V0IHRoZSBjb25maWdcclxuICAgICAgICAgICAgdGhpcy5jb25maWcgPSBqc29uO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBiZWhhdmlvciBzdWJqZWN0XHJcbiAgICAgICAgICAgIHRoaXMub25Db25maWdDaGFuZ2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmNvbmZpZyk7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBnZXQoKTogSUFwcENvbmZpZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBuZXcgY29uZmlnIGZyb20gZ2l2ZW4gb2JqZWN0XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbmZpZ1xyXG4gICAgICovXHJcbiAgICBzZXRDb25maWcoY29uZmlnOiBJQXBwQ29uZmlnKTogdm9pZCB7XHJcbiAgICAgICAgLy8gTWVyZ2UgdGhlIGNvbmZpZ1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0gXy5tZXJnZSh7fSwgdGhpcy5jb25maWcsIGNvbmZpZyk7XHJcblxyXG4gICAgICAgIC8vIFRyaWdnZXIgdGhlIGV2ZW50XHJcbiAgICAgICAgdGhpcy5vbkNvbmZpZ0NoYW5nZWQubmV4dCh0aGlzLmNvbmZpZyk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
@@ -2,16 +2,24 @@ import { Injectable } from '@angular/core';
|
|
2
2
|
import { throwError } from 'rxjs';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
import * as i1 from "@angular/common/http";
|
5
|
+
import * as i2 from "./config.service";
|
5
6
|
export class ReportService {
|
6
|
-
constructor(http, errorHandler, injector) {
|
7
|
+
// constructor(private http: HttpClient, private errorHandler: ErrorHandler, private injector: Injector) {
|
8
|
+
// this.serviceUrl = "https://4xplus-local.xpressmoney.tech:8752";
|
9
|
+
// }
|
10
|
+
constructor(http, config) {
|
7
11
|
this.http = http;
|
8
|
-
this.
|
9
|
-
this.
|
10
|
-
this.
|
12
|
+
this.config = config;
|
13
|
+
this.reportUrl = '/api/v1/Report';
|
14
|
+
this.systemReportUrl = '/api/v1/CompanyConfiguration/SystemReports';
|
15
|
+
if (!this.config.get) {
|
16
|
+
throw new Error('ConfigService is not initialized. Ensure APP_INITIALIZER ran before using ReportService.');
|
17
|
+
}
|
18
|
+
this.reportServiceUrl = this.config.get.reportServiceUrl;
|
11
19
|
}
|
12
20
|
getAccGLDetailsReport(formattedDate, dateType, sysCompanyCode, sysUserId, companyName) {
|
13
21
|
if (formattedDate) {
|
14
|
-
const apiPath = `${this.
|
22
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/AccGlDetailsEnquiryReport/GetAccGLFDetailsEnquiryReport/${formattedDate}/${dateType}/${sysCompanyCode}/${sysUserId}/${companyName}`;
|
15
23
|
return this.http.get(apiPath);
|
16
24
|
}
|
17
25
|
else {
|
@@ -31,12 +39,12 @@ export class ReportService {
|
|
31
39
|
}
|
32
40
|
}
|
33
41
|
}
|
34
|
-
ReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportService, deps: [{ token: i1.HttpClient }, { token:
|
42
|
+
ReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
35
43
|
ReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportService, providedIn: 'root' });
|
36
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportService, decorators: [{
|
37
45
|
type: Injectable,
|
38
46
|
args: [{
|
39
47
|
providedIn: 'root'
|
40
48
|
}]
|
41
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type:
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
49
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigService }]; } });
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRzLWxpYi9zcmMvbGliL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0IsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRW5FLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFPOUMsTUFBTSxPQUFPLGFBQWE7SUFReEIsMEdBQTBHO0lBQzFHLG9FQUFvRTtJQUNwRSxJQUFJO0lBRUosWUFBb0IsSUFBZ0IsRUFBVSxNQUFxQjtRQUEvQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVIzRCxjQUFTLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0Isb0JBQWUsR0FBRyw0Q0FBNEMsQ0FBQztRQVFyRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO1NBQzdHO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0lBQzNELENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxhQUFpQyxFQUFFLFFBQWdCLEVBQUUsY0FBc0IsRUFBRSxTQUFpQixFQUFFLFdBQW1CO1FBQzlJLElBQUksYUFBYSxFQUFFO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQiwwRUFBMEUsYUFBYSxJQUFJLFFBQVEsSUFBSSxjQUFjLElBQUksU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzVMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlDLE9BQU8sQ0FBQyxDQUFDO1NBQy9EO2FBQU07WUFFTCxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNELE1BQU0sT0FBTyxHQUFHLDRFQUE0RSxXQUFXLHFCQUFxQixDQUFDLENBQUMsMkNBQTJDO1lBQ3pLLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRU0sNkJBQTZCO1FBQ2xDLElBQUksY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RCxJQUFJLGVBQWUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFaEUsSUFBSSxjQUFjLEVBQUU7WUFDbEIsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0wsT0FBTyxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7OzBHQXhDVSxhQUFhOzhHQUFiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEVycm9ySGFuZGxlciwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9hY2MtZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydC9hY2NnbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0bW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xuXG5cbiAgcHJpdmF0ZSByZXBvcnRTZXJ2aWNlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVwb3J0VXJsID0gJy9hcGkvdjEvUmVwb3J0JztcbiAgcHJpdmF0ZSBzeXN0ZW1SZXBvcnRVcmwgPSAnL2FwaS92MS9Db21wYW55Q29uZmlndXJhdGlvbi9TeXN0ZW1SZXBvcnRzJztcblxuXG4gIC8vIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlciwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgLy8gICB0aGlzLnNlcnZpY2VVcmwgPSBcImh0dHBzOi8vNHhwbHVzLWxvY2FsLnhwcmVzc21vbmV5LnRlY2g6ODc1MlwiO1xuICAvLyB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSkge1xuICAgIGlmICghdGhpcy5jb25maWcuZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbmZpZ1NlcnZpY2UgaXMgbm90IGluaXRpYWxpemVkLiBFbnN1cmUgQVBQX0lOSVRJQUxJWkVSIHJhbiBiZWZvcmUgdXNpbmcgUmVwb3J0U2VydmljZS4nKTtcbiAgICB9XG4gICAgdGhpcy5yZXBvcnRTZXJ2aWNlVXJsID0gdGhpcy5jb25maWcuZ2V0LnJlcG9ydFNlcnZpY2VVcmw7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjR0xEZXRhaWxzUmVwb3J0KGZvcm1hdHRlZERhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgZGF0ZVR5cGU6IHN0cmluZywgc3lzQ29tcGFueUNvZGU6IHN0cmluZywgc3lzVXNlcklkOiBzdHJpbmcsIGNvbXBhbnlOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbD4ge1xuICAgIGlmIChmb3JtYXR0ZWREYXRlKSB7XG4gICAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0FjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnQvR2V0QWNjR0xGRGV0YWlsc0VucXVpcnlSZXBvcnQvJHtmb3JtYXR0ZWREYXRlfS8ke2RhdGVUeXBlfS8ke3N5c0NvbXBhbnlDb2RlfS8ke3N5c1VzZXJJZH0vJHtjb21wYW55TmFtZX1gO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsPihhcGlQYXRoKTtcbiAgICB9IGVsc2Uge1xuXG4gICAgICBjb25zdCBleGFtcGxlRGF0ZSA9IG5ldyBEYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1HQicpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBJbnZhbGlkIERhdGUgRm9ybWF0IVxcbkRhdGUgc2hvdWxkIGJlIGluIGRkL01NL3l5eXkgZm9ybWF0LlxcbkZvciBleGFtcGxlOiAke2V4YW1wbGVEYXRlfSBhcyBkYXkvbW9udGgveWVhci5gOyAvL1xcbk5vdGUgOiBZZWFyIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gOTk5OVxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKG1lc3NhZ2UpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlck5hbWVGcm9tU2Vzc2lvblN0b3JhZ2UoKTogc3RyaW5nIHtcbiAgICBsZXQgZm9zc2lsVXNlck5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdmb3NzaWx1c2VybmFtZScpO1xuICAgIGxldCBlenJlbWl0dXNlcm5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlenJlbWl0dXNlcm5hbWUnKTtcblxuICAgIGlmIChmb3NzaWxVc2VyTmFtZSkge1xuICAgICAgcmV0dXJuIGZvc3NpbFVzZXJOYW1lLnJlcGxhY2UoL15cIiguKilcIiQvLCAnJDEnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGV6cmVtaXR1c2VybmFtZS5yZXBsYWNlKC9eXCIoLiopXCIkLywgJyQxJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -13,7 +13,6 @@ export class ExportService {
|
|
13
13
|
this.logoBase64 = base64;
|
14
14
|
});
|
15
15
|
}
|
16
|
-
// ------------------------ Utility ------------------------
|
17
16
|
loadImageAsBase64(imagePath) {
|
18
17
|
return new Promise((resolve, reject) => {
|
19
18
|
const img = new Image();
|
@@ -28,7 +27,7 @@ export class ExportService {
|
|
28
27
|
if (ctx) {
|
29
28
|
ctx.scale(scale, scale);
|
30
29
|
ctx.drawImage(img, 0, 0);
|
31
|
-
const base64 = canvas.toDataURL('image/png', 1.0);
|
30
|
+
const base64 = canvas.toDataURL('image/png', 1.0);
|
32
31
|
resolve(base64);
|
33
32
|
}
|
34
33
|
else {
|
@@ -63,13 +62,11 @@ export class ExportService {
|
|
63
62
|
const rowData = filteredColumns.map(col => {
|
64
63
|
let value = row[col.field];
|
65
64
|
const fieldName = col.field?.toLowerCase() || '';
|
66
|
-
// Handle various date field names
|
67
65
|
if ((fieldName.includes('date') ||
|
68
66
|
fieldName.includes('businessdate')) &&
|
69
67
|
value) {
|
70
68
|
value = this.formatDate(value);
|
71
69
|
}
|
72
|
-
// Format currency fields
|
73
70
|
if (currencyFields.includes(col.field) && value != null) {
|
74
71
|
value = parseFloat(value).toFixed(3);
|
75
72
|
}
|
@@ -79,7 +76,6 @@ export class ExportService {
|
|
79
76
|
});
|
80
77
|
return { headers, rows };
|
81
78
|
}
|
82
|
-
// ------------------------ PDF Universal ------------------------
|
83
79
|
async exportToPdfUniversal(title, metadata, headers, rows, fileName) {
|
84
80
|
const doc = new jsPDF({ orientation: 'landscape', unit: 'mm', format: [400, 210] });
|
85
81
|
const logoWidth = 38.4, logoHeight = 17.5, logoX = 15, logoY = 10;
|
@@ -119,34 +115,29 @@ export class ExportService {
|
|
119
115
|
});
|
120
116
|
doc.save(fileName);
|
121
117
|
}
|
122
|
-
// ------------------------ Excel Universal ------------------------
|
123
118
|
exportToExcelUniversal(title, metadata, headers, rows, fileName) {
|
124
119
|
const workbook = new ExcelJS.Workbook();
|
125
120
|
const worksheet = workbook.addWorksheet(title);
|
126
121
|
let currentRow = 1;
|
127
|
-
// Add image if available
|
128
122
|
if (this.logoBase64) {
|
129
123
|
const base64Data = this.logoBase64.replace(/^data:image\/\w+;base64,/, '');
|
130
124
|
const imageId = workbook.addImage({
|
131
125
|
base64: base64Data,
|
132
126
|
extension: 'png',
|
133
127
|
});
|
134
|
-
// Place image at top-left (e.g., A1:C4)
|
135
128
|
worksheet.addImage(imageId, {
|
136
129
|
tl: { col: 0, row: 0 },
|
137
130
|
ext: { width: 145, height: 66 },
|
138
131
|
editAs: 'oneCell'
|
139
132
|
});
|
140
133
|
}
|
141
|
-
// Add title aligned in middle horizontally (merged across all columns)
|
142
134
|
const titleRow = worksheet.getRow(currentRow);
|
143
135
|
titleRow.getCell(4).value = title;
|
144
136
|
titleRow.getCell(4).font = { bold: true, size: 16 };
|
145
137
|
titleRow.getCell(4).alignment = { vertical: 'middle', horizontal: 'left' };
|
146
138
|
const titleMergeEnd = String.fromCharCode(64 + headers.length);
|
147
139
|
worksheet.mergeCells(`D${currentRow}:${titleMergeEnd}${currentRow}`);
|
148
|
-
currentRow += 3;
|
149
|
-
// Add metadata
|
140
|
+
currentRow += 3;
|
150
141
|
metadata.forEach(([label, value]) => {
|
151
142
|
const row = worksheet.getRow(currentRow++);
|
152
143
|
const cell = row.getCell(1);
|
@@ -160,7 +151,6 @@ export class ExportService {
|
|
160
151
|
});
|
161
152
|
worksheet.addRow([]);
|
162
153
|
currentRow++;
|
163
|
-
// Add table header row
|
164
154
|
const headerRow = worksheet.getRow(currentRow++);
|
165
155
|
headers.forEach((header, i) => {
|
166
156
|
const cell = headerRow.getCell(i + 1);
|
@@ -189,7 +179,6 @@ export class ExportService {
|
|
189
179
|
};
|
190
180
|
});
|
191
181
|
});
|
192
|
-
// Auto column widths
|
193
182
|
for (let i = 1; i <= headers.length; i++) {
|
194
183
|
let maxLength = headers[i - 1].length;
|
195
184
|
for (let rowNum = dataStartRow; rowNum <= worksheet.lastRow.number; rowNum++) {
|
@@ -205,7 +194,6 @@ export class ExportService {
|
|
205
194
|
FileSaver.saveAs(blob, fileName);
|
206
195
|
});
|
207
196
|
}
|
208
|
-
// ------------------------ CSV Universal ------------------------
|
209
197
|
exportToCsvUniversal(title, metadata, headers, rows, fileName) {
|
210
198
|
const metaRows = metadata.map(([k, v]) => [`${k}: ${v}`]);
|
211
199
|
const csvContent = [
|
@@ -235,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
235
223
|
providedIn: 'root'
|
236
224
|
}]
|
237
225
|
}], ctorParameters: function () { return []; } });
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRzLWxpYi9zcmMvbGliL3NoYXJlZC9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDOztBQVd4QyxNQUFNLE9BQU8sYUFBYTtJQU94QjtRQUxpQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsNkNBQTZDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNERBQTREO0lBQ3BELGlCQUFpQixDQUFDLFNBQWlCO1FBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUM5QixHQUFHLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztZQUVwQixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDaEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxD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QVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGpzUERGIGZyb20gJ2pzcGRmJztcclxuaW1wb3J0ICdqc3BkZi1hdXRvdGFibGUnO1xyXG5pbXBvcnQgKiBhcyBFeGNlbEpTIGZyb20gJ2V4Y2VsanMnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcblxyXG5kZWNsYXJlIG1vZHVsZSAnanNwZGYnIHtcclxuICBpbnRlcmZhY2UganNQREYge1xyXG4gICAgYXV0b1RhYmxlOiAob3B0aW9uczogYW55KSA9PiBqc1BERjtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cG9ydFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHBkZkZvbnRTaXplID0gMTA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBwZGZMaW5lSGVpZ2h0ID0gNztcclxuICBwcml2YXRlIHJlYWRvbmx5IHBkZkxlZnRNYXJnaW4gPSAxNTtcclxuICBwcml2YXRlIGxvZ29CYXNlNjQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmxvYWRJbWFnZUFzQmFzZTY0KCdhc3NldHMvcmVwb3J0cy1saWIvYXNzZXRzL2ltYWdlcy9YTUxvZ28ucG5nJykudGhlbihiYXNlNjQgPT4ge1xyXG4gICAgICB0aGlzLmxvZ29CYXNlNjQgPSBiYXNlNjQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBVdGlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIHByaXZhdGUgbG9hZEltYWdlQXNCYXNlNjQoaW1hZ2VQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICAgIGltZy5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xyXG4gICAgICBpbWcuc3JjID0gaW1hZ2VQYXRoO1xyXG5cclxuICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICBjb25zdCBzY2FsZSA9IDY7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICAgICAgY2FudmFzLndpZHRoID0gaW1nLndpZHRoICogc2NhbGU7XHJcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IGltZy5oZWlnaHQgKiBzY2FsZTtcclxuXHJcbiAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgaWYgKGN0eCkge1xyXG4gICAgICAgICAgY3R4LnNjYWxlKHNjYWxlLCBzY2FsZSk7XHJcbiAgICAgICAgICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7XHJcbiAgICAgICAgICBjb25zdCBiYXNlNjQgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnLCAxLjApOyAvLyAxLjAgPSBoaWdoZXN0IHF1YWxpdHlcclxuICAgICAgICAgIHJlc29sdmUoYmFzZTY0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KCdGYWlsZWQgdG8gZ2V0IGNhbnZhcyBjb250ZXh0LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIGltZy5vbmVycm9yID0gKCkgPT4gcmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBpbWFnZTogJyArIGltYWdlUGF0aCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgcmV0dXJuIGlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/ICcnIDpcclxuICAgICAgYCR7ZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS8keyhkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LyR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XHJcbiAgfVxyXG4gIGZvcm1hdERhdGVUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2RhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0vYCArXHJcbiAgICAgIGAkeyhkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9L2AgK1xyXG4gICAgICBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9IGAgK1xyXG4gICAgICBgJHtkYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfTpgICtcclxuICAgICAgYCR7ZGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVJlcG9ydE1ldGFkYXRhKG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10pOiBbc3RyaW5nLCBzdHJpbmddW10ge1xyXG4gICAgcmV0dXJuIG1ldGFkYXRhLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlRXhwb3J0VGFibGUoZGF0YTogYW55W10sIGNvbHVtbkRlZnM6IGFueVtdLCBvcHRpb25zOiB7XHJcbiAgICBleGNsdWRlRmllbGRzPzogc3RyaW5nW10sXHJcbiAgICBjdXJyZW5jeUZpZWxkcz86IHN0cmluZ1tdXHJcbiAgfSA9IHt9KTogeyBoZWFkZXJzOiBzdHJpbmdbXSwgcm93czogYW55W11bXSB9IHtcclxuICAgIGNvbnN0IHsgZXhjbHVkZUZpZWxkcyA9IFsnc3JubycsICdzZXJpYWwnLCAnYWN0aW9uJ10sIGN1cnJlbmN5RmllbGRzID0gW10gfSA9IG9wdGlvbnM7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyZWRDb2x1bW5zID0gY29sdW1uRGVmcy5maWx0ZXIoY29sID0+XHJcbiAgICAgIGNvbC5maWVsZCAmJlxyXG4gICAgICAhZXhjbHVkZUZpZWxkcy5zb21lKGV4ID0+IGNvbC5maWVsZC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV4KSkgJiZcclxuICAgICAgIWV4Y2x1ZGVGaWVsZHMuc29tZShleCA9PiBjb2wuaGVhZGVyTmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhleCkpXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBbJ1NyIE5vJywgLi4uZmlsdGVyZWRDb2x1bW5zLm1hcChjb2wgPT4gY29sLmhlYWRlck5hbWUgfHwgY29sLmZpZWxkKV07XHJcblxyXG4gICAgY29uc3Qgcm93cyA9IGRhdGEubWFwKChyb3csIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBmaWx0ZXJlZENvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gcm93W2NvbC5maWVsZF07XHJcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gY29sLmZpZWxkPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xyXG5cclxuICAgICAgICAvLyBIYW5kbGUgdmFyaW91cyBkYXRlIGZpZWxkIG5hbWVzXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgKGZpZWxkTmFtZS5pbmNsdWRlcygnZGF0ZScpIHx8XHJcbiAgICAgICAgICAgIGZpZWxkTmFtZS5pbmNsdWRlcygnYnVzaW5lc3NkYXRlJykpICYmXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmZvcm1hdERhdGUodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRm9ybWF0IGN1cnJlbmN5IGZpZWxkc1xyXG4gICAgICAgIGlmIChjdXJyZW5jeUZpZWxkcy5pbmNsdWRlcyhjb2wuZmllbGQpICYmIHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSkudG9GaXhlZCgzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID8/ICcnO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIFtpbmRleCArIDEsIC4uLnJvd0RhdGFdO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4geyBoZWFkZXJzLCByb3dzIH07XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUERGIFVuaXZlcnNhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBhc3luYyBleHBvcnRUb1BkZlVuaXZlcnNhbCh0aXRsZTogc3RyaW5nLCBtZXRhZGF0YTogW3N0cmluZywgc3RyaW5nXVtdLCBoZWFkZXJzOiBzdHJpbmdbXSwgcm93czogYW55W11bXSwgZmlsZU5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZG9jID0gbmV3IGpzUERGKHsgb3JpZW50YXRpb246ICdsYW5kc2NhcGUnLCB1bml0OiAnbW0nLCBmb3JtYXQ6IFs0MDAsIDIxMF0gfSk7XHJcblxyXG4gICAgY29uc3QgbG9nb1dpZHRoID0gMzguNCwgbG9nb0hlaWdodCA9IDE3LjUsIGxvZ29YID0gMTUsIGxvZ29ZID0gMTA7XHJcbiAgICBjb25zdCBwYWdlV2lkdGggPSBkb2MuaW50ZXJuYWwucGFnZVNpemUud2lkdGg7XHJcbiAgICBjb25zdCB0aXRsZVkgPSAxODtcclxuXHJcbiAgICBpZiAodGhpcy5sb2dvQmFzZTY0KSB7XHJcbiAgICAgIGRvYy5hZGRJbWFnZSh0aGlzLmxvZ29CYXNlNjQsICdQTkcnLCBsb2dvWCwgbG9nb1ksIGxvZ29XaWR0aCwgbG9nb0hlaWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jLnNldEZvbnRTaXplKDE1KTtcclxuICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xyXG4gICAgZG9jLnRleHQodGl0bGUsIHBhZ2VXaWR0aCAvIDIsIHRpdGxlWSwgeyBhbGlnbjogJ2NlbnRlcicgfSk7XHJcblxyXG4gICAgbGV0IGN1cnJlbnRZID0gdGl0bGVZICsgMTQ7XHJcbiAgICBkb2Muc2V0Rm9udFNpemUodGhpcy5wZGZGb250U2l6ZSk7XHJcbiAgICBtZXRhZGF0YS5mb3JFYWNoKChbbGFiZWwsIHZhbHVlXSwgaSkgPT4ge1xyXG4gICAgICBjb25zdCB5ID0gY3VycmVudFkgKyBpICogdGhpcy5wZGZMaW5lSGVpZ2h0O1xyXG4gICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcclxuICAgICAgZG9jLnRleHQobGFiZWwsIHRoaXMucGRmTGVmdE1hcmdpbiwgeSk7XHJcbiAgICAgIGNvbnN0IGxhYmVsV2lkdGggPSBkb2MuZ2V0VGV4dFdpZHRoKGxhYmVsICsgJyAnKTtcclxuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcclxuICAgICAgZG9jLnRleHQodmFsdWUsIHRoaXMucGRmTGVmdE1hcmdpbiArIGxhYmVsV2lkdGgsIHkpO1xyXG4gICAgfSk7XHJcbiAgICBjdXJyZW50WSArPSBtZXRhZGF0YS5sZW5ndGggKiB0aGlzLnBkZkxpbmVIZWlnaHQgKyA1O1xyXG5cclxuICAgIGNvbnN0IGNvbHVtblN0eWxlczogeyBba2V5OiBudW1iZXJdOiBhbnkgfSA9IHt9O1xyXG4gICAgaGVhZGVycy5mb3JFYWNoKChfLCBpKSA9PiBjb2x1bW5TdHlsZXNbaV0gPSB7IGNlbGxXaWR0aDogJ2F1dG8nIH0pO1xyXG5cclxuICAgIGRvYy5hdXRvVGFibGUoe1xyXG4gICAgICBoZWFkOiBbaGVhZGVyc10sXHJcbiAgICAgIGJvZHk6IHJvd3MsXHJcbiAgICAgIHN0YXJ0WTogY3VycmVudFksXHJcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXHJcbiAgICAgIGhlYWRTdHlsZXM6IHtcclxuICAgICAgICBmaWxsQ29sb3I6IFsyMjAsIDIyMCwgMjIwXSwgdGV4dENvbG9yOiAwLFxyXG4gICAgICAgIGZvbnRTdHlsZTogJ2JvbGQnLCBmb250U2l6ZTogOSwgaGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgfSxcclxuICAgICAgYm9keVN0eWxlczogeyBmb250U2l6ZTogOCwgZmlsbENvbG9yOiBbMjU1LCAyNTUsIDI1NV0sIHRleHRDb2xvcjogWzAsIDAsIDBdIH0sXHJcbiAgICAgIHN0eWxlczogeyBjZWxsUGFkZGluZzogMiwgb3ZlcmZsb3c6ICdsaW5lYnJlYWsnLCBtaW5DZWxsSGVpZ2h0OiA2IH0sXHJcbiAgICAgIGNvbHVtblN0eWxlc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZG9jLnNhdmUoZmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV4Y2VsIFVuaXZlcnNhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBleHBvcnRUb0V4Y2VsVW5pdmVyc2FsKHRpdGxlOiBzdHJpbmcsIG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10sIGhlYWRlcnM6IHN0cmluZ1tdLCByb3dzOiBhbnlbXVtdLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB3b3JrYm9vayA9IG5ldyBFeGNlbEpTLldvcmtib29rKCk7XHJcbiAgICBjb25zdCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQodGl0bGUpO1xyXG5cclxuICAgIGxldCBjdXJyZW50Um93ID0gMTtcclxuXHJcbiAgICAvLyBBZGQgaW1hZ2UgaWYgYXZhaWxhYmxlXHJcbiAgICBpZiAodGhpcy5sb2dvQmFzZTY0KSB7XHJcbiAgICAgIGNvbnN0IGJhc2U2NERhdGEgPSB0aGlzLmxvZ29CYXNlNjQucmVwbGFjZSgvXmRhdGE6aW1hZ2VcXC9cXHcrO2Jhc2U2NCwvLCAnJyk7XHJcbiAgICAgIGNvbnN0IGltYWdlSWQgPSB3b3JrYm9vay5hZGRJbWFnZSh7XHJcbiAgICAgICAgYmFzZTY0OiBiYXNlNjREYXRhLFxyXG4gICAgICAgIGV4dGVuc2lvbjogJ3BuZycsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gUGxhY2UgaW1hZ2UgYXQgdG9wLWxlZnQgKGUuZy4sIEExOkM0KVxyXG4gICAgICB3b3Jrc2hlZXQuYWRkSW1hZ2UoaW1hZ2VJZCwge1xyXG4gICAgICAgIHRsOiB7IGNvbDogMCwgcm93OiAwIH0sXHJcbiAgICAgICAgZXh0OiB7IHdpZHRoOiAxNDUsIGhlaWdodDogNjYgfSxcclxuICAgICAgICBlZGl0QXM6ICdvbmVDZWxsJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBZGQgdGl0bGUgYWxpZ25lZCBpbiBtaWRkbGUgaG9yaXpvbnRhbGx5IChtZXJnZWQgYWNyb3NzIGFsbCBjb2x1bW5zKVxyXG4gICAgY29uc3QgdGl0bGVSb3cgPSB3b3Jrc2hlZXQuZ2V0Um93KGN1cnJlbnRSb3cpO1xyXG4gICAgdGl0bGVSb3cuZ2V0Q2VsbCg0KS52YWx1ZSA9IHRpdGxlO1xyXG4gICAgdGl0bGVSb3cuZ2V0Q2VsbCg0KS5mb250ID0geyBib2xkOiB0cnVlLCBzaXplOiAxNiB9O1xyXG4gICAgdGl0bGVSb3cuZ2V0Q2VsbCg0KS5hbGlnbm1lbnQgPSB7IHZlcnRpY2FsOiAnbWlkZGxlJywgaG9yaXpvbnRhbDogJ2xlZnQnIH07XHJcblxyXG4gICAgY29uc3QgdGl0bGVNZXJnZUVuZCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoNjQgKyBoZWFkZXJzLmxlbmd0aCk7XHJcbiAgICB3b3Jrc2hlZXQubWVyZ2VDZWxscyhgRCR7Y3VycmVudFJvd306JHt0aXRsZU1lcmdlRW5kfSR7Y3VycmVudFJvd31gKTtcclxuICAgIGN1cnJlbnRSb3cgKz0gMzsgLy8gTW92ZSBwYXN0IGltYWdlIHNwYWNlXHJcblxyXG4gICAgLy8gQWRkIG1ldGFkYXRhXHJcbiAgICBtZXRhZGF0YS5mb3JFYWNoKChbbGFiZWwsIHZhbHVlXSkgPT4ge1xyXG4gICAgICBjb25zdCByb3cgPSB3b3Jrc2hlZXQuZ2V0Um93KGN1cnJlbnRSb3crKyk7XHJcbiAgICAgIGNvbnN0IGNlbGwgPSByb3cuZ2V0Q2VsbCgxKTtcclxuICAgICAgY2VsbC52YWx1ZSA9IHtcclxuICAgICAgICByaWNoVGV4dDogW1xyXG4gICAgICAgICAgeyB0ZXh0OiBgJHtsYWJlbH06IGAsIGZvbnQ6IHsgYm9sZDogdHJ1ZSB9IH0sXHJcbiAgICAgICAgICB7IHRleHQ6IHZhbHVlID8/ICcnLCBmb250OiB7IGJvbGQ6IGZhbHNlIH0gfVxyXG4gICAgICAgIF1cclxuICAgICAgfTtcclxuICAgICAgd29ya3NoZWV0Lm1lcmdlQ2VsbHMoYEEke3Jvdy5udW1iZXJ9OiR7U3RyaW5nLmZyb21DaGFyQ29kZSg2NCArIGhlYWRlcnMubGVuZ3RoKX0ke3Jvdy5udW1iZXJ9YCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB3b3Jrc2hlZXQuYWRkUm93KFtdKTtcclxuICAgIGN1cnJlbnRSb3crKztcclxuXHJcbiAgICAvLyBBZGQgdGFibGUgaGVhZGVyIHJvd1xyXG4gICAgY29uc3QgaGVhZGVyUm93ID0gd29ya3NoZWV0LmdldFJvdyhjdXJyZW50Um93KyspO1xyXG4gICAgaGVhZGVycy5mb3JFYWNoKChoZWFkZXIsIGkpID0+IHtcclxuICAgICAgY29uc3QgY2VsbCA9IGhlYWRlclJvdy5nZXRDZWxsKGkgKyAxKTtcclxuICAgICAgY2VsbC52YWx1ZSA9IGhlYWRlcjtcclxuICAgICAgY2VsbC5mb250ID0geyBib2xkOiB0cnVlIH07XHJcbiAgICAgIGNlbGwuZmlsbCA9IHsgdHlwZTogJ3BhdHRlcm4nLCBwYXR0ZXJuOiAnc29saWQnLCBmZ0NvbG9yOiB7IGFyZ2I6ICdEOUQ5RDknIH0gfTtcclxuICAgICAgY2VsbC5hbGlnbm1lbnQgPSB7IHZlcnRpY2FsOiAnbWlkZGxlJywgaG9yaXpvbnRhbDogJ2NlbnRlcicgfTtcclxuICAgICAgY2VsbC5ib3JkZXIgPSB7XHJcbiAgICAgICAgdG9wOiB7IHN0eWxlOiAndGhpbicgfSxcclxuICAgICAgICBib3R0b206IHsgc3R5bGU6ICd0aGluJyB9LFxyXG4gICAgICAgIGxlZnQ6IHsgc3R5bGU6ICd0aGluJyB9LFxyXG4gICAgICAgIHJpZ2h0OiB7IHN0eWxlOiAndGhpbicgfVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgZGF0YVN0YXJ0Um93ID0gY3VycmVudFJvdztcclxuICAgIHJvd3MuZm9yRWFjaChyb3dEYXRhID0+IHtcclxuICAgICAgY29uc3Qgcm93ID0gd29ya3NoZWV0LmdldFJvdyhjdXJyZW50Um93KyspO1xyXG4gICAgICByb3dEYXRhLmZvckVhY2goKHZhbHVlLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VsbCA9IHJvdy5nZXRDZWxsKGkgKyAxKTtcclxuICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgY2VsbC5ib3JkZXIgPSB7XHJcbiAgICAgICAgICB0b3A6IHsgc3R5bGU6ICd0aGluJyB9LFxyXG4gICAgICAgICAgYm90dG9tOiB7IHN0eWxlOiAndGhpbicgfSxcclxuICAgICAgICAgIGxlZnQ6IHsgc3R5bGU6ICd0aGluJyB9LFxyXG4gICAgICAgICAgcmlnaHQ6IHsgc3R5bGU6ICd0aGluJyB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBdXRvIGNvbHVtbiB3aWR0aHNcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGhlYWRlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IG1heExlbmd0aCA9IGhlYWRlcnNbaSAtIDFdLmxlbmd0aDtcclxuICAgICAgZm9yIChsZXQgcm93TnVtID0gZGF0YVN0YXJ0Um93OyByb3dOdW0gPD0gd29ya3NoZWV0Lmxhc3RSb3chLm51bWJlcjsgcm93TnVtKyspIHtcclxuICAgICAgICBjb25zdCB2YWwgPSB3b3Jrc2hlZXQuZ2V0Um93KHJvd051bSkuZ2V0Q2VsbChpKS52YWx1ZT8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgICAgICBtYXhMZW5ndGggPSBNYXRoLm1heChtYXhMZW5ndGgsIHZhbC5sZW5ndGgpO1xyXG4gICAgICB9XHJcbiAgICAgIHdvcmtzaGVldC5nZXRDb2x1bW4oaSkud2lkdGggPSBtYXhMZW5ndGggKyAyO1xyXG4gICAgfVxyXG5cclxuICAgIHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKS50aGVuKGJ1ZmZlciA9PiB7XHJcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCdcclxuICAgICAgfSk7XHJcbiAgICAgIEZpbGVTYXZlci5zYXZlQXMoYmxvYiwgZmlsZU5hbWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENTViBVbml2ZXJzYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgZXhwb3J0VG9Dc3ZVbml2ZXJzYWwodGl0bGU6IHN0cmluZywgbWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSwgaGVhZGVyczogc3RyaW5nW10sIHJvd3M6IGFueVtdW10sIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1ldGFSb3dzID0gbWV0YWRhdGEubWFwKChbaywgdl0pID0+IFtgJHtrfTogJHt2fWBdKTtcclxuICAgIGNvbnN0IGNzdkNvbnRlbnQgPSBbXHJcbiAgICAgIFt0aXRsZV0sXHJcbiAgICAgIC4uLm1ldGFSb3dzLFxyXG4gICAgICBbXSxcclxuICAgICAgaGVhZGVycyxcclxuICAgICAgLi4ucm93cy5tYXAocm93ID0+IHJvdy5tYXAodmFsdWUgPT4gYFwiJHt2YWx1ZX1cImApKVxyXG4gICAgXS5tYXAoZSA9PiBlLmpvaW4oJywnKSkuam9pbignXFxuJyk7XHJcblxyXG4gICAgdGhpcy5kb3dubG9hZEZpbGUoY3N2Q29udGVudCwgZmlsZU5hbWUsICd0ZXh0L2NzdicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb3dubG9hZEZpbGUoZGF0YTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHsgdHlwZSB9KTtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgIGxpbmsuY2xpY2soKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRzLWxpYi9zcmMvbGliL3NoYXJlZC9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDOztBQVd4QyxNQUFNLE9BQU8sYUFBYTtJQU94QjtRQUxpQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsNkNBQTZDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsU0FBaUI7UUFDekMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQzlCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1lBRXBCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNoQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hELE1B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QUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDbkQsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLElBQVk7UUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7MEdBN1BVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XHJcbmltcG9ydCAnanNwZGYtYXV0b3RhYmxlJztcclxuaW1wb3J0ICogYXMgRXhjZWxKUyBmcm9tICdleGNlbGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5cclxuZGVjbGFyZSBtb2R1bGUgJ2pzcGRmJyB7XHJcbiAgaW50ZXJmYWNlIGpzUERGIHtcclxuICAgIGF1dG9UYWJsZTogKG9wdGlvbnM6IGFueSkgPT4ganNQREY7XHJcbiAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHBvcnRTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBwZGZGb250U2l6ZSA9IDEwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgcGRmTGluZUhlaWdodCA9IDc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBwZGZMZWZ0TWFyZ2luID0gMTU7XHJcbiAgcHJpdmF0ZSBsb2dvQmFzZTY0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5sb2FkSW1hZ2VBc0Jhc2U2NCgnYXNzZXRzL3JlcG9ydHMtbGliL2Fzc2V0cy9pbWFnZXMvWE1Mb2dvLnBuZycpLnRoZW4oYmFzZTY0ID0+IHtcclxuICAgICAgdGhpcy5sb2dvQmFzZTY0ID0gYmFzZTY0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRJbWFnZUFzQmFzZTY0KGltYWdlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICBpbWcuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcclxuICAgICAgaW1nLnNyYyA9IGltYWdlUGF0aDtcclxuXHJcbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2NhbGUgPSA2O1xyXG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgICAgIGNhbnZhcy53aWR0aCA9IGltZy53aWR0aCAqIHNjYWxlO1xyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0ICogc2NhbGU7XHJcblxyXG4gICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgIGlmIChjdHgpIHtcclxuICAgICAgICAgIGN0eC5zY2FsZShzY2FsZSwgc2NhbGUpO1xyXG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xyXG4gICAgICAgICAgY29uc3QgYmFzZTY0ID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJywgMS4wKTtcclxuICAgICAgICAgIHJlc29sdmUoYmFzZTY0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KCdGYWlsZWQgdG8gZ2V0IGNhbnZhcyBjb250ZXh0LicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIGltZy5vbmVycm9yID0gKCkgPT4gcmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBpbWFnZTogJyArIGltYWdlUGF0aCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgcmV0dXJuIGlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/ICcnIDpcclxuICAgICAgYCR7ZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS8keyhkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LyR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XHJcbiAgfVxyXG4gIGZvcm1hdERhdGVUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2RhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0vYCArXHJcbiAgICAgIGAkeyhkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9L2AgK1xyXG4gICAgICBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9IGAgK1xyXG4gICAgICBgJHtkYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfTpgICtcclxuICAgICAgYCR7ZGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVJlcG9ydE1ldGFkYXRhKG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10pOiBbc3RyaW5nLCBzdHJpbmddW10ge1xyXG4gICAgcmV0dXJuIG1ldGFkYXRhLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlRXhwb3J0VGFibGUoZGF0YTogYW55W10sIGNvbHVtbkRlZnM6IGFueVtdLCBvcHRpb25zOiB7XHJcbiAgICBleGNsdWRlRmllbGRzPzogc3RyaW5nW10sXHJcbiAgICBjdXJyZW5jeUZpZWxkcz86IHN0cmluZ1tdXHJcbiAgfSA9IHt9KTogeyBoZWFkZXJzOiBzdHJpbmdbXSwgcm93czogYW55W11bXSB9IHtcclxuICAgIGNvbnN0IHsgZXhjbHVkZUZpZWxkcyA9IFsnc3JubycsICdzZXJpYWwnLCAnYWN0aW9uJ10sIGN1cnJlbmN5RmllbGRzID0gW10gfSA9IG9wdGlvbnM7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyZWRDb2x1bW5zID0gY29sdW1uRGVmcy5maWx0ZXIoY29sID0+XHJcbiAgICAgIGNvbC5maWVsZCAmJlxyXG4gICAgICAhZXhjbHVkZUZpZWxkcy5zb21lKGV4ID0+IGNvbC5maWVsZC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV4KSkgJiZcclxuICAgICAgIWV4Y2x1ZGVGaWVsZHMuc29tZShleCA9PiBjb2wuaGVhZGVyTmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhleCkpXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBbJ1NyIE5vJywgLi4uZmlsdGVyZWRDb2x1bW5zLm1hcChjb2wgPT4gY29sLmhlYWRlck5hbWUgfHwgY29sLmZpZWxkKV07XHJcblxyXG4gICAgY29uc3Qgcm93cyA9IGRhdGEubWFwKChyb3csIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBmaWx0ZXJlZENvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gcm93W2NvbC5maWVsZF07XHJcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gY29sLmZpZWxkPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAoZmllbGROYW1lLmluY2x1ZGVzKCdkYXRlJykgfHxcclxuICAgICAgICAgICAgZmllbGROYW1lLmluY2x1ZGVzKCdidXNpbmVzc2RhdGUnKSkgJiZcclxuICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuZm9ybWF0RGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY3VycmVuY3lGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKSAmJiB2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpLnRvRml4ZWQoMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZSA/PyAnJztcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBbaW5kZXggKyAxLCAuLi5yb3dEYXRhXTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHsgaGVhZGVycywgcm93cyB9O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhwb3J0VG9QZGZVbml2ZXJzYWwodGl0bGU6IHN0cmluZywgbWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSwgaGVhZGVyczogc3RyaW5nW10sIHJvd3M6IGFueVtdW10sIGZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGRvYyA9IG5ldyBqc1BERih7IG9yaWVudGF0aW9uOiAnbGFuZHNjYXBlJywgdW5pdDogJ21tJywgZm9ybWF0OiBbNDAwLCAyMTBdIH0pO1xyXG5cclxuICAgIGNvbnN0IGxvZ29XaWR0aCA9IDM4LjQsIGxvZ29IZWlnaHQgPSAxNy41LCBsb2dvWCA9IDE1LCBsb2dvWSA9IDEwO1xyXG4gICAgY29uc3QgcGFnZVdpZHRoID0gZG9jLmludGVybmFsLnBhZ2VTaXplLndpZHRoO1xyXG4gICAgY29uc3QgdGl0bGVZID0gMTg7XHJcblxyXG4gICAgaWYgKHRoaXMubG9nb0Jhc2U2NCkge1xyXG4gICAgICBkb2MuYWRkSW1hZ2UodGhpcy5sb2dvQmFzZTY0LCAnUE5HJywgbG9nb1gsIGxvZ29ZLCBsb2dvV2lkdGgsIGxvZ29IZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIGRvYy5zZXRGb250U2l6ZSgxNSk7XHJcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcclxuICAgIGRvYy50ZXh0KHRpdGxlLCBwYWdlV2lkdGggLyAyLCB0aXRsZVksIHsgYWxpZ246ICdjZW50ZXInIH0pO1xyXG5cclxuICAgIGxldCBjdXJyZW50WSA9IHRpdGxlWSArIDE0O1xyXG4gICAgZG9jLnNldEZvbnRTaXplKHRoaXMucGRmRm9udFNpemUpO1xyXG4gICAgbWV0YWRhdGEuZm9yRWFjaCgoW2xhYmVsLCB2YWx1ZV0sIGkpID0+IHtcclxuICAgICAgY29uc3QgeSA9IGN1cnJlbnRZICsgaSAqIHRoaXMucGRmTGluZUhlaWdodDtcclxuICAgICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XHJcbiAgICAgIGRvYy50ZXh0KGxhYmVsLCB0aGlzLnBkZkxlZnRNYXJnaW4sIHkpO1xyXG4gICAgICBjb25zdCBsYWJlbFdpZHRoID0gZG9jLmdldFRleHRXaWR0aChsYWJlbCArICcgJyk7XHJcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XHJcbiAgICAgIGRvYy50ZXh0KHZhbHVlLCB0aGlzLnBkZkxlZnRNYXJnaW4gKyBsYWJlbFdpZHRoLCB5KTtcclxuICAgIH0pO1xyXG4gICAgY3VycmVudFkgKz0gbWV0YWRhdGEubGVuZ3RoICogdGhpcy5wZGZMaW5lSGVpZ2h0ICsgNTtcclxuXHJcbiAgICBjb25zdCBjb2x1bW5TdHlsZXM6IHsgW2tleTogbnVtYmVyXTogYW55IH0gPSB7fTtcclxuICAgIGhlYWRlcnMuZm9yRWFjaCgoXywgaSkgPT4gY29sdW1uU3R5bGVzW2ldID0geyBjZWxsV2lkdGg6ICdhdXRvJyB9KTtcclxuXHJcbiAgICBkb2MuYXV0b1RhYmxlKHtcclxuICAgICAgaGVhZDogW2hlYWRlcnNdLFxyXG4gICAgICBib2R5OiByb3dzLFxyXG4gICAgICBzdGFydFk6IGN1cnJlbnRZLFxyXG4gICAgICB0aGVtZTogJ2dyaWQnLFxyXG4gICAgICBoZWFkU3R5bGVzOiB7XHJcbiAgICAgICAgZmlsbENvbG9yOiBbMjIwLCAyMjAsIDIyMF0sIHRleHRDb2xvcjogMCxcclxuICAgICAgICBmb250U3R5bGU6ICdib2xkJywgZm9udFNpemU6IDksIGhhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIH0sXHJcbiAgICAgIGJvZHlTdHlsZXM6IHsgZm9udFNpemU6IDgsIGZpbGxDb2xvcjogWzI1NSwgMjU1LCAyNTVdLCB0ZXh0Q29sb3I6IFswLCAwLCAwXSB9LFxyXG4gICAgICBzdHlsZXM6IHsgY2VsbFBhZGRpbmc6IDIsIG92ZXJmbG93OiAnbGluZWJyZWFrJywgbWluQ2VsbEhlaWdodDogNiB9LFxyXG4gICAgICBjb2x1bW5TdHlsZXNcclxuICAgIH0pO1xyXG5cclxuICAgIGRvYy5zYXZlKGZpbGVOYW1lKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWxVbml2ZXJzYWwodGl0bGU6IHN0cmluZywgbWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSwgaGVhZGVyczogc3RyaW5nW10sIHJvd3M6IGFueVtdW10sIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHdvcmtib29rID0gbmV3IEV4Y2VsSlMuV29ya2Jvb2soKTtcclxuICAgIGNvbnN0IHdvcmtzaGVldCA9IHdvcmtib29rLmFkZFdvcmtzaGVldCh0aXRsZSk7XHJcblxyXG4gICAgbGV0IGN1cnJlbnRSb3cgPSAxO1xyXG5cclxuICAgIGlmICh0aGlzLmxvZ29CYXNlNjQpIHtcclxuICAgICAgY29uc3QgYmFzZTY0RGF0YSA9IHRoaXMubG9nb0Jhc2U2NC5yZXBsYWNlKC9eZGF0YTppbWFnZVxcL1xcdys7YmFzZTY0LC8sICcnKTtcclxuICAgICAgY29uc3QgaW1hZ2VJZCA9IHdvcmtib29rLmFkZEltYWdlKHtcclxuICAgICAgICBiYXNlNjQ6IGJhc2U2NERhdGEsXHJcbiAgICAgICAgZXh0ZW5zaW9uOiAncG5nJyxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB3b3Jrc2hlZXQuYWRkSW1hZ2UoaW1hZ2VJZCwge1xyXG4gICAgICAgIHRsOiB7IGNvbDogMCwgcm93OiAwIH0sXHJcbiAgICAgICAgZXh0OiB7IHdpZHRoOiAxNDUsIGhlaWdodDogNjYgfSxcclxuICAgICAgICBlZGl0QXM6ICdvbmVDZWxsJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0aXRsZVJvdyA9IHdvcmtzaGVldC5nZXRSb3coY3VycmVudFJvdyk7XHJcbiAgICB0aXRsZVJvdy5nZXRDZWxsKDQpLnZhbHVlID0gdGl0bGU7XHJcbiAgICB0aXRsZVJvdy5nZXRDZWxsKDQpLmZvbnQgPSB7IGJvbGQ6IHRydWUsIHNpemU6IDE2IH07XHJcbiAgICB0aXRsZVJvdy5nZXRDZWxsKDQpLmFsaWdubWVudCA9IHsgdmVydGljYWw6ICdtaWRkbGUnLCBob3Jpem9udGFsOiAnbGVmdCcgfTtcclxuXHJcbiAgICBjb25zdCB0aXRsZU1lcmdlRW5kID0gU3RyaW5nLmZyb21DaGFyQ29kZSg2NCArIGhlYWRlcnMubGVuZ3RoKTtcclxuICAgIHdvcmtzaGVldC5tZXJnZUNlbGxzKGBEJHtjdXJyZW50Um93fToke3RpdGxlTWVyZ2VFbmR9JHtjdXJyZW50Um93fWApO1xyXG4gICAgY3VycmVudFJvdyArPSAzO1xyXG5cclxuICAgIG1ldGFkYXRhLmZvckVhY2goKFtsYWJlbCwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IHdvcmtzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcclxuICAgICAgY29uc3QgY2VsbCA9IHJvdy5nZXRDZWxsKDEpO1xyXG4gICAgICBjZWxsLnZhbHVlID0ge1xyXG4gICAgICAgIHJpY2hUZXh0OiBbXHJcbiAgICAgICAgICB7IHRleHQ6IGAke2xhYmVsfTogYCwgZm9udDogeyBib2xkOiB0cnVlIH0gfSxcclxuICAgICAgICAgIHsgdGV4dDogdmFsdWUgPz8gJycsIGZvbnQ6IHsgYm9sZDogZmFsc2UgfSB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9O1xyXG4gICAgICB3b3Jrc2hlZXQubWVyZ2VDZWxscyhgQSR7cm93Lm51bWJlcn06JHtTdHJpbmcuZnJvbUNoYXJDb2RlKDY0ICsgaGVhZGVycy5sZW5ndGgpfSR7cm93Lm51bWJlcn1gKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHdvcmtzaGVldC5hZGRSb3coW10pO1xyXG4gICAgY3VycmVudFJvdysrO1xyXG5cclxuICAgIGNvbnN0IGhlYWRlclJvdyA9IHdvcmtzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcclxuICAgIGhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGwgPSBoZWFkZXJSb3cuZ2V0Q2VsbChpICsgMSk7XHJcbiAgICAgIGNlbGwudmFsdWUgPSBoZWFkZXI7XHJcbiAgICAgIGNlbGwuZm9udCA9IHsgYm9sZDogdHJ1ZSB9O1xyXG4gICAgICBjZWxsLmZpbGwgPSB7IHR5cGU6ICdwYXR0ZXJuJywgcGF0dGVybjogJ3NvbGlkJywgZmdDb2xvcjogeyBhcmdiOiAnRDlEOUQ5JyB9IH07XHJcbiAgICAgIGNlbGwuYWxpZ25tZW50ID0geyB2ZXJ0aWNhbDogJ21pZGRsZScsIGhvcml6b250YWw6ICdjZW50ZXInIH07XHJcbiAgICAgIGNlbGwuYm9yZGVyID0ge1xyXG4gICAgICAgIHRvcDogeyBzdHlsZTogJ3RoaW4nIH0sXHJcbiAgICAgICAgYm90dG9tOiB7IHN0eWxlOiAndGhpbicgfSxcclxuICAgICAgICBsZWZ0OiB7IHN0eWxlOiAndGhpbicgfSxcclxuICAgICAgICByaWdodDogeyBzdHlsZTogJ3RoaW4nIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGRhdGFTdGFydFJvdyA9IGN1cnJlbnRSb3c7XHJcbiAgICByb3dzLmZvckVhY2gocm93RGF0YSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IHdvcmtzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcclxuICAgICAgcm93RGF0YS5mb3JFYWNoKCh2YWx1ZSwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNlbGwgPSByb3cuZ2V0Q2VsbChpICsgMSk7XHJcbiAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIGNlbGwuYm9yZGVyID0ge1xyXG4gICAgICAgICAgdG9wOiB7IHN0eWxlOiAndGhpbicgfSxcclxuICAgICAgICAgIGJvdHRvbTogeyBzdHlsZTogJ3RoaW4nIH0sXHJcbiAgICAgICAgICBsZWZ0OiB7IHN0eWxlOiAndGhpbicgfSxcclxuICAgICAgICAgIHJpZ2h0OiB7IHN0eWxlOiAndGhpbicgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gaGVhZGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgbWF4TGVuZ3RoID0gaGVhZGVyc1tpIC0gMV0ubGVuZ3RoO1xyXG4gICAgICBmb3IgKGxldCByb3dOdW0gPSBkYXRhU3RhcnRSb3c7IHJvd051bSA8PSB3b3Jrc2hlZXQubGFzdFJvdyEubnVtYmVyOyByb3dOdW0rKykge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IHdvcmtzaGVldC5nZXRSb3cocm93TnVtKS5nZXRDZWxsKGkpLnZhbHVlPy50b1N0cmluZygpIHx8ICcnO1xyXG4gICAgICAgIG1heExlbmd0aCA9IE1hdGgubWF4KG1heExlbmd0aCwgdmFsLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgICAgd29ya3NoZWV0LmdldENvbHVtbihpKS53aWR0aCA9IG1heExlbmd0aCArIDI7XHJcbiAgICB9XHJcblxyXG4gICAgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpLnRoZW4oYnVmZmVyID0+IHtcclxuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0J1xyXG4gICAgICB9KTtcclxuICAgICAgRmlsZVNhdmVyLnNhdmVBcyhibG9iLCBmaWxlTmFtZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvQ3N2VW5pdmVyc2FsKHRpdGxlOiBzdHJpbmcsIG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10sIGhlYWRlcnM6IHN0cmluZ1tdLCByb3dzOiBhbnlbXVtdLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBtZXRhUm93cyA9IG1ldGFkYXRhLm1hcCgoW2ssIHZdKSA9PiBbYCR7a306ICR7dn1gXSk7XHJcbiAgICBjb25zdCBjc3ZDb250ZW50ID0gW1xyXG4gICAgICBbdGl0bGVdLFxyXG4gICAgICAuLi5tZXRhUm93cyxcclxuICAgICAgW10sXHJcbiAgICAgIGhlYWRlcnMsXHJcbiAgICAgIC4uLnJvd3MubWFwKHJvdyA9PiByb3cubWFwKHZhbHVlID0+IGBcIiR7dmFsdWV9XCJgKSlcclxuICAgIF0ubWFwKGUgPT4gZS5qb2luKCcsJykpLmpvaW4oJ1xcbicpO1xyXG5cclxuICAgIHRoaXMuZG93bmxvYWRGaWxlKGNzdkNvbnRlbnQsIGZpbGVOYW1lLCAndGV4dC9jc3YnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZG93bmxvYWRGaWxlKGRhdGE6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGUgfSk7XHJcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVuYW1lKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
package/esm2020/public-api.mjs
CHANGED
@@ -5,4 +5,6 @@ export * from './lib/reports-lib.service';
|
|
5
5
|
export * from './lib/reports-lib.component';
|
6
6
|
export * from './lib/reports-lib.module';
|
7
7
|
export * from './lib/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component';
|
8
|
-
|
8
|
+
export * from './lib/services/config.service';
|
9
|
+
export * from './lib/models/app-config.model';
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBSUgsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx3RkFBd0YsQ0FBQztBQUN2RyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcmVwb3J0cy1saWJcclxuICovXHJcblxyXG5cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlcG9ydHMtbGliLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXBvcnRzLWxpYi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXBvcnRzLWxpYi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0L2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBwLWNvbmZpZy5tb2RlbCc7XHJcbiAiXX0=
|