zek 14.2.70 → 14.2.72

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.
@@ -7,12 +7,13 @@ import * as i2 from "@ngx-translate/core";
7
7
  import * as i3 from "@angular/router";
8
8
  /** Handles HttpClient errors */
9
9
  export class HttpErrorHandler {
10
- constructor(alertService, translateService, router) {
11
- this.alertService = alertService;
12
- this.translateService = translateService;
10
+ constructor(alert, translate, router) {
11
+ this.alert = alert;
12
+ this.translate = translate;
13
13
  this.router = router;
14
14
  /** Create curried handleError function that already knows the service name */
15
15
  this.createHandleError = (serviceName = '') => (operation = 'operation', result = {}, show = true) => this.handleError(serviceName, operation, result, show);
16
+ this.createHandleErrorResult = (serviceName = '') => (operation = 'operation', show = true) => this.handleErrorResult(serviceName, operation, show);
16
17
  }
17
18
  /**
18
19
  * Returns a function that handles Http operation failures.
@@ -20,86 +21,126 @@ export class HttpErrorHandler {
20
21
  * @param serviceName = name of the data service that attempted the operation
21
22
  * @param operation - name of the operation that failed
22
23
  * @param result - optional value to return as the observable result
24
+ * @param show - optional value to show error
23
25
  */
24
26
  handleError(serviceName = '', operation = 'operation', result = {}, show) {
25
27
  return (response) => {
26
28
  console.error(response);
27
29
  if (show) {
28
- switch (response.status) {
29
- case 0: //No Connection
30
- this.alertService.error(`Can't connect to api server.`);
31
- break;
32
- case 400: //Bad Request
33
- let error;
34
- if (typeof response.error === 'string' && response.error[0] === '{') {
35
- error = JSON.parse(response.error);
36
- }
37
- else {
38
- error = response.error;
39
- }
40
- if (error instanceof ErrorEvent) {
41
- this.alertService.error(`${serviceName}: ${operation} failed: ${response.error.message}`);
42
- }
43
- if (error === 'string') {
44
- this.alertService.error(response.error);
45
- }
46
- else if (error instanceof Object) {
47
- const errors = error.traceId || error.success === false
48
- ? error.errors
49
- : error;
50
- const errorMessages = [];
51
- const properties = Object.getOwnPropertyNames(errors);
52
- for (let property of properties) {
53
- const messages = errors[property];
54
- if (messages instanceof Array) {
55
- for (let message of messages) {
56
- const messageKey = `Validation.${message}`;
57
- let translatedMessage = this.translateService.instant(messageKey);
58
- // if translation not found then use message
59
- if (messageKey == translatedMessage) {
60
- translatedMessage = message;
61
- }
62
- if (property) {
63
- const propertyKey = `Fields.${property}`;
64
- let translatedProperty = this.translateService.instant(`Fields.${property}`);
65
- // if translation not found then use property
66
- if (propertyKey == translatedProperty) {
67
- translatedProperty = property;
68
- }
69
- errorMessages.push(translatedProperty + ' - ' + translatedMessage);
70
- }
71
- else {
72
- errorMessages.push(translatedMessage);
73
- }
30
+ this.showError(serviceName, operation, response);
31
+ }
32
+ //return throwError('Error! please try again later.');
33
+ return of(result);
34
+ };
35
+ }
36
+ /**
37
+ * Returns a function that handles Http operation failures.
38
+ * This error handler lets the app continue to run as if no error occurred.
39
+ * @param serviceName = name of the data service that attempted the operation
40
+ * @param operation - name of the operation that failed
41
+ * @param show - optional value to show error
42
+ */
43
+ handleErrorResult(serviceName = '', operation = 'operation', show) {
44
+ return (response) => {
45
+ console.error(response);
46
+ if (show) {
47
+ this.showError(serviceName, operation, response);
48
+ }
49
+ let error;
50
+ if (typeof response.error === 'string' && response.error[0] === '{') {
51
+ error = JSON.parse(response.error);
52
+ }
53
+ else {
54
+ error = response.error;
55
+ }
56
+ let result;
57
+ if (error instanceof ErrorEvent) {
58
+ result = { '': [response.error.message] };
59
+ }
60
+ if (typeof error === 'string') {
61
+ result = { '': [response.error] };
62
+ }
63
+ else if (typeof error === 'object') {
64
+ const errors = error.traceId || error.success === false
65
+ ? error.errors
66
+ : error;
67
+ result = errors;
68
+ }
69
+ return of(result);
70
+ };
71
+ }
72
+ showError(serviceName, operation, response) {
73
+ switch (response.status) {
74
+ case 0: //No Connection
75
+ this.alert.error(`Can't connect to api server.`);
76
+ break;
77
+ case 400: //Bad Request
78
+ let error;
79
+ if (typeof response.error === 'string' && response.error[0] === '{') {
80
+ error = JSON.parse(response.error);
81
+ }
82
+ else {
83
+ error = response.error;
84
+ }
85
+ if (error instanceof ErrorEvent) {
86
+ this.alert.error(`${serviceName}: ${operation} failed: ${response.error.message}`);
87
+ }
88
+ if (typeof error === 'string') {
89
+ this.alert.error(response.error);
90
+ }
91
+ else if (typeof error === 'object') {
92
+ const errors = error.traceId || error.success === false
93
+ ? error.errors
94
+ : error;
95
+ const errorMessages = [];
96
+ const properties = Object.getOwnPropertyNames(errors);
97
+ for (let property of properties) {
98
+ const messages = errors[property];
99
+ if (messages instanceof Array) {
100
+ for (let message of messages) {
101
+ const messageKey = `Validation.${message}`;
102
+ let translatedMessage = this.translate.instant(messageKey);
103
+ // if translation not found then use message
104
+ if (messageKey == translatedMessage) {
105
+ translatedMessage = message;
106
+ }
107
+ if (property) {
108
+ const propertyKey = `Fields.${property}`;
109
+ let translatedProperty = this.translate.instant(`Fields.${property}`);
110
+ // if translation not found then use property
111
+ if (propertyKey == translatedProperty) {
112
+ translatedProperty = property;
74
113
  }
114
+ errorMessages.push(translatedProperty + ' - ' + translatedMessage);
115
+ }
116
+ else {
117
+ errorMessages.push(translatedMessage);
75
118
  }
76
119
  }
77
- this.alertService.addRange(AlertType.Danger, errorMessages);
78
120
  }
79
- break;
80
- case 401: //Unauthorized
81
- this.alertService.error('Unauthorized');
82
- this.router.navigate(['/login']);
83
- break;
84
- case 403: //Forbidden
85
- this.alertService.error('Forbidden');
86
- break;
87
- case 404: //Not Found
88
- this.alertService.error('Not Found');
89
- break;
90
- case 402: //Payment Required
91
- this.alertService.error('License Payment Required');
92
- break;
93
- case 500: //Internal Server Error
94
- this.alertService.error('Internal Server Error');
95
- break;
96
- default:
97
- break;
121
+ }
122
+ this.alert.addRange(AlertType.Danger, errorMessages);
98
123
  }
99
- }
100
- //return throwError('Error! please try again later.');
101
- return of(result);
102
- };
124
+ break;
125
+ case 401: //Unauthorized
126
+ this.alert.error('Unauthorized');
127
+ this.router.navigate(['/login']);
128
+ break;
129
+ case 403: //Forbidden
130
+ this.alert.error('Forbidden');
131
+ break;
132
+ case 404: //Not Found
133
+ this.alert.error('Not Found');
134
+ break;
135
+ case 402: //Payment Required
136
+ this.alert.error('License Payment Required');
137
+ break;
138
+ case 500: //Internal Server Error
139
+ this.alert.error('Internal Server Error');
140
+ break;
141
+ default:
142
+ break;
143
+ }
103
144
  }
104
145
  }
105
146
  HttpErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HttpErrorHandler, deps: [{ token: i1.AlertService }, { token: i2.TranslateService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -107,4 +148,4 @@ HttpErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
107
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HttpErrorHandler, decorators: [{
108
149
  type: Injectable
109
150
  }], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i2.TranslateService }, { type: i3.Router }]; } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9zZXJ2aWNlcy9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFLdEMsZ0NBQWdDO0FBRWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDcUIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLE1BQWM7UUFGZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFbkMsOEVBQThFO1FBQzlFLHNCQUFpQixHQUFHLENBQUMsV0FBVyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBSSxTQUFTLEdBQUcsV0FBVyxFQUFFLFNBQVMsRUFBTyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFIekgsQ0FBQztJQUt4Qzs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQUksV0FBVyxHQUFHLEVBQUUsRUFBRSxTQUFTLEdBQUcsV0FBVyxFQUFFLFNBQVMsRUFBTyxFQUFFLElBQWM7UUFDdEYsT0FBTyxDQUFDLFFBQTJCLEVBQWlCLEVBQUU7WUFDbEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV4QixJQUFJLElBQUksRUFBRTtnQkFDTixRQUFRLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0JB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RVYsS0FBSyxHQUFHLEVBQUMsV0FBVzt3QkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3JDLE1BQU07b0JBRVYsS0FBSyxHQUFHLEVBQUMsV0FBVzt3QkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3JDLE1BQU07b0JBRVYsS0FBSyxHQUFHLEVBQUMsa0JBQWtCO3dCQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO3dCQUNwRCxNQUFNO29CQUVWLEtBQUssR0FBRyxFQUFDLHVCQUF1Qjt3QkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQzt3QkFDakQsTUFBTTtvQkFFVjt3QkFDSSxNQUFNO2lCQUNiO2FBQ0o7WUFJRCxzREFBc0Q7WUFDdEQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7NkdBNUdRLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG4vKiogVHlwZSBvZiB0aGUgaGFuZGxlRXJyb3IgZnVuY3Rpb24gcmV0dXJuZWQgYnkgSHR0cEVycm9ySGFuZGxlci5jcmVhdGVIYW5kbGVFcnJvciAqL1xyXG5leHBvcnQgdHlwZSBIYW5kbGVFcnJvciA9IDxUID0gYW55PihvcGVyYXRpb24/OiBzdHJpbmcsIHJlc3VsdD86IFQsIHNob3c/OiBib29sZWFuKSA9PiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBPYnNlcnZhYmxlPFQ+Oy8vQWRkZWQgJz0gYW55J1xyXG5cclxuLyoqIEhhbmRsZXMgSHR0cENsaWVudCBlcnJvcnMgKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9ySGFuZGxlciB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgICAvKiogQ3JlYXRlIGN1cnJpZWQgaGFuZGxlRXJyb3IgZnVuY3Rpb24gdGhhdCBhbHJlYWR5IGtub3dzIHRoZSBzZXJ2aWNlIG5hbWUgKi9cclxuICAgIGNyZWF0ZUhhbmRsZUVycm9yID0gKHNlcnZpY2VOYW1lID0gJycpID0+IDxUPihvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgcmVzdWx0ID0ge30gYXMgVCwgc2hvdyA9IHRydWUpID0+IHRoaXMuaGFuZGxlRXJyb3Ioc2VydmljZU5hbWUsIG9wZXJhdGlvbiwgcmVzdWx0LCBzaG93KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgSHR0cCBvcGVyYXRpb24gZmFpbHVyZXMuXHJcbiAgICAgKiBUaGlzIGVycm9yIGhhbmRsZXIgbGV0cyB0aGUgYXBwIGNvbnRpbnVlIHRvIHJ1biBhcyBpZiBubyBlcnJvciBvY2N1cnJlZC5cclxuICAgICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSA9IG5hbWUgb2YgdGhlIGRhdGEgc2VydmljZSB0aGF0IGF0dGVtcHRlZCB0aGUgb3BlcmF0aW9uXHJcbiAgICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gbmFtZSBvZiB0aGUgb3BlcmF0aW9uIHRoYXQgZmFpbGVkXHJcbiAgICAgKiBAcGFyYW0gcmVzdWx0IC0gb3B0aW9uYWwgdmFsdWUgdG8gcmV0dXJuIGFzIHRoZSBvYnNlcnZhYmxlIHJlc3VsdFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVFcnJvcjxUPihzZXJ2aWNlTmFtZSA9ICcnLCBvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgcmVzdWx0ID0ge30gYXMgVCwgc2hvdz86IGJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzaG93KSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc3BvbnNlLnN0YXR1cykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDovL05vIENvbm5lY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYENhbid0IGNvbm5lY3QgdG8gYXBpIHNlcnZlci5gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAwOi8vQmFkIFJlcXVlc3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yOiBhbnk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UuZXJyb3IgPT09ICdzdHJpbmcnICYmIHJlc3BvbnNlLmVycm9yWzBdID09PSAneycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gSlNPTi5wYXJzZShyZXNwb25zZS5lcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYCR7c2VydmljZU5hbWV9OiAke29wZXJhdGlvbn0gZmFpbGVkOiAke3Jlc3BvbnNlLmVycm9yLm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gaWYgKGVycm9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IocmVzcG9uc2UuZXJyb3IgYXMgc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gZXJyb3IudHJhY2VJZCB8fCBlcnJvci5zdWNjZXNzID09PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3IuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlcnJvcjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGVycm9ycyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gZXJyb3JzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlS2V5ID0gYFZhbGlkYXRpb24uJHttZXNzYWdlfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJhbnNsYXRlZE1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlS2V5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRyYW5zbGF0aW9uIG5vdCBmb3VuZCB0aGVuIHVzZSBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZUtleSA9PSB0cmFuc2xhdGVkTWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRNZXNzYWdlID0gbWVzc2FnZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eUtleSA9IGBGaWVsZHMuJHtwcm9wZXJ0eX1gO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkUHJvcGVydHkgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgRmllbGRzLiR7cHJvcGVydHl9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdHJhbnNsYXRpb24gbm90IGZvdW5kIHRoZW4gdXNlIHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5S2V5ID09IHRyYW5zbGF0ZWRQcm9wZXJ0eSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRQcm9wZXJ0eSA9IHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZXMucHVzaCh0cmFuc2xhdGVkUHJvcGVydHkgKyAnIC0gJyArIHRyYW5zbGF0ZWRNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZXMucHVzaCh0cmFuc2xhdGVkTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRSYW5nZShBbGVydFR5cGUuRGFuZ2VyLCBlcnJvck1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0MDE6Ly9VbmF1dGhvcml6ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAzOi8vRm9yYmlkZGVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKCdGb3JiaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDA0Oi8vTm90IEZvdW5kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKCdOb3QgRm91bmQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDAyOi8vUGF5bWVudCBSZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignTGljZW5zZSBQYXltZW50IFJlcXVpcmVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMDovL0ludGVybmFsIFNlcnZlciBFcnJvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcignSW50ZXJuYWwgU2VydmVyIEVycm9yJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAvL3JldHVybiB0aHJvd0Vycm9yKCdFcnJvciEgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHJlc3VsdCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufSJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9zZXJ2aWNlcy9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFNdEMsZ0NBQWdDO0FBRWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDcUIsS0FBbUIsRUFDbkIsU0FBMkIsRUFDM0IsTUFBYztRQUZkLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVuQyw4RUFBOEU7UUFDOUUsc0JBQWlCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFJLFNBQVMsR0FBRyxXQUFXLEVBQUUsU0FBUyxFQUFPLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoSyw0QkFBdUIsR0FBRyxDQUFDLFdBQVcsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUksU0FBUyxHQUFHLFdBQVcsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUozRyxDQUFDO0lBTXhDOzs7Ozs7O09BT0c7SUFDSCxXQUFXLENBQUksV0FBVyxHQUFHLEVBQUUsRUFBRSxTQUFTLEdBQUcs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bSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0VHlwZSB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG4vKiogVHlwZSBvZiB0aGUgaGFuZGxlRXJyb3IgZnVuY3Rpb24gcmV0dXJuZWQgYnkgSHR0cEVycm9ySGFuZGxlci5jcmVhdGVIYW5kbGVFcnJvciAqL1xyXG5leHBvcnQgdHlwZSBIYW5kbGVFcnJvciA9IDxUID0gYW55PihvcGVyYXRpb24/OiBzdHJpbmcsIHJlc3VsdD86IFQsIHNob3c/OiBib29sZWFuKSA9PiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBPYnNlcnZhYmxlPFQ+O1xyXG5leHBvcnQgdHlwZSBIYW5kbGVFcnJvclJlc3VsdCA9IDxUID0gYW55PihvcGVyYXRpb24/OiBzdHJpbmcsIHNob3c/OiBib29sZWFuKSA9PiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBPYnNlcnZhYmxlPFQ+O1xyXG5cclxuLyoqIEhhbmRsZXMgSHR0cENsaWVudCBlcnJvcnMgKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9ySGFuZGxlciB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0OiBBbGVydFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gICAgLyoqIENyZWF0ZSBjdXJyaWVkIGhhbmRsZUVycm9yIGZ1bmN0aW9uIHRoYXQgYWxyZWFkeSBrbm93cyB0aGUgc2VydmljZSBuYW1lICovXHJcbiAgICBjcmVhdGVIYW5kbGVFcnJvciA9IChzZXJ2aWNlTmFtZSA9ICcnKSA9PiA8VD4ob3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHJlc3VsdCA9IHt9IGFzIFQsIHNob3cgPSB0cnVlKSA9PiB0aGlzLmhhbmRsZUVycm9yKHNlcnZpY2VOYW1lLCBvcGVyYXRpb24sIHJlc3VsdCwgc2hvdyk7XHJcbiAgICBjcmVhdGVIYW5kbGVFcnJvclJlc3VsdCA9IChzZXJ2aWNlTmFtZSA9ICcnKSA9PiA8VD4ob3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHNob3cgPSB0cnVlKSA9PiB0aGlzLmhhbmRsZUVycm9yUmVzdWx0KHNlcnZpY2VOYW1lLCBvcGVyYXRpb24sIHNob3cpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBIdHRwIG9wZXJhdGlvbiBmYWlsdXJlcy5cclxuICAgICAqIFRoaXMgZXJyb3IgaGFuZGxlciBsZXRzIHRoZSBhcHAgY29udGludWUgdG8gcnVuIGFzIGlmIG5vIGVycm9yIG9jY3VycmVkLlxyXG4gICAgICogQHBhcmFtIHNlcnZpY2VOYW1lID0gbmFtZSBvZiB0aGUgZGF0YSBzZXJ2aWNlIHRoYXQgYXR0ZW1wdGVkIHRoZSBvcGVyYXRpb25cclxuICAgICAqIEBwYXJhbSBvcGVyYXRpb24gLSBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdGhhdCBmYWlsZWRcclxuICAgICAqIEBwYXJhbSByZXN1bHQgLSBvcHRpb25hbCB2YWx1ZSB0byByZXR1cm4gYXMgdGhlIG9ic2VydmFibGUgcmVzdWx0XHJcbiAgICAgKiBAcGFyYW0gc2hvdyAtIG9wdGlvbmFsIHZhbHVlIHRvIHNob3cgZXJyb3JcclxuICAgICAqL1xyXG4gICAgaGFuZGxlRXJyb3I8VD4oc2VydmljZU5hbWUgPSAnJywgb3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHJlc3VsdCA9IHt9IGFzIFQsIHNob3c/OiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIChyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoc2hvdykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93RXJyb3Ioc2VydmljZU5hbWUsIG9wZXJhdGlvbiwgcmVzcG9uc2UpXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vcmV0dXJuIHRocm93RXJyb3IoJ0Vycm9yISBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicpO1xyXG4gICAgICAgICAgICByZXR1cm4gb2YocmVzdWx0KTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBIdHRwIG9wZXJhdGlvbiBmYWlsdXJlcy5cclxuICAgICAqIFRoaXMgZXJyb3IgaGFuZGxlciBsZXRzIHRoZSBhcHAgY29udGludWUgdG8gcnVuIGFzIGlmIG5vIGVycm9yIG9jY3VycmVkLlxyXG4gICAgICogQHBhcmFtIHNlcnZpY2VOYW1lID0gbmFtZSBvZiB0aGUgZGF0YSBzZXJ2aWNlIHRoYXQgYXR0ZW1wdGVkIHRoZSBvcGVyYXRpb25cclxuICAgICAqIEBwYXJhbSBvcGVyYXRpb24gLSBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdGhhdCBmYWlsZWRcclxuICAgICAqIEBwYXJhbSBzaG93IC0gb3B0aW9uYWwgdmFsdWUgdG8gc2hvdyBlcnJvclxyXG4gICAgICovXHJcbiAgICBoYW5kbGVFcnJvclJlc3VsdDxUPihzZXJ2aWNlTmFtZSA9ICcnLCBvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgc2hvdz86IGJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChzaG93KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvcihzZXJ2aWNlTmFtZSwgb3BlcmF0aW9uLCByZXNwb25zZSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGVycm9yOiBhbnk7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UuZXJyb3IgPT09ICdzdHJpbmcnICYmIHJlc3BvbnNlLmVycm9yWzBdID09PSAneycpIHtcclxuICAgICAgICAgICAgICAgIGVycm9yID0gSlNPTi5wYXJzZShyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IHJlc3BvbnNlLmVycm9yO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBhbnk7XHJcbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHsgJyc6IFtyZXNwb25zZS5lcnJvci5tZXNzYWdlIGFzIHN0cmluZ10gfTtcclxuICAgICAgICAgICAgfSBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0geyAnJzogW3Jlc3BvbnNlLmVycm9yIGFzIHN0cmluZ10gfTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBlcnJvci50cmFjZUlkIHx8IGVycm9yLnN1Y2Nlc3MgPT09IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgPyBlcnJvci5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICA6IGVycm9yO1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gZXJyb3JzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgc2hvd0Vycm9yKHNlcnZpY2VOYW1lOiBzdHJpbmcsIG9wZXJhdGlvbjogc3RyaW5nLCByZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2Upe1xyXG4gICAgICAgIHN3aXRjaCAocmVzcG9uc2Uuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMDovL05vIENvbm5lY3Rpb25cclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoYENhbid0IGNvbm5lY3QgdG8gYXBpIHNlcnZlci5gKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDA6Ly9CYWQgUmVxdWVzdFxyXG4gICAgICAgICAgICAgICAgbGV0IGVycm9yOiBhbnk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlLmVycm9yID09PSAnc3RyaW5nJyAmJiByZXNwb25zZS5lcnJvclswXSA9PT0gJ3snKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBKU09OLnBhcnNlKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcihgJHtzZXJ2aWNlTmFtZX06ICR7b3BlcmF0aW9ufSBmYWlsZWQ6ICR7cmVzcG9uc2UuZXJyb3IubWVzc2FnZX1gKTtcclxuICAgICAgICAgICAgICAgIH0gaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKHJlc3BvbnNlLmVycm9yIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnMgPSBlcnJvci50cmFjZUlkIHx8IGVycm9yLnN1Y2Nlc3MgPT09IGZhbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZXJyb3IuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGVycm9ycyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBlcnJvcnNbcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VLZXkgPSBgVmFsaWRhdGlvbi4ke21lc3NhZ2V9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJhbnNsYXRlZE1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1lc3NhZ2VLZXkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRyYW5zbGF0aW9uIG5vdCBmb3VuZCB0aGVuIHVzZSBtZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VLZXkgPT0gdHJhbnNsYXRlZE1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZE1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5S2V5ID0gYEZpZWxkcy4ke3Byb3BlcnR5fWA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2xhdGVkUHJvcGVydHkgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBGaWVsZHMuJHtwcm9wZXJ0eX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdHJhbnNsYXRpb24gbm90IGZvdW5kIHRoZW4gdXNlIHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eUtleSA9PSB0cmFuc2xhdGVkUHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRQcm9wZXJ0eSA9IHByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlcy5wdXNoKHRyYW5zbGF0ZWRQcm9wZXJ0eSArICcgLSAnICsgdHJhbnNsYXRlZE1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlcy5wdXNoKHRyYW5zbGF0ZWRNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydC5hZGRSYW5nZShBbGVydFR5cGUuRGFuZ2VyLCBlcnJvck1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDE6Ly9VbmF1dGhvcml6ZWRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgNDAzOi8vRm9yYmlkZGVuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKCdGb3JiaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSA0MDQ6Ly9Ob3QgRm91bmRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ05vdCBGb3VuZCcpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIDQwMjovL1BheW1lbnQgUmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnQuZXJyb3IoJ0xpY2Vuc2UgUGF5bWVudCBSZXF1aXJlZCcpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIDUwMDovL0ludGVybmFsIFNlcnZlciBFcnJvclxyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcignSW50ZXJuYWwgU2VydmVyIEVycm9yJyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59Il19
package/fesm2015/zek.mjs CHANGED
@@ -1586,12 +1586,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1586
1586
 
1587
1587
  /** Handles HttpClient errors */
1588
1588
  class HttpErrorHandler {
1589
- constructor(alertService, translateService, router) {
1590
- this.alertService = alertService;
1591
- this.translateService = translateService;
1589
+ constructor(alert, translate, router) {
1590
+ this.alert = alert;
1591
+ this.translate = translate;
1592
1592
  this.router = router;
1593
1593
  /** Create curried handleError function that already knows the service name */
1594
1594
  this.createHandleError = (serviceName = '') => (operation = 'operation', result = {}, show = true) => this.handleError(serviceName, operation, result, show);
1595
+ this.createHandleErrorResult = (serviceName = '') => (operation = 'operation', show = true) => this.handleErrorResult(serviceName, operation, show);
1595
1596
  }
1596
1597
  /**
1597
1598
  * Returns a function that handles Http operation failures.
@@ -1599,86 +1600,126 @@ class HttpErrorHandler {
1599
1600
  * @param serviceName = name of the data service that attempted the operation
1600
1601
  * @param operation - name of the operation that failed
1601
1602
  * @param result - optional value to return as the observable result
1603
+ * @param show - optional value to show error
1602
1604
  */
1603
1605
  handleError(serviceName = '', operation = 'operation', result = {}, show) {
1604
1606
  return (response) => {
1605
1607
  console.error(response);
1606
1608
  if (show) {
1607
- switch (response.status) {
1608
- case 0: //No Connection
1609
- this.alertService.error(`Can't connect to api server.`);
1610
- break;
1611
- case 400: //Bad Request
1612
- let error;
1613
- if (typeof response.error === 'string' && response.error[0] === '{') {
1614
- error = JSON.parse(response.error);
1615
- }
1616
- else {
1617
- error = response.error;
1618
- }
1619
- if (error instanceof ErrorEvent) {
1620
- this.alertService.error(`${serviceName}: ${operation} failed: ${response.error.message}`);
1621
- }
1622
- if (error === 'string') {
1623
- this.alertService.error(response.error);
1624
- }
1625
- else if (error instanceof Object) {
1626
- const errors = error.traceId || error.success === false
1627
- ? error.errors
1628
- : error;
1629
- const errorMessages = [];
1630
- const properties = Object.getOwnPropertyNames(errors);
1631
- for (let property of properties) {
1632
- const messages = errors[property];
1633
- if (messages instanceof Array) {
1634
- for (let message of messages) {
1635
- const messageKey = `Validation.${message}`;
1636
- let translatedMessage = this.translateService.instant(messageKey);
1637
- // if translation not found then use message
1638
- if (messageKey == translatedMessage) {
1639
- translatedMessage = message;
1640
- }
1641
- if (property) {
1642
- const propertyKey = `Fields.${property}`;
1643
- let translatedProperty = this.translateService.instant(`Fields.${property}`);
1644
- // if translation not found then use property
1645
- if (propertyKey == translatedProperty) {
1646
- translatedProperty = property;
1647
- }
1648
- errorMessages.push(translatedProperty + ' - ' + translatedMessage);
1649
- }
1650
- else {
1651
- errorMessages.push(translatedMessage);
1652
- }
1609
+ this.showError(serviceName, operation, response);
1610
+ }
1611
+ //return throwError('Error! please try again later.');
1612
+ return of(result);
1613
+ };
1614
+ }
1615
+ /**
1616
+ * Returns a function that handles Http operation failures.
1617
+ * This error handler lets the app continue to run as if no error occurred.
1618
+ * @param serviceName = name of the data service that attempted the operation
1619
+ * @param operation - name of the operation that failed
1620
+ * @param show - optional value to show error
1621
+ */
1622
+ handleErrorResult(serviceName = '', operation = 'operation', show) {
1623
+ return (response) => {
1624
+ console.error(response);
1625
+ if (show) {
1626
+ this.showError(serviceName, operation, response);
1627
+ }
1628
+ let error;
1629
+ if (typeof response.error === 'string' && response.error[0] === '{') {
1630
+ error = JSON.parse(response.error);
1631
+ }
1632
+ else {
1633
+ error = response.error;
1634
+ }
1635
+ let result;
1636
+ if (error instanceof ErrorEvent) {
1637
+ result = { '': [response.error.message] };
1638
+ }
1639
+ if (typeof error === 'string') {
1640
+ result = { '': [response.error] };
1641
+ }
1642
+ else if (typeof error === 'object') {
1643
+ const errors = error.traceId || error.success === false
1644
+ ? error.errors
1645
+ : error;
1646
+ result = errors;
1647
+ }
1648
+ return of(result);
1649
+ };
1650
+ }
1651
+ showError(serviceName, operation, response) {
1652
+ switch (response.status) {
1653
+ case 0: //No Connection
1654
+ this.alert.error(`Can't connect to api server.`);
1655
+ break;
1656
+ case 400: //Bad Request
1657
+ let error;
1658
+ if (typeof response.error === 'string' && response.error[0] === '{') {
1659
+ error = JSON.parse(response.error);
1660
+ }
1661
+ else {
1662
+ error = response.error;
1663
+ }
1664
+ if (error instanceof ErrorEvent) {
1665
+ this.alert.error(`${serviceName}: ${operation} failed: ${response.error.message}`);
1666
+ }
1667
+ if (typeof error === 'string') {
1668
+ this.alert.error(response.error);
1669
+ }
1670
+ else if (typeof error === 'object') {
1671
+ const errors = error.traceId || error.success === false
1672
+ ? error.errors
1673
+ : error;
1674
+ const errorMessages = [];
1675
+ const properties = Object.getOwnPropertyNames(errors);
1676
+ for (let property of properties) {
1677
+ const messages = errors[property];
1678
+ if (messages instanceof Array) {
1679
+ for (let message of messages) {
1680
+ const messageKey = `Validation.${message}`;
1681
+ let translatedMessage = this.translate.instant(messageKey);
1682
+ // if translation not found then use message
1683
+ if (messageKey == translatedMessage) {
1684
+ translatedMessage = message;
1685
+ }
1686
+ if (property) {
1687
+ const propertyKey = `Fields.${property}`;
1688
+ let translatedProperty = this.translate.instant(`Fields.${property}`);
1689
+ // if translation not found then use property
1690
+ if (propertyKey == translatedProperty) {
1691
+ translatedProperty = property;
1653
1692
  }
1693
+ errorMessages.push(translatedProperty + ' - ' + translatedMessage);
1694
+ }
1695
+ else {
1696
+ errorMessages.push(translatedMessage);
1654
1697
  }
1655
1698
  }
1656
- this.alertService.addRange(AlertType.Danger, errorMessages);
1657
1699
  }
1658
- break;
1659
- case 401: //Unauthorized
1660
- this.alertService.error('Unauthorized');
1661
- this.router.navigate(['/login']);
1662
- break;
1663
- case 403: //Forbidden
1664
- this.alertService.error('Forbidden');
1665
- break;
1666
- case 404: //Not Found
1667
- this.alertService.error('Not Found');
1668
- break;
1669
- case 402: //Payment Required
1670
- this.alertService.error('License Payment Required');
1671
- break;
1672
- case 500: //Internal Server Error
1673
- this.alertService.error('Internal Server Error');
1674
- break;
1675
- default:
1676
- break;
1700
+ }
1701
+ this.alert.addRange(AlertType.Danger, errorMessages);
1677
1702
  }
1678
- }
1679
- //return throwError('Error! please try again later.');
1680
- return of(result);
1681
- };
1703
+ break;
1704
+ case 401: //Unauthorized
1705
+ this.alert.error('Unauthorized');
1706
+ this.router.navigate(['/login']);
1707
+ break;
1708
+ case 403: //Forbidden
1709
+ this.alert.error('Forbidden');
1710
+ break;
1711
+ case 404: //Not Found
1712
+ this.alert.error('Not Found');
1713
+ break;
1714
+ case 402: //Payment Required
1715
+ this.alert.error('License Payment Required');
1716
+ break;
1717
+ case 500: //Internal Server Error
1718
+ this.alert.error('Internal Server Error');
1719
+ break;
1720
+ default:
1721
+ break;
1722
+ }
1682
1723
  }
1683
1724
  }
1684
1725
  HttpErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HttpErrorHandler, deps: [{ token: AlertService }, { token: i1$1.TranslateService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });