@sachin9822/reports-lib 0.0.94 → 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 +4 -16
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/sachin9822-reports-lib.mjs +78 -36
- package/fesm2015/sachin9822-reports-lib.mjs.map +1 -1
- package/fesm2020/sachin9822-reports-lib.mjs +81 -39
- 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=
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Injectable } from '@angular/core';
|
2
|
-
import
|
2
|
+
import jsPDF from 'jspdf';
|
3
3
|
import 'jspdf-autotable';
|
4
4
|
import * as ExcelJS from 'exceljs';
|
5
5
|
import * as FileSaver from 'file-saver';
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRzLWxpYi9zcmMvbGliL3NoYXJlZC9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQzs7QUFXeEMsTUFBTSxPQUFPLGFBQWE7SUFPeEI7UUFMaUIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFJbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDZDQUE2QyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xGLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDREQUE0RDtJQUNwRCxpQkFBaUIsQ0FBQyxTQUFpQjtRQUN6QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDOUIsR0FBRyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7WUFFcEIsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2hCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDaEIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxR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QztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBqc1BERiB9IGZyb20gJ2pzcGRmJztcbmltcG9ydCAnanNwZGYtYXV0b3RhYmxlJztcbmltcG9ydCAqIGFzIEV4Y2VsSlMgZnJvbSAnZXhjZWxqcyc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5cbmRlY2xhcmUgbW9kdWxlICdqc3BkZicge1xuICBpbnRlcmZhY2UganNQREYge1xuICAgIGF1dG9UYWJsZTogKG9wdGlvbnM6IGFueSkgPT4ganNQREY7XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0U2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwZGZGb250U2l6ZSA9IDEwO1xuICBwcml2YXRlIHJlYWRvbmx5IHBkZkxpbmVIZWlnaHQgPSA3O1xuICBwcml2YXRlIHJlYWRvbmx5IHBkZkxlZnRNYXJnaW4gPSAxNTtcbiAgcHJpdmF0ZSBsb2dvQmFzZTY0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2FkSW1hZ2VBc0Jhc2U2NCgnYXNzZXRzL3JlcG9ydHMtbGliL2Fzc2V0cy9pbWFnZXMvWE1Mb2dvLnBuZycpLnRoZW4oYmFzZTY0ID0+IHtcbiAgICAgIHRoaXMubG9nb0Jhc2U2NCA9IGJhc2U2NDtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBVdGlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBwcml2YXRlIGxvYWRJbWFnZUFzQmFzZTY0KGltYWdlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWcuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICAgIGltZy5zcmMgPSBpbWFnZVBhdGg7XG5cbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gNjtcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IGltZy53aWR0aCAqIHNjYWxlO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaW1nLmhlaWdodCAqIHNjYWxlO1xuXG4gICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICBpZiAoY3R4KSB7XG4gICAgICAgICAgY3R4LnNjYWxlKHNjYWxlLCBzY2FsZSk7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xuICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycsIDEuMCk7IC8vIDEuMCA9IGhpZ2hlc3QgcXVhbGl0eVxuICAgICAgICAgIHJlc29sdmUoYmFzZTY0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QoJ0ZhaWxlZCB0byBnZXQgY2FudmFzIGNvbnRleHQuJyk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGltZy5vbmVycm9yID0gKCkgPT4gcmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBpbWFnZTogJyArIGltYWdlUGF0aCk7XG4gICAgfSk7XG4gIH1cblxuICBmb3JtYXREYXRlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIGlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/ICcnIDpcbiAgICAgIGAke2RhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0vJHsoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS8ke2RhdGUuZ2V0RnVsbFllYXIoKX1gO1xuICB9XG4gIGZvcm1hdERhdGVUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtkYXRlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9L2AgK1xuICAgICAgYCR7KGRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0vYCArXG4gICAgICBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9IGAgK1xuICAgICAgYCR7ZGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06YCArXG4gICAgICBgJHtkYXRlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxuXG4gIGdlbmVyYXRlUmVwb3J0TWV0YWRhdGEobWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSk6IFtzdHJpbmcsIHN0cmluZ11bXSB7XG4gICAgcmV0dXJuIG1ldGFkYXRhLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCk7XG4gIH1cblxuICBwcmVwYXJlRXhwb3J0VGFibGUoZGF0YTogYW55W10sIGNvbHVtbkRlZnM6IGFueVtdLCBvcHRpb25zOiB7XG4gICAgZXhjbHVkZUZpZWxkcz86IHN0cmluZ1tdLFxuICAgIGN1cnJlbmN5RmllbGRzPzogc3RyaW5nW11cbiAgfSA9IHt9KTogeyBoZWFkZXJzOiBzdHJpbmdbXSwgcm93czogYW55W11bXSB9IHtcbiAgICBjb25zdCB7IGV4Y2x1ZGVGaWVsZHMgPSBbJ3Nybm8nLCAnc2VyaWFsJywgJ2FjdGlvbiddLCBjdXJyZW5jeUZpZWxkcyA9IFtdIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgZmlsdGVyZWRDb2x1bW5zID0gY29sdW1uRGVmcy5maWx0ZXIoY29sID0+XG4gICAgICBjb2wuZmllbGQgJiZcbiAgICAgICFleGNsdWRlRmllbGRzLnNvbWUoZXggPT4gY29sLmZpZWxkLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZXgpKSAmJlxuICAgICAgIWV4Y2x1ZGVGaWVsZHMuc29tZShleCA9PiBjb2wuaGVhZGVyTmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhleCkpXG4gICAgKTtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBbJ1NyIE5vJywgLi4uZmlsdGVyZWRDb2x1bW5zLm1hcChjb2wgPT4gY29sLmhlYWRlck5hbWUgfHwgY29sLmZpZWxkKV07XG5cbiAgICBjb25zdCByb3dzID0gZGF0YS5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBmaWx0ZXJlZENvbHVtbnMubWFwKGNvbCA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHJvd1tjb2wuZmllbGRdO1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBjb2wuZmllbGQ/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG5cbiAgICAgICAgLy8gSGFuZGxlIHZhcmlvdXMgZGF0ZSBmaWVsZCBuYW1lc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKGZpZWxkTmFtZS5pbmNsdWRlcygnZGF0ZScpIHx8XG4gICAgICAgICAgICBmaWVsZE5hbWUuaW5jbHVkZXMoJ2J1c2luZXNzZGF0ZScpKSAmJlxuICAgICAgICAgIHZhbHVlXG4gICAgICAgICkge1xuICAgICAgICAgIHZhbHVlID0gdGhpcy5mb3JtYXREYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvcm1hdCBjdXJyZW5jeSBmaWVsZHNcbiAgICAgICAgaWYgKGN1cnJlbmN5RmllbGRzLmluY2x1ZGVzKGNvbC5maWVsZCkgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSkudG9GaXhlZCgzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUgPz8gJyc7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBbaW5kZXggKyAxLCAuLi5yb3dEYXRhXTtcbiAgICB9KTtcbiAgICByZXR1cm4geyBoZWFkZXJzLCByb3dzIH07XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUERGIFVuaXZlcnNhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgYXN5bmMgZXhwb3J0VG9QZGZVbml2ZXJzYWwodGl0bGU6IHN0cmluZywgbWV0YWRhdGE6IFtzdHJpbmcsIHN0cmluZ11bXSwgaGVhZGVyczogc3RyaW5nW10sIHJvd3M6IGFueVtdW10sIGZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkb2MgPSBuZXcganNQREYoeyBvcmllbnRhdGlvbjogJ2xhbmRzY2FwZScsIHVuaXQ6ICdtbScsIGZvcm1hdDogWzQwMCwgMjEwXSB9KTtcblxuICAgIGNvbnN0IGxvZ29XaWR0aCA9IDM4LjQsIGxvZ29IZWlnaHQgPSAxNy41LCBsb2dvWCA9IDE1LCBsb2dvWSA9IDEwO1xuICAgIGNvbnN0IHBhZ2VXaWR0aCA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aDtcbiAgICBjb25zdCB0aXRsZVkgPSAxODtcblxuICAgIGlmICh0aGlzLmxvZ29CYXNlNjQpIHtcbiAgICAgIGRvYy5hZGRJbWFnZSh0aGlzLmxvZ29CYXNlNjQsICdQTkcnLCBsb2dvWCwgbG9nb1ksIGxvZ29XaWR0aCwgbG9nb0hlaWdodCk7XG4gICAgfVxuXG4gICAgZG9jLnNldEZvbnRTaXplKDE1KTtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2MudGV4dCh0aXRsZSwgcGFnZVdpZHRoIC8gMiwgdGl0bGVZLCB7IGFsaWduOiAnY2VudGVyJyB9KTtcblxuICAgIGxldCBjdXJyZW50WSA9IHRpdGxlWSArIDE0O1xuICAgIGRvYy5zZXRGb250U2l6ZSh0aGlzLnBkZkZvbnRTaXplKTtcbiAgICBtZXRhZGF0YS5mb3JFYWNoKChbbGFiZWwsIHZhbHVlXSwgaSkgPT4ge1xuICAgICAgY29uc3QgeSA9IGN1cnJlbnRZICsgaSAqIHRoaXMucGRmTGluZUhlaWdodDtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnYm9sZCcpO1xuICAgICAgZG9jLnRleHQobGFiZWwsIHRoaXMucGRmTGVmdE1hcmdpbiwgeSk7XG4gICAgICBjb25zdCBsYWJlbFdpZHRoID0gZG9jLmdldFRleHRXaWR0aChsYWJlbCArICcgJyk7XG4gICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ25vcm1hbCcpO1xuICAgICAgZG9jLnRleHQodmFsdWUsIHRoaXMucGRmTGVmdE1hcmdpbiArIGxhYmVsV2lkdGgsIHkpO1xuICAgIH0pO1xuICAgIGN1cnJlbnRZICs9IG1ldGFkYXRhLmxlbmd0aCAqIHRoaXMucGRmTGluZUhlaWdodCArIDU7XG5cbiAgICBjb25zdCBjb2x1bW5TdHlsZXM6IHsgW2tleTogbnVtYmVyXTogYW55IH0gPSB7fTtcbiAgICBoZWFkZXJzLmZvckVhY2goKF8sIGkpID0+IGNvbHVtblN0eWxlc1tpXSA9IHsgY2VsbFdpZHRoOiAnYXV0bycgfSk7XG5cbiAgICBkb2MuYXV0b1RhYmxlKHtcbiAgICAgIGhlYWQ6IFtoZWFkZXJzXSxcbiAgICAgIGJvZHk6IHJvd3MsXG4gICAgICBzdGFydFk6IGN1cnJlbnRZLFxuICAgICAgdGhlbWU6ICdncmlkJyxcbiAgICAgIGhlYWRTdHlsZXM6IHtcbiAgICAgICAgZmlsbENvbG9yOiBbMjIwLCAyMjAsIDIyMF0sIHRleHRDb2xvcjogMCxcbiAgICAgICAgZm9udFN0eWxlOiAnYm9sZCcsIGZvbnRTaXplOiA5LCBoYWxpZ246ICdjZW50ZXInLFxuICAgICAgfSxcbiAgICAgIGJvZHlTdHlsZXM6IHsgZm9udFNpemU6IDgsIGZpbGxDb2xvcjogWzI1NSwgMjU1LCAyNTVdLCB0ZXh0Q29sb3I6IFswLCAwLCAwXSB9LFxuICAgICAgc3R5bGVzOiB7IGNlbGxQYWRkaW5nOiAyLCBvdmVyZmxvdzogJ2xpbmVicmVhaycsIG1pbkNlbGxIZWlnaHQ6IDYgfSxcbiAgICAgIGNvbHVtblN0eWxlc1xuICAgIH0pO1xuXG4gICAgZG9jLnNhdmUoZmlsZU5hbWUpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV4Y2VsIFVuaXZlcnNhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgZXhwb3J0VG9FeGNlbFVuaXZlcnNhbCh0aXRsZTogc3RyaW5nLCBtZXRhZGF0YTogW3N0cmluZywgc3RyaW5nXVtdLCBoZWFkZXJzOiBzdHJpbmdbXSwgcm93czogYW55W11bXSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHdvcmtib29rID0gbmV3IEV4Y2VsSlMuV29ya2Jvb2soKTtcbiAgICBjb25zdCB3b3Jrc2hlZXQgPSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQodGl0bGUpO1xuXG4gICAgbGV0IGN1cnJlbnRSb3cgPSAxO1xuXG4gICAgLy8gQWRkIGltYWdlIGlmIGF2YWlsYWJsZVxuICAgIGlmICh0aGlzLmxvZ29CYXNlNjQpIHtcbiAgICAgIGNvbnN0IGJhc2U2NERhdGEgPSB0aGlzLmxvZ29CYXNlNjQucmVwbGFjZSgvXmRhdGE6aW1hZ2VcXC9cXHcrO2Jhc2U2NCwvLCAnJyk7XG4gICAgICBjb25zdCBpbWFnZUlkID0gd29ya2Jvb2suYWRkSW1hZ2Uoe1xuICAgICAgICBiYXNlNjQ6IGJhc2U2NERhdGEsXG4gICAgICAgIGV4dGVuc2lvbjogJ3BuZycsXG4gICAgICB9KTtcblxuICAgICAgLy8gUGxhY2UgaW1hZ2UgYXQgdG9wLWxlZnQgKGUuZy4sIEExOkM0KVxuICAgICAgd29ya3NoZWV0LmFkZEltYWdlKGltYWdlSWQsIHtcbiAgICAgICAgdGw6IHsgY29sOiAwLCByb3c6IDAgfSxcbiAgICAgICAgZXh0OiB7IHdpZHRoOiAxNDUsIGhlaWdodDogNjYgfSxcbiAgICAgICAgZWRpdEFzOiAnb25lQ2VsbCdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aXRsZSBhbGlnbmVkIGluIG1pZGRsZSBob3Jpem9udGFsbHkgKG1lcmdlZCBhY3Jvc3MgYWxsIGNvbHVtbnMpXG4gICAgY29uc3QgdGl0bGVSb3cgPSB3b3Jrc2hlZXQuZ2V0Um93KGN1cnJlbnRSb3cpO1xuICAgIHRpdGxlUm93LmdldENlbGwoNCkudmFsdWUgPSB0aXRsZTtcbiAgICB0aXRsZVJvdy5nZXRDZWxsKDQpLmZvbnQgPSB7IGJvbGQ6IHRydWUsIHNpemU6IDE2IH07XG4gICAgdGl0bGVSb3cuZ2V0Q2VsbCg0KS5hbGlnbm1lbnQgPSB7IHZlcnRpY2FsOiAnbWlkZGxlJywgaG9yaXpvbnRhbDogJ2xlZnQnIH07XG5cbiAgICBjb25zdCB0aXRsZU1lcmdlRW5kID0gU3RyaW5nLmZyb21DaGFyQ29kZSg2NCArIGhlYWRlcnMubGVuZ3RoKTtcbiAgICB3b3Jrc2hlZXQubWVyZ2VDZWxscyhgRCR7Y3VycmVudFJvd306JHt0aXRsZU1lcmdlRW5kfSR7Y3VycmVudFJvd31gKTtcbiAgICBjdXJyZW50Um93ICs9IDM7IC8vIE1vdmUgcGFzdCBpbWFnZSBzcGFjZVxuXG4gICAgLy8gQWRkIG1ldGFkYXRhXG4gICAgbWV0YWRhdGEuZm9yRWFjaCgoW2xhYmVsLCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IHJvdyA9IHdvcmtzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcbiAgICAgIGNvbnN0IGNlbGwgPSByb3cuZ2V0Q2VsbCgxKTtcbiAgICAgIGNlbGwudmFsdWUgPSB7XG4gICAgICAgIHJpY2hUZXh0OiBbXG4gICAgICAgICAgeyB0ZXh0OiBgJHtsYWJlbH06IGAsIGZvbnQ6IHsgYm9sZDogdHJ1ZSB9IH0sXG4gICAgICAgICAgeyB0ZXh0OiB2YWx1ZSA/PyAnJywgZm9udDogeyBib2xkOiBmYWxzZSB9IH1cbiAgICAgICAgXVxuICAgICAgfTtcbiAgICAgIHdvcmtzaGVldC5tZXJnZUNlbGxzKGBBJHtyb3cubnVtYmVyfToke1N0cmluZy5mcm9tQ2hhckNvZGUoNjQgKyBoZWFkZXJzLmxlbmd0aCl9JHtyb3cubnVtYmVyfWApO1xuICAgIH0pO1xuXG4gICAgd29ya3NoZWV0LmFkZFJvdyhbXSk7XG4gICAgY3VycmVudFJvdysrO1xuXG4gICAgLy8gQWRkIHRhYmxlIGhlYWRlciByb3dcbiAgICBjb25zdCBoZWFkZXJSb3cgPSB3b3Jrc2hlZXQuZ2V0Um93KGN1cnJlbnRSb3crKyk7XG4gICAgaGVhZGVycy5mb3JFYWNoKChoZWFkZXIsIGkpID0+IHtcbiAgICAgIGNvbnN0IGNlbGwgPSBoZWFkZXJSb3cuZ2V0Q2VsbChpICsgMSk7XG4gICAgICBjZWxsLnZhbHVlID0gaGVhZGVyO1xuICAgICAgY2VsbC5mb250ID0geyBib2xkOiB0cnVlIH07XG4gICAgICBjZWxsLmZpbGwgPSB7IHR5cGU6ICdwYXR0ZXJuJywgcGF0dGVybjogJ3NvbGlkJywgZmdDb2xvcjogeyBhcmdiOiAnRDlEOUQ5JyB9IH07XG4gICAgICBjZWxsLmFsaWdubWVudCA9IHsgdmVydGljYWw6ICdtaWRkbGUnLCBob3Jpem9udGFsOiAnY2VudGVyJyB9O1xuICAgICAgY2VsbC5ib3JkZXIgPSB7XG4gICAgICAgIHRvcDogeyBzdHlsZTogJ3RoaW4nIH0sXG4gICAgICAgIGJvdHRvbTogeyBzdHlsZTogJ3RoaW4nIH0sXG4gICAgICAgIGxlZnQ6IHsgc3R5bGU6ICd0aGluJyB9LFxuICAgICAgICByaWdodDogeyBzdHlsZTogJ3RoaW4nIH1cbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBkYXRhU3RhcnRSb3cgPSBjdXJyZW50Um93O1xuICAgIHJvd3MuZm9yRWFjaChyb3dEYXRhID0+IHtcbiAgICAgIGNvbnN0IHJvdyA9IHdvcmtzaGVldC5nZXRSb3coY3VycmVudFJvdysrKTtcbiAgICAgIHJvd0RhdGEuZm9yRWFjaCgodmFsdWUsIGkpID0+IHtcbiAgICAgICAgY29uc3QgY2VsbCA9IHJvdy5nZXRDZWxsKGkgKyAxKTtcbiAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBjZWxsLmJvcmRlciA9IHtcbiAgICAgICAgICB0b3A6IHsgc3R5bGU6ICd0aGluJyB9LFxuICAgICAgICAgIGJvdHRvbTogeyBzdHlsZTogJ3RoaW4nIH0sXG4gICAgICAgICAgbGVmdDogeyBzdHlsZTogJ3RoaW4nIH0sXG4gICAgICAgICAgcmlnaHQ6IHsgc3R5bGU6ICd0aGluJyB9XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIEF1dG8gY29sdW1uIHdpZHRoc1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGhlYWRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBtYXhMZW5ndGggPSBoZWFkZXJzW2kgLSAxXS5sZW5ndGg7XG4gICAgICBmb3IgKGxldCByb3dOdW0gPSBkYXRhU3RhcnRSb3c7IHJvd051bSA8PSB3b3Jrc2hlZXQubGFzdFJvdyEubnVtYmVyOyByb3dOdW0rKykge1xuICAgICAgICBjb25zdCB2YWwgPSB3b3Jrc2hlZXQuZ2V0Um93KHJvd051bSkuZ2V0Q2VsbChpKS52YWx1ZT8udG9TdHJpbmcoKSB8fCAnJztcbiAgICAgICAgbWF4TGVuZ3RoID0gTWF0aC5tYXgobWF4TGVuZ3RoLCB2YWwubGVuZ3RoKTtcbiAgICAgIH1cbiAgICAgIHdvcmtzaGVldC5nZXRDb2x1bW4oaSkud2lkdGggPSBtYXhMZW5ndGggKyAyO1xuICAgIH1cblxuICAgIHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKS50aGVuKGJ1ZmZlciA9PiB7XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0J1xuICAgICAgfSk7XG4gICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIGZpbGVOYW1lKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENTViBVbml2ZXJzYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGV4cG9ydFRvQ3N2VW5pdmVyc2FsKHRpdGxlOiBzdHJpbmcsIG1ldGFkYXRhOiBbc3RyaW5nLCBzdHJpbmddW10sIGhlYWRlcnM6IHN0cmluZ1tdLCByb3dzOiBhbnlbXVtdLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YVJvd3MgPSBtZXRhZGF0YS5tYXAoKFtrLCB2XSkgPT4gW2Ake2t9OiAke3Z9YF0pO1xuICAgIGNvbnN0IGNzdkNvbnRlbnQgPSBbXG4gICAgICBbdGl0bGVdLFxuICAgICAgLi4ubWV0YVJvd3MsXG4gICAgICBbXSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICAuLi5yb3dzLm1hcChyb3cgPT4gcm93Lm1hcCh2YWx1ZSA9PiBgXCIke3ZhbHVlfVwiYCkpXG4gICAgXS5tYXAoZSA9PiBlLmpvaW4oJywnKSkuam9pbignXFxuJyk7XG5cbiAgICB0aGlzLmRvd25sb2FkRmlsZShjc3ZDb250ZW50LCBmaWxlTmFtZSwgJ3RleHQvY3N2Jyk7XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkRmlsZShkYXRhOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHsgdHlwZSB9KTtcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgbGluay5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gIH1cblxufVxuIl19
|
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=
|