@acorex/core 7.1.0 → 7.1.1

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.
Files changed (123) hide show
  1. package/config/index.d.ts +5 -5
  2. package/config/public-api.d.ts +1 -1
  3. package/config/src/configs.d.ts +9 -9
  4. package/dateTime/index.d.ts +5 -5
  5. package/dateTime/public-api.d.ts +5 -5
  6. package/dateTime/src/datetime.class.d.ts +100 -100
  7. package/dateTime/src/datetime.module.d.ts +8 -8
  8. package/dateTime/src/datetime.pipe.d.ts +8 -8
  9. package/dateTime/src/georgian.calendar.d.ts +20 -20
  10. package/dateTime/src/jalali.calendar.d.ts +35 -35
  11. package/esm2022/acorex-core.mjs +4 -4
  12. package/esm2022/config/acorex-core-config.mjs +4 -4
  13. package/esm2022/config/public-api.mjs +1 -1
  14. package/esm2022/config/src/configs.mjs +25 -24
  15. package/esm2022/dateTime/acorex-core-dateTime.mjs +4 -4
  16. package/esm2022/dateTime/public-api.mjs +5 -5
  17. package/esm2022/dateTime/src/datetime.class.mjs +294 -294
  18. package/esm2022/dateTime/src/datetime.module.mjs +40 -39
  19. package/esm2022/dateTime/src/datetime.pipe.mjs +27 -26
  20. package/esm2022/dateTime/src/georgian.calendar.mjs +186 -186
  21. package/esm2022/dateTime/src/jalali.calendar.mjs +356 -356
  22. package/esm2022/events/acorex-core-events.mjs +4 -4
  23. package/esm2022/events/public-api.mjs +1 -1
  24. package/esm2022/events/src/event.service.mjs +35 -34
  25. package/esm2022/file/acorex-core-file.mjs +4 -4
  26. package/esm2022/file/public-api.mjs +4 -4
  27. package/esm2022/file/src/file-download-ref.class.mjs +12 -12
  28. package/esm2022/file/src/file-download-result.class.mjs +46 -46
  29. package/esm2022/file/src/file-upload-ref.class.mjs +12 -12
  30. package/esm2022/file/src/file.service.mjs +103 -102
  31. package/esm2022/http/acorex-core-http.mjs +4 -4
  32. package/esm2022/http/public-api.mjs +5 -5
  33. package/esm2022/http/src/http-error.class.mjs +1 -1
  34. package/esm2022/http/src/http-events.interceptor.mjs +2 -2
  35. package/esm2022/http/src/http-request.class.mjs +1 -1
  36. package/esm2022/http/src/http-result.class.mjs +24 -24
  37. package/esm2022/http/src/http.module.mjs +30 -29
  38. package/esm2022/http/src/http.service.mjs +152 -151
  39. package/esm2022/image/acorex-core-image.mjs +4 -4
  40. package/esm2022/image/public-api.mjs +1 -1
  41. package/esm2022/image/src/image.service.mjs +44 -43
  42. package/esm2022/pipes/acorex-core-pipes.mjs +4 -4
  43. package/esm2022/pipes/public-api.mjs +2 -2
  44. package/esm2022/pipes/src/pipes.module.mjs +20 -19
  45. package/esm2022/pipes/src/safe.pipe.mjs +32 -31
  46. package/esm2022/platform/acorex-core-platform.mjs +4 -4
  47. package/esm2022/platform/public-api.mjs +1 -1
  48. package/esm2022/platform/src/platform.service.mjs +152 -159
  49. package/esm2022/public-api.mjs +4 -4
  50. package/esm2022/translation/acorex-core-translation.mjs +4 -4
  51. package/esm2022/translation/public-api.mjs +3 -3
  52. package/esm2022/translation/src/translation.module.mjs +19 -18
  53. package/esm2022/translation/src/translator.mjs +44 -43
  54. package/esm2022/translation/src/translator.pipe.mjs +16 -15
  55. package/esm2022/utils/acorex-core-utils.mjs +4 -4
  56. package/esm2022/utils/public-api.mjs +5 -5
  57. package/esm2022/utils/src/color-util.mjs +114 -114
  58. package/esm2022/utils/src/drawing-util.mjs +29 -29
  59. package/esm2022/utils/src/html-util.mjs +15 -15
  60. package/esm2022/utils/src/object-util.mjs +38 -38
  61. package/esm2022/utils/src/string-util.mjs +18 -18
  62. package/events/index.d.ts +5 -5
  63. package/events/public-api.d.ts +1 -1
  64. package/events/src/event.service.d.ts +9 -9
  65. package/fesm2022/acorex-core-config.mjs +22 -22
  66. package/fesm2022/acorex-core-config.mjs.map +1 -1
  67. package/fesm2022/acorex-core-dateTime.mjs +882 -882
  68. package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
  69. package/fesm2022/acorex-core-events.mjs +32 -32
  70. package/fesm2022/acorex-core-events.mjs.map +1 -1
  71. package/fesm2022/acorex-core-file.mjs +162 -162
  72. package/fesm2022/acorex-core-file.mjs.map +1 -1
  73. package/fesm2022/acorex-core-http.mjs +190 -190
  74. package/fesm2022/acorex-core-http.mjs.map +1 -1
  75. package/fesm2022/acorex-core-image.mjs +41 -41
  76. package/fesm2022/acorex-core-image.mjs.map +1 -1
  77. package/fesm2022/acorex-core-pipes.mjs +41 -41
  78. package/fesm2022/acorex-core-pipes.mjs.map +1 -1
  79. package/fesm2022/acorex-core-platform.mjs +147 -155
  80. package/fesm2022/acorex-core-platform.mjs.map +1 -1
  81. package/fesm2022/acorex-core-translation.mjs +63 -63
  82. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  83. package/fesm2022/acorex-core-utils.mjs +209 -209
  84. package/fesm2022/acorex-core.mjs +5 -5
  85. package/file/index.d.ts +5 -5
  86. package/file/public-api.d.ts +4 -4
  87. package/file/src/file-download-ref.class.d.ts +6 -6
  88. package/file/src/file-download-result.class.d.ts +8 -8
  89. package/file/src/file-upload-ref.class.d.ts +5 -5
  90. package/file/src/file.service.d.ts +18 -18
  91. package/http/index.d.ts +5 -5
  92. package/http/public-api.d.ts +5 -5
  93. package/http/src/http-error.class.d.ts +7 -7
  94. package/http/src/http-events.interceptor.d.ts +10 -10
  95. package/http/src/http-request.class.d.ts +14 -14
  96. package/http/src/http-result.class.d.ts +11 -11
  97. package/http/src/http.module.d.ts +8 -8
  98. package/http/src/http.service.d.ts +23 -23
  99. package/image/index.d.ts +5 -5
  100. package/image/public-api.d.ts +1 -1
  101. package/image/src/image.service.d.ts +12 -12
  102. package/index.d.ts +5 -5
  103. package/package.json +7 -7
  104. package/pipes/index.d.ts +5 -5
  105. package/pipes/public-api.d.ts +2 -2
  106. package/pipes/src/pipes.module.d.ts +8 -8
  107. package/pipes/src/safe.pipe.d.ts +10 -10
  108. package/platform/index.d.ts +5 -5
  109. package/platform/public-api.d.ts +1 -1
  110. package/platform/src/platform.service.d.ts +26 -26
  111. package/public-api.d.ts +1 -1
  112. package/translation/index.d.ts +5 -5
  113. package/translation/public-api.d.ts +3 -3
  114. package/translation/src/translation.module.d.ts +7 -7
  115. package/translation/src/translator.d.ts +11 -11
  116. package/translation/src/translator.pipe.d.ts +7 -7
  117. package/utils/index.d.ts +5 -5
  118. package/utils/public-api.d.ts +5 -5
  119. package/utils/src/color-util.d.ts +23 -23
  120. package/utils/src/drawing-util.d.ts +18 -18
  121. package/utils/src/html-util.d.ts +4 -4
  122. package/utils/src/object-util.d.ts +4 -4
  123. package/utils/src/string-util.d.ts +6 -6
@@ -1,29 +1,30 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { HttpClientModule } from '@angular/common/http';
4
- import { AXHttpService } from './http.service';
5
- import * as i0 from "@angular/core";
6
- export class AXHttpModule {
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, imports: [CommonModule,
9
- HttpClientModule], exports: [HttpClientModule] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, providers: [
11
- AXHttpService
12
- ], imports: [CommonModule,
13
- HttpClientModule, HttpClientModule] });
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, decorators: [{
16
- type: NgModule,
17
- args: [{
18
- declarations: [],
19
- imports: [
20
- CommonModule,
21
- HttpClientModule
22
- ],
23
- exports: [HttpClientModule],
24
- providers: [
25
- AXHttpService
26
- ]
27
- }]
28
- }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9odHRwL3NyYy9odHRwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWMvQyxNQUFNLE9BQU8sWUFBWTt1R0FBWixZQUFZO3dHQUFaLFlBQVksWUFSckIsWUFBWTtZQUNaLGdCQUFnQixhQUVSLGdCQUFnQjt3R0FLZixZQUFZLGFBSlo7WUFDVCxhQUFhO1NBQ2QsWUFOQyxZQUFZO1lBQ1osZ0JBQWdCLEVBRVIsZ0JBQWdCOzsyRkFLZixZQUFZO2tCQVh4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixTQUFTLEVBQUU7d0JBQ1QsYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFYSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHAuc2VydmljZSc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEFYSHR0cFNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEh0dHBNb2R1bGUge1xyXG4gIC8vIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xyXG4gIC8vICAgcmV0dXJuIHtcclxuICAvLyAgICAgbmdNb2R1bGU6IEFYSHR0cE1vZHVsZSxcclxuICAvLyAgICAgcHJvdmlkZXJzOiBbQVhIdHRwU2VydmljZV1cclxuICAvLyAgIH07XHJcbiAgLy8gfVxyXG59Il19
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { HttpClientModule } from '@angular/common/http';
4
+ import { AXHttpService } from './http.service';
5
+ import * as i0 from "@angular/core";
6
+ class AXHttpModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, imports: [CommonModule,
9
+ HttpClientModule], exports: [HttpClientModule] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, providers: [
11
+ AXHttpService
12
+ ], imports: [CommonModule,
13
+ HttpClientModule, HttpClientModule] });
14
+ }
15
+ export { AXHttpModule };
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [],
20
+ imports: [
21
+ CommonModule,
22
+ HttpClientModule
23
+ ],
24
+ exports: [HttpClientModule],
25
+ providers: [
26
+ AXHttpService
27
+ ]
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9odHRwL3NyYy9odHRwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUcvQyxNQVdhLFlBQVk7dUdBQVosWUFBWTt3R0FBWixZQUFZLFlBUnJCLFlBQVk7WUFDWixnQkFBZ0IsYUFFUixnQkFBZ0I7d0dBS2YsWUFBWSxhQUpaO1lBQ1QsYUFBYTtTQUNkLFlBTkMsWUFBWTtZQUNaLGdCQUFnQixFQUVSLGdCQUFnQjs7U0FLZixZQUFZOzJGQUFaLFlBQVk7a0JBWHhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFNBQVMsRUFBRTt3QkFDVCxhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQVhIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0h0dHBDbGllbnRNb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQVhIdHRwU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYSHR0cE1vZHVsZSB7XHJcbiAgLy8gc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XHJcbiAgLy8gICByZXR1cm4ge1xyXG4gIC8vICAgICBuZ01vZHVsZTogQVhIdHRwTW9kdWxlLFxyXG4gIC8vICAgICBwcm92aWRlcnM6IFtBWEh0dHBTZXJ2aWNlXVxyXG4gIC8vICAgfTtcclxuICAvLyB9XHJcbn0iXX0=
@@ -1,151 +1,152 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpHeaders, HttpParams } from '@angular/common/http';
3
- import { HttpResult } from './http-result.class';
4
- import { AX_HTTP_EVENT_INTERCEPTOR } from './http-events.interceptor';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- // import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';
8
- // import { of, concat, throwError } from 'rxjs';
9
- export class AXHttpService {
10
- http;
11
- injector;
12
- interceptor;
13
- constructor(http, injector) {
14
- this.http = http;
15
- this.injector = injector;
16
- this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);
17
- }
18
- get(url, config = {}) {
19
- config.url = url;
20
- config.method = "get";
21
- return this.request(config);
22
- }
23
- post(url, config = {}) {
24
- config.url = url;
25
- config.method = "post";
26
- return this.request(config);
27
- }
28
- delete(url, config = {}) {
29
- config.url = url;
30
- config.method = "delete";
31
- return this.request(config);
32
- }
33
- put(url, config = {}) {
34
- config.url = url;
35
- config.method = "put";
36
- return this.request(config);
37
- }
38
- request(config) {
39
- return new HttpResult((result, error, complete) => {
40
- this.handleBegin(config).then(c => {
41
- this.http
42
- //TODO: check ts error
43
- //@ts-ignore
44
- .request(config.method, config.url, this.mapOptions(config))
45
- //.pipe(this.retry)
46
- .subscribe(data => {
47
- this.handleResult(data, result, complete, config);
48
- }, c => {
49
- this.handleError(c, error, complete, config);
50
- });
51
- });
52
- });
53
- }
54
- handleResult(data, result, complete, config) {
55
- if (this.interceptor) {
56
- this.interceptor.success(config, data).then(c => {
57
- if (result)
58
- result(c);
59
- this.handleComplete(complete, config);
60
- });
61
- }
62
- else {
63
- //
64
- if (result)
65
- result(data);
66
- this.handleComplete(complete, config);
67
- }
68
- }
69
- handleBegin(config) {
70
- return new Promise((resolve) => {
71
- if (!config.headers)
72
- config.headers = {};
73
- if (!config.params)
74
- config.params = {};
75
- //
76
- if (this.interceptor) {
77
- this.interceptor.begin(config).then(c => {
78
- resolve(c);
79
- });
80
- }
81
- else {
82
- resolve(config);
83
- }
84
- });
85
- }
86
- handleComplete(complete, config) {
87
- if (complete)
88
- complete();
89
- if (this.interceptor)
90
- this.interceptor.complete(config);
91
- }
92
- handleError(c, error, complete, config) {
93
- let r = {
94
- message: c.message,
95
- status: c.status,
96
- code: c.status?.toString(),
97
- handled: false,
98
- error: c.error
99
- };
100
- if (error) {
101
- error(r);
102
- }
103
- if (!r.handled) {
104
- if (this.interceptor)
105
- this.interceptor.error(config, r);
106
- }
107
- this.handleComplete(complete, config);
108
- }
109
- mapOptions(options) {
110
- let headers = new HttpHeaders();
111
- for (const key in options.headers) {
112
- if (options.headers.hasOwnProperty(key)) {
113
- const value = options.headers[key];
114
- headers = headers.set(key, value);
115
- }
116
- }
117
- let params = new HttpParams();
118
- for (const key in options.params) {
119
- if (options.params.hasOwnProperty(key)) {
120
- const value = options.params[key];
121
- params = params.set(key, value);
122
- }
123
- }
124
- return {
125
- headers: headers,
126
- params: params,
127
- body: options.body,
128
- responseType: options.responseType || 'json'
129
- };
130
- // if (options.method == "get") {
131
- // return {
132
- // headers: headers,
133
- // params: params
134
- // };
135
- // }
136
- // else {
137
- // return {
138
- // headers: headers,
139
- // params: params,
140
- // body: options.body
141
- // };
142
- // }
143
- }
144
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
145
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpService, providedIn: 'root' });
146
- }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpService, decorators: [{
148
- type: Injectable,
149
- args: [{ providedIn: 'root' }]
150
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvaHR0cC9zcmMvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxPQUFPLEVBQ0gseUJBQXlCLEVBQzVCLE1BQU0sMkJBQTJCLENBQUM7OztBQUNuQyx1SEFBdUg7QUFDdkgsaURBQWlEO0FBSWpELE1BQU0sT0FBTyxhQUFhO0lBR0Y7SUFBMEI7SUFEdEMsV0FBVyxDQUF5QjtJQUM1QyxZQUFvQixJQUFnQixFQUFVLFFBQWtCO1FBQTVDLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBR0QsR0FBRyxDQUFJLEdBQVcsRUFBRSxTQUErQixFQUFFO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxDQUFJLEdBQVcsRUFBRSxTQUErQixFQUFFO1FBQ2xELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFJLEdBQVcsRUFBRSxTQUErQixFQUFFO1FBQ3BELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsR0FBRyxDQUFJLEdBQVcsRUFBRSxTQUErQixFQUFFO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR0QsT0FBTyxDQUFJLE1BQTRCO1FBQ25DLE9BQU8sSUFBSSxVQUFVLENBQUksQ0FBQyxNQUFPLEVBQUUsS0FBTSxFQUFFLFFBQVMsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM5QixJQUFJLENBQUMsSUFBSTtvQkFDTCxzQkFBc0I7b0JBQ3RCLFlBQVk7cUJBQ1gsT0FBTyxDQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvRCxtQkFBbUI7cUJBQ2xCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RCxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDakQsQ0FBQyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUdPLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUE0QjtRQUNyRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDNUMsSUFBSSxNQUFNO29CQUNOLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQ0k7WUFDRCxFQUFFO1lBQ0YsSUFBSSxNQUFNO2dCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBNEI7UUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztnQkFDZixNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07Z0JBQ2QsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDdkIsRUFBRTtZQUNGLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNwQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFDSTtnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDbEI7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBa0IsRUFBRSxNQUE0QjtRQUNuRSxJQUFJLFFBQVE7WUFDUixRQUFRLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxDQUFvQixFQUFFLEtBQWUsRUFBRSxRQUFrQixFQUFFLE1BQTRCO1FBQ3ZHLElBQUksQ0FBQyxHQUFlO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztZQUNsQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07WUFDaEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1NBQ2pCLENBQUE7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNQLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNaO1FBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxXQUFXO2dCQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sVUFBVSxDQUFDLE9BQTZCO1FBQzVDLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFFaEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQy9CLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTthQUNwQztTQUNKO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ25DO1NBQ0o7UUFDRCxPQUFPO1lBQ0gsT0FBTyxFQUFFLE9BQU87WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksTUFBTTtTQUMvQyxDQUFDO1FBQ0YsaUNBQWlDO1FBQ2pDLGVBQWU7UUFDZiw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLFNBQVM7UUFDVCxJQUFJO1FBQ0osU0FBUztRQUNULGVBQWU7UUFDZiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLDZCQUE2QjtRQUM3QixTQUFTO1FBQ1QsSUFBSTtJQUNSLENBQUM7dUdBakpRLGFBQWE7MkdBQWIsYUFBYSxjQURBLE1BQU07OzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBJbmplY3RGbGFncyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcywgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEh0dHBSZXN1bHQgfSBmcm9tICcuL2h0dHAtcmVzdWx0LmNsYXNzJztcclxuaW1wb3J0IHsgSUh0dHBFcnJvciB9IGZyb20gJy4vaHR0cC1lcnJvci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYSHR0cFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi9odHRwLXJlcXVlc3QuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gICAgQVhfSFRUUF9FVkVOVF9JTlRFUkNFUFRPUiwgQVhIdHRwRXZlbnRJbnRlcmNlcHRvclxyXG59IGZyb20gJy4vaHR0cC1ldmVudHMuaW50ZXJjZXB0b3InO1xyXG4vLyBpbXBvcnQgeyBjYXRjaEVycm9yLCByZXRyeSwgcmV0cnlXaGVuLCBtZXJnZU1hcCwgZGVsYXksIHN3aXRjaE1hcCwgc2NhbiwgdGFrZVdoaWxlLCBmbGF0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG4vLyBpbXBvcnQgeyBvZiwgY29uY2F0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYSHR0cFNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgaW50ZXJjZXB0b3I6IEFYSHR0cEV2ZW50SW50ZXJjZXB0b3I7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcmNlcHRvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYX0hUVFBfRVZFTlRfSU5URVJDRVBUT1IpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXQ8VD4odXJsOiBzdHJpbmcsIGNvbmZpZzogQVhIdHRwUmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBSZXN1bHQ8VD4ge1xyXG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XHJcbiAgICAgICAgY29uZmlnLm1ldGhvZCA9IFwiZ2V0XCI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdChjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHBvc3Q8VD4odXJsOiBzdHJpbmcsIGNvbmZpZzogQVhIdHRwUmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBSZXN1bHQ8VD4ge1xyXG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XHJcbiAgICAgICAgY29uZmlnLm1ldGhvZCA9IFwicG9zdFwiO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGU8VD4odXJsOiBzdHJpbmcsIGNvbmZpZzogQVhIdHRwUmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBSZXN1bHQ8VD4ge1xyXG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XHJcbiAgICAgICAgY29uZmlnLm1ldGhvZCA9IFwiZGVsZXRlXCI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdChjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1dDxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XHJcbiAgICAgICAgY29uZmlnLnVybCA9IHVybDtcclxuICAgICAgICBjb25maWcubWV0aG9kID0gXCJwdXRcIjtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHJlcXVlc3Q8VD4oY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyk6IEh0dHBSZXN1bHQ8VD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cFJlc3VsdDxUPigocmVzdWx0PywgZXJyb3I/LCBjb21wbGV0ZT8pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVCZWdpbihjb25maWcpLnRoZW4oYyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgICAgICAvL1RPRE86IGNoZWNrIHRzIGVycm9yXHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlcXVlc3Q8VD4oY29uZmlnLm1ldGhvZCwgY29uZmlnLnVybCwgdGhpcy5tYXBPcHRpb25zKGNvbmZpZykpXHJcbiAgICAgICAgICAgICAgICAgICAgLy8ucGlwZSh0aGlzLnJldHJ5KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzdWx0KGRhdGEsIHJlc3VsdCwgY29tcGxldGUsIGNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgYyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoYywgZXJyb3IsIGNvbXBsZXRlLCBjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZVJlc3VsdChkYXRhLCByZXN1bHQsIGNvbXBsZXRlLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJjZXB0b3IpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRvci5zdWNjZXNzKGNvbmZpZywgZGF0YSkudGhlbihjID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0KGMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDb21wbGV0ZShjb21wbGV0ZSwgY29uZmlnKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgcmVzdWx0KGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUJlZ2luKGNvbmZpZzogQVhIdHRwUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPEFYSHR0cFJlcXVlc3RPcHRpb25zPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghY29uZmlnLmhlYWRlcnMpXHJcbiAgICAgICAgICAgICAgICBjb25maWcuaGVhZGVycyA9IHt9O1xyXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5wYXJhbXMpXHJcbiAgICAgICAgICAgICAgICBjb25maWcucGFyYW1zID0ge307XHJcbiAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyY2VwdG9yLmJlZ2luKGNvbmZpZykudGhlbihjID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGMpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGNvbmZpZylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVDb21wbGV0ZShjb21wbGV0ZTogRnVuY3Rpb24sIGNvbmZpZzogQVhIdHRwUmVxdWVzdE9wdGlvbnMpIHtcclxuICAgICAgICBpZiAoY29tcGxldGUpXHJcbiAgICAgICAgICAgIGNvbXBsZXRlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJjZXB0b3IpXHJcbiAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3IuY29tcGxldGUoY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGM6IEh0dHBFcnJvclJlc3BvbnNlLCBlcnJvcjogRnVuY3Rpb24sIGNvbXBsZXRlOiBGdW5jdGlvbiwgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucykge1xyXG4gICAgICAgIGxldCByOiBJSHR0cEVycm9yID0ge1xyXG4gICAgICAgICAgICBtZXNzYWdlOiBjLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgIHN0YXR1czogYy5zdGF0dXMsXHJcbiAgICAgICAgICAgIGNvZGU6IGMuc3RhdHVzPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBoYW5kbGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgZXJyb3I6IGMuZXJyb3JcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGVycm9yKHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXIuaGFuZGxlZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnRlcmNlcHRvcilcclxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3IuZXJyb3IoY29uZmlnLCByKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oYW5kbGVDb21wbGV0ZShjb21wbGV0ZSwgY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1hcE9wdGlvbnMob3B0aW9uczogQVhIdHRwUmVxdWVzdE9wdGlvbnMpIHtcclxuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvcHRpb25zLmhlYWRlcnMpIHtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaGVhZGVycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9wdGlvbnMuaGVhZGVyc1trZXldO1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWUpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb3B0aW9ucy5wYXJhbXMpIHtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFyYW1zLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9ucy5wYXJhbXNba2V5XTtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICAgICAgICAgIGJvZHk6IG9wdGlvbnMuYm9keSxcclxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiBvcHRpb25zLnJlc3BvbnNlVHlwZSB8fCAnanNvbidcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIGlmIChvcHRpb25zLm1ldGhvZCA9PSBcImdldFwiKSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybiB7XHJcbiAgICAgICAgLy8gICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgIC8vICAgICAgICAgcGFyYW1zOiBwYXJhbXNcclxuICAgICAgICAvLyAgICAgfTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybiB7XHJcbiAgICAgICAgLy8gICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgIC8vICAgICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICAgICAgLy8gICAgICAgICBib2R5OiBvcHRpb25zLmJvZHlcclxuICAgICAgICAvLyAgICAgfTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG59Il19
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpHeaders, HttpParams } from '@angular/common/http';
3
+ import { HttpResult } from './http-result.class';
4
+ import { AX_HTTP_EVENT_INTERCEPTOR } from './http-events.interceptor';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ // import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';
8
+ // import { of, concat, throwError } from 'rxjs';
9
+ class AXHttpService {
10
+ http;
11
+ injector;
12
+ interceptor;
13
+ constructor(http, injector) {
14
+ this.http = http;
15
+ this.injector = injector;
16
+ this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);
17
+ }
18
+ get(url, config = {}) {
19
+ config.url = url;
20
+ config.method = "get";
21
+ return this.request(config);
22
+ }
23
+ post(url, config = {}) {
24
+ config.url = url;
25
+ config.method = "post";
26
+ return this.request(config);
27
+ }
28
+ delete(url, config = {}) {
29
+ config.url = url;
30
+ config.method = "delete";
31
+ return this.request(config);
32
+ }
33
+ put(url, config = {}) {
34
+ config.url = url;
35
+ config.method = "put";
36
+ return this.request(config);
37
+ }
38
+ request(config) {
39
+ return new HttpResult((result, error, complete) => {
40
+ this.handleBegin(config).then(c => {
41
+ this.http
42
+ //TODO: check ts error
43
+ //@ts-ignore
44
+ .request(config.method, config.url, this.mapOptions(config))
45
+ //.pipe(this.retry)
46
+ .subscribe(data => {
47
+ this.handleResult(data, result, complete, config);
48
+ }, c => {
49
+ this.handleError(c, error, complete, config);
50
+ });
51
+ });
52
+ });
53
+ }
54
+ handleResult(data, result, complete, config) {
55
+ if (this.interceptor) {
56
+ this.interceptor.success(config, data).then(c => {
57
+ if (result)
58
+ result(c);
59
+ this.handleComplete(complete, config);
60
+ });
61
+ }
62
+ else {
63
+ //
64
+ if (result)
65
+ result(data);
66
+ this.handleComplete(complete, config);
67
+ }
68
+ }
69
+ handleBegin(config) {
70
+ return new Promise((resolve) => {
71
+ if (!config.headers)
72
+ config.headers = {};
73
+ if (!config.params)
74
+ config.params = {};
75
+ //
76
+ if (this.interceptor) {
77
+ this.interceptor.begin(config).then(c => {
78
+ resolve(c);
79
+ });
80
+ }
81
+ else {
82
+ resolve(config);
83
+ }
84
+ });
85
+ }
86
+ handleComplete(complete, config) {
87
+ if (complete)
88
+ complete();
89
+ if (this.interceptor)
90
+ this.interceptor.complete(config);
91
+ }
92
+ handleError(c, error, complete, config) {
93
+ let r = {
94
+ message: c.message,
95
+ status: c.status,
96
+ code: c.status?.toString(),
97
+ handled: false,
98
+ error: c.error
99
+ };
100
+ if (error) {
101
+ error(r);
102
+ }
103
+ if (!r.handled) {
104
+ if (this.interceptor)
105
+ this.interceptor.error(config, r);
106
+ }
107
+ this.handleComplete(complete, config);
108
+ }
109
+ mapOptions(options) {
110
+ let headers = new HttpHeaders();
111
+ for (const key in options.headers) {
112
+ if (options.headers.hasOwnProperty(key)) {
113
+ const value = options.headers[key];
114
+ headers = headers.set(key, value);
115
+ }
116
+ }
117
+ let params = new HttpParams();
118
+ for (const key in options.params) {
119
+ if (options.params.hasOwnProperty(key)) {
120
+ const value = options.params[key];
121
+ params = params.set(key, value);
122
+ }
123
+ }
124
+ return {
125
+ headers: headers,
126
+ params: params,
127
+ body: options.body,
128
+ responseType: options.responseType || 'json'
129
+ };
130
+ // if (options.method == "get") {
131
+ // return {
132
+ // headers: headers,
133
+ // params: params
134
+ // };
135
+ // }
136
+ // else {
137
+ // return {
138
+ // headers: headers,
139
+ // params: params,
140
+ // body: options.body
141
+ // };
142
+ // }
143
+ }
144
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
145
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpService, providedIn: 'root' });
146
+ }
147
+ export { AXHttpService };
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXHttpService, decorators: [{
149
+ type: Injectable,
150
+ args: [{ providedIn: 'root' }]
151
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvaHR0cC9zcmMvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxPQUFPLEVBQ0gseUJBQXlCLEVBQzVCLE1BQU0sMkJBQTJCLENBQUM7OztBQUNuQyx1SEFBdUg7QUFDdkgsaURBQWlEO0FBR2pELE1BQ2EsYUFBYTtJQUdGO0lBQTBCO0lBRHRDLFdBQVcsQ0FBeUI7SUFDNUMsWUFBb0IsSUFBZ0IsRUFBVSxRQUFrQjtRQUE1QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUdELEdBQUcsQ0FBSSxHQUFXLEVBQUUsU0FBK0IsRUFBRTtRQUNqRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksQ0FBSSxHQUFXLEVBQUUsU0FBK0IsRUFBRTtRQUNsRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU0sQ0FBSSxHQUFXLEVBQUUsU0FBK0IsRUFBRTtRQUNwRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELEdBQUcsQ0FBSSxHQUFXLEVBQUUsU0FBK0IsRUFBRTtRQUNqRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUdELE9BQU8sQ0FBSSxNQUE0QjtRQUNuQyxPQUFPLElBQUksVUFBVSxDQUFJLENBQUMsTUFBTyxFQUFFLEtBQU0sRUFBRSxRQUFTLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLElBQUk7b0JBQ0wsc0JBQXNCO29CQUN0QixZQUFZO3FCQUNYLE9BQU8sQ0FBSSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDL0QsbUJBQW1CO3FCQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDdEQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUNILElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFHTyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBNEI7UUFDckUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVDLElBQUksTUFBTTtvQkFDTixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUNJO1lBQ0QsRUFBRTtZQUNGLElBQUksTUFBTTtnQkFDTixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQTRCO1FBQzVDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQ2YsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUNkLE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLEVBQUU7WUFDRixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDcEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNmLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQ0k7Z0JBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQ2xCO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWtCLEVBQUUsTUFBNEI7UUFDbkUsSUFBSSxRQUFRO1lBQ1IsUUFBUSxFQUFFLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxXQUFXLENBQUMsQ0FBb0IsRUFBRSxLQUFlLEVBQUUsUUFBa0IsRUFBRSxNQUE0QjtRQUN2RyxJQUFJLENBQUMsR0FBZTtZQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87WUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO1lBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtZQUMxQixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztTQUNqQixDQUFBO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWjtRQUNELElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsV0FBVztnQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxPQUE2QjtRQUM1QyxJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRWhDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUMvQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7YUFDcEM7U0FDSjtRQUNELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzlCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNuQztTQUNKO1FBQ0QsT0FBTztZQUNILE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxJQUFJLE1BQU07U0FDL0MsQ0FBQztRQUNGLGlDQUFpQztRQUNqQyxlQUFlO1FBQ2YsNEJBQTRCO1FBQzVCLHlCQUF5QjtRQUN6QixTQUFTO1FBQ1QsSUFBSTtRQUNKLFNBQVM7UUFDVCxlQUFlO1FBQ2YsNEJBQTRCO1FBQzVCLDBCQUEwQjtRQUMxQiw2QkFBNkI7UUFDN0IsU0FBUztRQUNULElBQUk7SUFDUixDQUFDO3VHQWpKUSxhQUFhOzJHQUFiLGFBQWEsY0FEQSxNQUFNOztTQUNuQixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIEluamVjdEZsYWdzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSHR0cFJlc3VsdCB9IGZyb20gJy4vaHR0cC1yZXN1bHQuY2xhc3MnO1xyXG5pbXBvcnQgeyBJSHR0cEVycm9yIH0gZnJvbSAnLi9odHRwLWVycm9yLmNsYXNzJztcclxuaW1wb3J0IHsgQVhIdHRwUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL2h0dHAtcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7XHJcbiAgICBBWF9IVFRQX0VWRU5UX0lOVEVSQ0VQVE9SLCBBWEh0dHBFdmVudEludGVyY2VwdG9yXHJcbn0gZnJvbSAnLi9odHRwLWV2ZW50cy5pbnRlcmNlcHRvcic7XHJcbi8vIGltcG9ydCB7IGNhdGNoRXJyb3IsIHJldHJ5LCByZXRyeVdoZW4sIG1lcmdlTWFwLCBkZWxheSwgc3dpdGNoTWFwLCBzY2FuLCB0YWtlV2hpbGUsIGZsYXRNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbi8vIGltcG9ydCB7IG9mLCBjb25jYXQsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQVhIdHRwU2VydmljZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBpbnRlcmNlcHRvcjogQVhIdHRwRXZlbnRJbnRlcmNlcHRvcjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICB0aGlzLmludGVyY2VwdG9yID0gdGhpcy5pbmplY3Rvci5nZXQoQVhfSFRUUF9FVkVOVF9JTlRFUkNFUFRPUik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldDxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XHJcbiAgICAgICAgY29uZmlnLnVybCA9IHVybDtcclxuICAgICAgICBjb25maWcubWV0aG9kID0gXCJnZXRcIjtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9zdDxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XHJcbiAgICAgICAgY29uZmlnLnVybCA9IHVybDtcclxuICAgICAgICBjb25maWcubWV0aG9kID0gXCJwb3N0XCI7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdChjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZTxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XHJcbiAgICAgICAgY29uZmlnLnVybCA9IHVybDtcclxuICAgICAgICBjb25maWcubWV0aG9kID0gXCJkZWxldGVcIjtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHV0PFQ+KHVybDogc3RyaW5nLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zID0ge30pOiBIdHRwUmVzdWx0PFQ+IHtcclxuICAgICAgICBjb25maWcudXJsID0gdXJsO1xyXG4gICAgICAgIGNvbmZpZy5tZXRob2QgPSBcInB1dFwiO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoY29uZmlnKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVxdWVzdDxUPihjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKTogSHR0cFJlc3VsdDxUPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwUmVzdWx0PFQ+KChyZXN1bHQ/LCBlcnJvcj8sIGNvbXBsZXRlPykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUJlZ2luKGNvbmZpZykudGhlbihjID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgdHMgZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAucmVxdWVzdDxUPihjb25maWcubWV0aG9kLCBjb25maWcudXJsLCB0aGlzLm1hcE9wdGlvbnMoY29uZmlnKSlcclxuICAgICAgICAgICAgICAgICAgICAvLy5waXBlKHRoaXMucmV0cnkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXN1bHQoZGF0YSwgcmVzdWx0LCBjb21wbGV0ZSwgY29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCBjID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihjLCBlcnJvciwgY29tcGxldGUsIGNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlUmVzdWx0KGRhdGEsIHJlc3VsdCwgY29tcGxldGUsIGNvbmZpZzogQVhIdHRwUmVxdWVzdE9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5pbnRlcmNlcHRvcikge1xyXG4gICAgICAgICAgICB0aGlzLmludGVyY2VwdG9yLnN1Y2Nlc3MoY29uZmlnLCBkYXRhKS50aGVuKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQoYyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpXHJcbiAgICAgICAgICAgICAgICByZXN1bHQoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ29tcGxldGUoY29tcGxldGUsIGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlQmVnaW4oY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8QVhIdHRwUmVxdWVzdE9wdGlvbnM+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFjb25maWcuaGVhZGVycylcclxuICAgICAgICAgICAgICAgIGNvbmZpZy5oZWFkZXJzID0ge307XHJcbiAgICAgICAgICAgIGlmICghY29uZmlnLnBhcmFtcylcclxuICAgICAgICAgICAgICAgIGNvbmZpZy5wYXJhbXMgPSB7fTtcclxuICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJjZXB0b3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3IuYmVnaW4oY29uZmlnKS50aGVuKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoY29uZmlnKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlOiBGdW5jdGlvbiwgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucykge1xyXG4gICAgICAgIGlmIChjb21wbGV0ZSlcclxuICAgICAgICAgICAgY29tcGxldGUoKTtcclxuICAgICAgICBpZiAodGhpcy5pbnRlcmNlcHRvcilcclxuICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRvci5jb21wbGV0ZShjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoYzogSHR0cEVycm9yUmVzcG9uc2UsIGVycm9yOiBGdW5jdGlvbiwgY29tcGxldGU6IEZ1bmN0aW9uLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XHJcbiAgICAgICAgbGV0IHI6IElIdHRwRXJyb3IgPSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IGMubWVzc2FnZSxcclxuICAgICAgICAgICAgc3RhdHVzOiBjLnN0YXR1cyxcclxuICAgICAgICAgICAgY29kZTogYy5zdGF0dXM/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGhhbmRsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBlcnJvcjogYy5lcnJvclxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgZXJyb3Iocik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghci5oYW5kbGVkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRvci5lcnJvcihjb25maWcsIHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbWFwT3B0aW9ucyhvcHRpb25zOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucykge1xyXG4gICAgICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9wdGlvbnMuaGVhZGVycykge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5oZWFkZXJzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9ucy5oZWFkZXJzW2tleV07XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvcHRpb25zLnBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zLnBhcmFtc1trZXldO1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgICAgICAgICAgYm9keTogb3B0aW9ucy5ib2R5LFxyXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8ICdqc29uJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gaWYgKG9wdGlvbnMubWV0aG9kID09IFwiZ2V0XCIpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIHtcclxuICAgICAgICAvLyAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgICAgLy8gICAgICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgICAgIC8vICAgICB9O1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNlIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuIHtcclxuICAgICAgICAvLyAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgICAgLy8gICAgICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgICAgICAvLyAgICAgICAgIGJvZHk6IG9wdGlvbnMuYm9keVxyXG4gICAgICAgIC8vICAgICB9O1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9pbWFnZS9hY29yZXgtY29yZS1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,2 +1,2 @@
1
- export * from './src/image.service';
1
+ export * from './src/image.service';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL2ltYWdlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiBleHBvcnQgKiBmcm9tICcuL3NyYy9pbWFnZS5zZXJ2aWNlJzsiXX0=
@@ -1,43 +1,44 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AXImageService {
4
- constructor() { }
5
- async resize(options) {
6
- options = Object.assign({ type: 'image/png', quality: 1 }, options);
7
- let image;
8
- if (options.source instanceof File) {
9
- var a = new Image();
10
- a.src = URL.createObjectURL(options.source);
11
- await new Promise((res) => a.onload = res);
12
- image = a;
13
- }
14
- else {
15
- image = options.source;
16
- }
17
- // Resize the image
18
- var canvas = document.createElement('canvas'), width = image.width, height = image.height;
19
- if (width > height) {
20
- if (width > options.maxSize) {
21
- height *= options.maxSize / width;
22
- width = options.maxSize;
23
- }
24
- }
25
- else {
26
- if (height > options.maxSize) {
27
- width *= options.maxSize / height;
28
- height = options.maxSize;
29
- }
30
- }
31
- canvas.width = width;
32
- canvas.height = height;
33
- canvas.getContext('2d').drawImage(image, 0, 0, width, height);
34
- return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));
35
- }
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXImageService, providedIn: 'root' });
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXImageService, decorators: [{
40
- type: Injectable,
41
- args: [{ providedIn: 'root' }]
42
- }], ctorParameters: function () { return []; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL2ltYWdlL3NyYy9pbWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLGdCQUFnQixDQUFDO0lBR2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBaUk7UUFDMUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwRSxJQUFJLEtBQXVCLENBQUM7UUFDNUIsSUFBSSxPQUFPLENBQUMsTUFBTSxZQUFZLElBQUksRUFBRTtZQUNoQyxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO1lBQ25CLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsTUFBTSxJQUFJLE9BQU8sQ0FBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNsRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7YUFDSTtZQUNELEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzFCO1FBRUQsbUJBQW1CO1FBQ25CLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQ3pDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxFQUNuQixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLEtBQUssR0FBRyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDekIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUMzQjtTQUNKO2FBQU07WUFDSCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUMxQixLQUFLLElBQUksT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ2xDLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQzVCO1NBQ0o7UUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO3VHQXJDUSxjQUFjOzJHQUFkLGNBQWMsY0FERCxNQUFNOzsyRkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQVhJbWFnZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcblxyXG4gICAgYXN5bmMgcmVzaXplKG9wdGlvbnM6IHsgbWF4U2l6ZTogbnVtYmVyLCBzb3VyY2U6IEhUTUxJbWFnZUVsZW1lbnQgfCBGaWxlLCB0eXBlPzogJ2ltYWdlL3BuZycgfCAnaW1hZ2UvanBlZycgfCAnaW1hZ2Uvd2VicCcsIHF1YWxpdHk/OiBudW1iZXIgfSk6IFByb21pc2U8QmxvYj4ge1xyXG4gICAgICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHsgdHlwZTogJ2ltYWdlL3BuZycsIHF1YWxpdHk6IDEgfSwgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgIGxldCBpbWFnZTogSFRNTEltYWdlRWxlbWVudDtcclxuICAgICAgICBpZiAob3B0aW9ucy5zb3VyY2UgaW5zdGFuY2VvZiBGaWxlKSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gbmV3IEltYWdlKClcclxuICAgICAgICAgICAgYS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG9wdGlvbnMuc291cmNlKTtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2U8RXZlbnQ+KChyZXMpID0+IGEub25sb2FkID0gcmVzKTtcclxuICAgICAgICAgICAgaW1hZ2UgPSBhO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2UgPSBvcHRpb25zLnNvdXJjZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlc2l6ZSB0aGUgaW1hZ2VcclxuICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyksXHJcbiAgICAgICAgICAgIHdpZHRoID0gaW1hZ2Uud2lkdGgsXHJcbiAgICAgICAgICAgIGhlaWdodCA9IGltYWdlLmhlaWdodDtcclxuICAgICAgICBpZiAod2lkdGggPiBoZWlnaHQpIHtcclxuICAgICAgICAgICAgaWYgKHdpZHRoID4gb3B0aW9ucy5tYXhTaXplKSB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgKj0gb3B0aW9ucy5tYXhTaXplIC8gd2lkdGg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG9wdGlvbnMubWF4U2l6ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChoZWlnaHQgPiBvcHRpb25zLm1heFNpemUpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoICo9IG9wdGlvbnMubWF4U2l6ZSAvIGhlaWdodDtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IG9wdGlvbnMubWF4U2l6ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgd2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBjYW52YXMudG9CbG9iKHJlc29sdmUsIG9wdGlvbnMudHlwZSwgb3B0aW9ucy5xdWFsaXR5KSk7XHJcbiAgICB9XHJcbn0iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class AXImageService {
4
+ constructor() { }
5
+ async resize(options) {
6
+ options = Object.assign({ type: 'image/png', quality: 1 }, options);
7
+ let image;
8
+ if (options.source instanceof File) {
9
+ var a = new Image();
10
+ a.src = URL.createObjectURL(options.source);
11
+ await new Promise((res) => a.onload = res);
12
+ image = a;
13
+ }
14
+ else {
15
+ image = options.source;
16
+ }
17
+ // Resize the image
18
+ var canvas = document.createElement('canvas'), width = image.width, height = image.height;
19
+ if (width > height) {
20
+ if (width > options.maxSize) {
21
+ height *= options.maxSize / width;
22
+ width = options.maxSize;
23
+ }
24
+ }
25
+ else {
26
+ if (height > options.maxSize) {
27
+ width *= options.maxSize / height;
28
+ height = options.maxSize;
29
+ }
30
+ }
31
+ canvas.width = width;
32
+ canvas.height = height;
33
+ canvas.getContext('2d').drawImage(image, 0, 0, width, height);
34
+ return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));
35
+ }
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXImageService, providedIn: 'root' });
38
+ }
39
+ export { AXImageService };
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXImageService, decorators: [{
41
+ type: Injectable,
42
+ args: [{ providedIn: 'root' }]
43
+ }], ctorParameters: function () { return []; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL2ltYWdlL3NyYy9pbWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQ2EsY0FBYztJQUN2QixnQkFBZ0IsQ0FBQztJQUdqQixLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlJO1FBQzFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEUsSUFBSSxLQUF1QixDQUFDO1FBQzVCLElBQUksT0FBTyxDQUFDLE1BQU0sWUFBWSxJQUFJLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtZQUNuQixDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLE1BQU0sSUFBSSxPQUFPLENBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDbEQsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNiO2FBQ0k7WUFDRCxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUMxQjtRQUVELG1CQUFtQjtRQUNuQixJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUN6QyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFDbkIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxLQUFLLEdBQUcsTUFBTSxFQUFFO1lBQ2hCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDbEMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDM0I7U0FDSjthQUFNO1lBQ0gsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUNsQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUM1QjtTQUNKO1FBQ0QsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzt1R0FyQ1EsY0FBYzsyR0FBZCxjQUFjLGNBREQsTUFBTTs7U0FDbkIsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBWEltYWdlU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuXHJcbiAgICBhc3luYyByZXNpemUob3B0aW9uczogeyBtYXhTaXplOiBudW1iZXIsIHNvdXJjZTogSFRNTEltYWdlRWxlbWVudCB8IEZpbGUsIHR5cGU/OiAnaW1hZ2UvcG5nJyB8ICdpbWFnZS9qcGVnJyB8ICdpbWFnZS93ZWJwJywgcXVhbGl0eT86IG51bWJlciB9KTogUHJvbWlzZTxCbG9iPiB7XHJcbiAgICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyB0eXBlOiAnaW1hZ2UvcG5nJywgcXVhbGl0eTogMSB9LCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50O1xyXG4gICAgICAgIGlmIChvcHRpb25zLnNvdXJjZSBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgICAgICAgdmFyIGEgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgICAgICBhLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwob3B0aW9ucy5zb3VyY2UpO1xyXG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZTxFdmVudD4oKHJlcykgPT4gYS5vbmxvYWQgPSByZXMpO1xyXG4gICAgICAgICAgICBpbWFnZSA9IGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZSA9IG9wdGlvbnMuc291cmNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gUmVzaXplIHRoZSBpbWFnZVxyXG4gICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSxcclxuICAgICAgICAgICAgd2lkdGggPSBpbWFnZS53aWR0aCxcclxuICAgICAgICAgICAgaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0O1xyXG4gICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkge1xyXG4gICAgICAgICAgICBpZiAod2lkdGggPiBvcHRpb25zLm1heFNpemUpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCAqPSBvcHRpb25zLm1heFNpemUgLyB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHdpZHRoID0gb3B0aW9ucy5tYXhTaXplO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGhlaWdodCA+IG9wdGlvbnMubWF4U2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgd2lkdGggKj0gb3B0aW9ucy5tYXhTaXplIC8gaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gb3B0aW9ucy5tYXhTaXplO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IGNhbnZhcy50b0Jsb2IocmVzb2x2ZSwgb3B0aW9ucy50eXBlLCBvcHRpb25zLnF1YWxpdHkpKTtcclxuICAgIH1cclxufSJdfQ==
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtcGlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9waXBlcy9hY29yZXgtY29yZS1waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,3 +1,3 @@
1
- export * from './src/safe.pipe';
2
- export * from './src/pipes.module';
1
+ export * from './src/safe.pipe';
2
+ export * from './src/pipes.module';
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3BpcGVzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvc2FmZS5waXBlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy5tb2R1bGUnIl19
@@ -1,19 +1,20 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { AXSafePipe } from './safe.pipe';
4
- import * as i0 from "@angular/core";
5
- export class AXPipesModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, declarations: [AXSafePipe], imports: [CommonModule], exports: [AXSafePipe] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, imports: [CommonModule] });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [AXSafePipe],
14
- imports: [CommonModule],
15
- exports: [AXSafePipe],
16
- providers: [],
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvcGlwZXMvc3JjL3BpcGVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVF6QyxNQUFNLE9BQU8sYUFBYTt1R0FBYixhQUFhO3dHQUFiLGFBQWEsaUJBTFQsVUFBVSxhQUNmLFlBQVksYUFDWixVQUFVO3dHQUdULGFBQWEsWUFKZCxZQUFZOzsyRkFJWCxhQUFhO2tCQU56QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3JCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQVhTYWZlUGlwZSB9IGZyb20gJy4vc2FmZS5waXBlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbQVhTYWZlUGlwZV0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0FYU2FmZVBpcGVdLFxyXG4gIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBpcGVzTW9kdWxlIHt9XHJcbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AXSafePipe } from './safe.pipe';
4
+ import * as i0 from "@angular/core";
5
+ class AXPipesModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, declarations: [AXSafePipe], imports: [CommonModule], exports: [AXSafePipe] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, imports: [CommonModule] });
9
+ }
10
+ export { AXPipesModule };
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AXPipesModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [AXSafePipe],
15
+ imports: [CommonModule],
16
+ exports: [AXSafePipe],
17
+ providers: [],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvcGlwZXMvc3JjL3BpcGVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUV6QyxNQU1hLGFBQWE7dUdBQWIsYUFBYTt3R0FBYixhQUFhLGlCQUxULFVBQVUsYUFDZixZQUFZLGFBQ1osVUFBVTt3R0FHVCxhQUFhLFlBSmQsWUFBWTs7U0FJWCxhQUFhOzJGQUFiLGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDckIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFNhZmVQaXBlIH0gZnJvbSAnLi9zYWZlLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBWFNhZmVQaXBlXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbQVhTYWZlUGlwZV0sXHJcbiAgcHJvdmlkZXJzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUGlwZXNNb2R1bGUge31cclxuIl19