@bnsights/bbsf-utilities 1.0.13 → 1.0.16

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.
@@ -3,7 +3,7 @@ import { HttpClient, HttpHeaders } from "@angular/common/http";
3
3
  import { RequestOptionsModel } from '../models/RequestOptionsModel';
4
4
  import { AuthService } from '../authentication/auth.service';
5
5
  import { EnvironmentService } from './environment.service';
6
- import { Observable, Subject } from 'rxjs';
6
+ import { Observable, Subject, throwError } from 'rxjs';
7
7
  import { UtilityService } from './utility.service';
8
8
  import { map, takeUntil, tap } from 'rxjs/operators';
9
9
  import { BBSFTranslateService } from './translate.service';
@@ -39,13 +39,7 @@ export class RequestHandlerService {
39
39
  get(Url, params, responseType, requestOptions) {
40
40
  if (requestOptions)
41
41
  this.requestOptions = requestOptions;
42
- let headers = new HttpHeaders({
43
- 'Content-Type': 'application/json',
44
- 'Authorization': this.authService.authorizationHeaderValue(),
45
- });
46
- this.currentLanguage = localStorage.getItem('language');
47
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
48
- headers = headers.set('ignore-cookies', 'true');
42
+ let headers = this.getHeaders();
49
43
  if (!this.requestOptions.disableBlockUI)
50
44
  this.utilityService.startBlockUI();
51
45
  let object;
@@ -61,18 +55,14 @@ export class RequestHandlerService {
61
55
  post(Url, model, responseType, params, requestOptions) {
62
56
  if (requestOptions)
63
57
  this.requestOptions = requestOptions;
64
- let headers = new HttpHeaders({
65
- 'Content-Type': 'application/json',
66
- 'Authorization': this.authService.authorizationHeaderValue(),
67
- });
68
- this.currentLanguage = localStorage.getItem('language');
69
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
70
- headers = headers.set('ignore-cookies', 'true');
58
+ let headers = this.getHeaders();
71
59
  if (!this.requestOptions.disableBlockUI)
72
60
  this.utilityService.startBlockUI();
73
61
  return this.http.post(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
74
62
  if (!this.requestOptions.disableBlockUI)
75
63
  this.utilityService.stopBlockUI();
64
+ }, error => {
65
+ this.handleError(error);
76
66
  }), map((data) => {
77
67
  return plainToClass(responseType, data, { excludeExtraneousValues: true });
78
68
  }));
@@ -80,18 +70,14 @@ export class RequestHandlerService {
80
70
  delete(Url, deletedId, requestOptions, responseType, params) {
81
71
  if (requestOptions)
82
72
  this.requestOptions = requestOptions;
83
- let headers = new HttpHeaders({
84
- 'Content-Type': 'application/json',
85
- 'Authorization': this.authService.authorizationHeaderValue(),
86
- });
87
- this.currentLanguage = localStorage.getItem('language');
88
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
89
- headers = headers.set('ignore-cookies', 'true');
73
+ let headers = this.getHeaders();
90
74
  if (!this.requestOptions.disableBlockUI)
91
75
  this.utilityService.startBlockUI();
92
76
  return this.http.delete(this.environmentService.getApiUrl() + Url + `/${deletedId}`, { headers: headers, params: params }).pipe(takeUntil(this.onDestroy$), tap((result) => {
93
77
  if (!this.requestOptions.disableBlockUI)
94
78
  this.utilityService.stopBlockUI();
79
+ }, error => {
80
+ this.handleError(error);
95
81
  }), map((data) => {
96
82
  return plainToClass(responseType, data, { excludeExtraneousValues: true });
97
83
  }));
@@ -99,19 +85,14 @@ export class RequestHandlerService {
99
85
  put(Url, model, params, responseType, requestOptions) {
100
86
  if (requestOptions)
101
87
  this.requestOptions = requestOptions;
102
- let headers = new HttpHeaders({
103
- 'Content-Type': 'application/json',
104
- 'Authorization': this.authService.authorizationHeaderValue(),
105
- });
106
- this.currentLanguage = localStorage.getItem('language');
107
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
108
- headers = headers.set('ignore-cookies', 'true');
88
+ let headers = this.getHeaders();
109
89
  if (!this.requestOptions.disableBlockUI)
110
90
  this.utilityService.startBlockUI();
111
91
  return this.http.put(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
112
92
  if (!this.requestOptions.disableBlockUI)
113
93
  this.utilityService.stopBlockUI();
114
94
  }, error => {
95
+ this.handleError(error);
115
96
  }), map((data) => {
116
97
  return plainToClass(responseType, data, { excludeExtraneousValues: true });
117
98
  }));
@@ -119,18 +100,14 @@ export class RequestHandlerService {
119
100
  download(Url, params, requestOptions) {
120
101
  if (requestOptions)
121
102
  this.requestOptions = requestOptions;
122
- let headers = new HttpHeaders({
123
- 'Content-Type': 'application/json',
124
- 'Authorization': this.authService.authorizationHeaderValue(),
125
- });
126
- this.currentLanguage = localStorage.getItem('language');
127
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
128
- headers = headers.set('ignore-cookies', 'true');
103
+ let headers = this.getHeaders();
129
104
  if (!this.requestOptions.disableBlockUI)
130
105
  this.utilityService.startBlockUI();
131
106
  return this.http.get(this.environmentService.getApiUrl() + Url, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
132
107
  if (!this.requestOptions.disableBlockUI)
133
108
  this.utilityService.stopBlockUI();
109
+ }, error => {
110
+ this.handleError(error);
134
111
  }));
135
112
  }
136
113
  destroyHandler() {
@@ -146,7 +123,9 @@ export class RequestHandlerService {
146
123
  this.utilityService.notifyErrorMessage();
147
124
  }
148
125
  else {
149
- if (err.status == 401)
126
+ if (err.status == 400)
127
+ throwError(err); //error 400 is thrown to be catch by the Form component to handle Fluent validation errors
128
+ else if (err.status == 401)
150
129
  this.router.navigate(["/Admin/account/login"]);
151
130
  else if (err.status == 403)
152
131
  this.utilityService.notifyErrorMessage(isEnglish ? "Sorry, You're not authorized to access this action" : "عذرا ليس لديك الصلاحيه لهذا الطلب");
@@ -157,6 +136,15 @@ export class RequestHandlerService {
157
136
  }
158
137
  this.utilityService.stopBlockUI();
159
138
  }
139
+ getHeaders() {
140
+ return new HttpHeaders({
141
+ 'Content-Type': 'application/json',
142
+ 'Authorization': this.authService.authorizationHeaderValue(),
143
+ 'Client-Local-Time-Zone': Intl.DateTimeFormat().resolvedOptions().timeZone,
144
+ 'Accept-Language': localStorage.getItem('language'),
145
+ 'ignore-cookies': 'true'
146
+ });
147
+ }
160
148
  }
161
149
  RequestHandlerService.decorators = [
162
150
  { type: Injectable }
@@ -169,4 +157,4 @@ RequestHandlerService.ctorParameters = () => [
169
157
  { type: BBSFTranslateService },
170
158
  { type: Router }
171
159
  ];
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdGhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL3JlcXVlc3RoYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXpDLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFFWSxJQUFnQixFQUNoQixXQUF3QixFQUN4QixrQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsb0JBQTBDLEVBQzFDLE1BQWM7UUFFeEIsMEdBQTBHO1FBUGhHLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVmxCLG1CQUFjLEdBQXdCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUNoRSxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFZckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6RCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sY0FBYztRQUVuQixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUF3QixFQUFFLEVBQUU7WUFDcEQsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxHQUFHLENBQUksR0FBVyxFQUFFLE1BQW1CLEVBQUUsWUFBMEIsRUFBRSxjQUFvQztRQUN2RyxJQUFJLGNBQWM7WUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDNUIsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRTtTQUM3RCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWM7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE1BQVMsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUMzRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUMxQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFPLEVBQUUsRUFBRTtZQUNsQixPQUFPLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUM1RSxDQUFDLENBQUMsQ0FDYyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLENBQUksR0FBVyxFQUFFLEtBQVcsRUFBRSxZQUEwQixFQUFFLE1BQW1CLEVBQUUsY0FBb0M7UUFFckgsSUFBSSxjQUFjO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzVCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUU7U0FFN0QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbkssU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDMUIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO2dCQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQU8sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sWUFBWSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFJLEdBQVcsRUFBRSxTQUFpQixFQUFFLGNBQW9DLEVBQUUsWUFBMEIsRUFBRSxNQUFtQjtRQUM3SCxJQUFJLGNBQWM7WUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDNUIsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRTtTQUM3RCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWM7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNoSSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUMxQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBTyxFQUFFLEVBQUU7WUFDbEIsT0FBTyxZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDNUUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxHQUFHLENBQUksR0FBVyxFQUFFLEtBQVcsRUFBRSxNQUFtQixFQUFFLFlBQTBCLEVBQUUsY0FBb0M7UUFDcEgsSUFBSSxjQUFjO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzVCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUU7U0FFN0QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbEssU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDMUIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO2dCQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUVYLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQU8sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sWUFBWSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzVFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFJLEdBQVcsRUFBRSxNQUFtQixFQUFFLGNBQW9DO1FBQ2hGLElBQUksY0FBYztZQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUN2QyxJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM1QixjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFO1NBRTdELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYztZQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0osU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDMUIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO2dCQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUM1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFzQjtRQUN4QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxDQUFDO1FBQ2pFLElBQUksR0FBRyxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1NBQ3pDO2FBQ0k7WUFDSCxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUE7aUJBQzNDLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0RBQW9ELENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLENBQUE7aUJBQzNJLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMscURBQXFELENBQUMsQ0FBQyxDQUFDLCtDQUErQyxDQUFDLENBQUE7O2dCQUUzSixJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7U0FDN0c7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OztZQXhMRixVQUFVOzs7WUFaRixVQUFVO1lBRVYsV0FBVztZQUNYLGtCQUFrQjtZQUVsQixjQUFjO1lBRWQsb0JBQW9CO1lBRXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IFJlcXVlc3RPcHRpb25zTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvUmVxdWVzdE9wdGlvbnNNb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4vdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFJlcXVlc3RIYW5kbGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZXF1ZXN0T3B0aW9uczogUmVxdWVzdE9wdGlvbnNNb2RlbCA9IG5ldyBSZXF1ZXN0T3B0aW9uc01vZGVsKCk7XHJcbiAgcHJpdmF0ZSBjdXJyZW50TGFuZ3VhZ2UgPSBcIlwiO1xyXG4gIHB1YmxpYyBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICAgICkge1xyXG4gICAgLy91c2luZyBsb2NhbFN0b3JhZ2UgIHRvIGF2b2lkIGNhbGwgZ2V0Q3VycmVudExhbmd1YWdlKCkgYmVjYXVzZSBpdCBpcyBub3QgYWxsIHRvIHVzZSBhc3luYyBpbiBjb25zdHJ1Y3RvclxyXG5cclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudExhbmd1YWdlICE9IGV2ZW50LmxhbmcpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGV2ZW50Lmxhbmc7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0THVja3lOdW1iZXIoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuXHJcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKHN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPikgPT4ge1xyXG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKG51bWJlcilcclxuICAgICAgICBzdWJqZWN0Lm5leHQobnVtYmVyKTtcclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9KS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0PFQ+KFVybDogc3RyaW5nLCBwYXJhbXM/OiBIdHRwUGFyYW1zLCByZXNwb25zZVR5cGU/OiBuZXcgKCkgPT4gVCwgcmVxdWVzdE9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9uc01vZGVsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICBpZiAocmVxdWVzdE9wdGlvbnMpXHJcbiAgICAgIHRoaXMucmVxdWVzdE9wdGlvbnMgPSByZXF1ZXN0T3B0aW9ucztcclxuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ0F1dGhvcml6YXRpb24nOiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpO1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLmN1cnJlbnRMYW5ndWFnZS50b1N0cmluZygpKTtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnaWdub3JlLWNvb2tpZXMnLCAndHJ1ZScpO1xyXG4gICAgaWYgKCF0aGlzLnJlcXVlc3RPcHRpb25zLmRpc2FibGVCbG9ja1VJKVxyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgbGV0IG9iamVjdDogVDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEFwaVVybCgpICsgVXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHBhcmFtczogcGFyYW1zIH0pLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxyXG4gICAgICB0YXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICB9KSwgbWFwKChkYXRhOiBUKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHBsYWluVG9DbGFzcyhyZXNwb25zZVR5cGUsIGRhdGEsIHsgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXM6IHRydWUgfSlcclxuICAgICAgfSlcclxuICAgICkgYXMgT2JzZXJ2YWJsZTxUPjtcclxuICB9XHJcblxyXG4gIHBvc3Q8VD4oVXJsOiBzdHJpbmcsIG1vZGVsPzogYW55LCByZXNwb25zZVR5cGU/OiBuZXcgKCkgPT4gVCwgcGFyYW1zPzogSHR0cFBhcmFtcywgcmVxdWVzdE9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9uc01vZGVsKTogT2JzZXJ2YWJsZTxUPiB7XHJcblxyXG4gICAgaWYgKHJlcXVlc3RPcHRpb25zKVxyXG4gICAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XHJcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogdGhpcy5hdXRoU2VydmljZS5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKSxcclxuXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyk7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMuY3VycmVudExhbmd1YWdlLnRvU3RyaW5nKCkpO1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdpZ25vcmUtY29va2llcycsICd0cnVlJyk7XHJcbiAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QXBpVXJsKCkgKyBVcmwsIG1vZGVsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHBhcmFtczogcGFyYW1zLCByZXNwb25zZVR5cGU6IHRoaXMucmVxdWVzdE9wdGlvbnMucmVzcG9uc2VUeXBlIH0pLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxyXG4gICAgICB0YXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSksIG1hcCgoZGF0YTogVCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MocmVzcG9uc2VUeXBlLCBkYXRhLCB7IGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzOiB0cnVlIH0pXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlPFQ+KFVybDogc3RyaW5nLCBkZWxldGVkSWQ6IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9uc01vZGVsLCByZXNwb25zZVR5cGU/OiBuZXcgKCkgPT4gVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgaWYgKHJlcXVlc3RPcHRpb25zKVxyXG4gICAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XHJcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogdGhpcy5hdXRoU2VydmljZS5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKTtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0LUxhbmd1YWdlJywgdGhpcy5jdXJyZW50TGFuZ3VhZ2UudG9TdHJpbmcoKSk7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ2lnbm9yZS1jb29raWVzJywgJ3RydWUnKTtcclxuXHJcbiAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxUPih0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIFVybCArIGAvJHtkZWxldGVkSWR9YCwgeyBoZWFkZXJzOiBoZWFkZXJzLCBwYXJhbXM6IHBhcmFtcyB9KS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcclxuICAgICAgdGFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0pLCBtYXAoKGRhdGE6IFQpID0+IHtcclxuICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKHJlc3BvbnNlVHlwZSwgZGF0YSwgeyBleGNsdWRlRXh0cmFuZW91c1ZhbHVlczogdHJ1ZSB9KVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1dDxUPihVcmw6IHN0cmluZywgbW9kZWw/OiBhbnksIHBhcmFtcz86IEh0dHBQYXJhbXMsIHJlc3BvbnNlVHlwZT86IG5ldyAoKSA9PiBULCByZXF1ZXN0T3B0aW9ucz86IFJlcXVlc3RPcHRpb25zTW9kZWwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGlmIChyZXF1ZXN0T3B0aW9ucylcclxuICAgICAgdGhpcy5yZXF1ZXN0T3B0aW9ucyA9IHJlcXVlc3RPcHRpb25zO1xyXG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnQXV0aG9yaXphdGlvbic6IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCksXHJcblxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpO1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLmN1cnJlbnRMYW5ndWFnZS50b1N0cmluZygpKTtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnaWdub3JlLWNvb2tpZXMnLCAndHJ1ZScpO1xyXG4gICAgaWYgKCF0aGlzLnJlcXVlc3RPcHRpb25zLmRpc2FibGVCbG9ja1VJKVxyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4odGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QXBpVXJsKCkgKyBVcmwsIG1vZGVsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHBhcmFtczogcGFyYW1zLCByZXNwb25zZVR5cGU6IHRoaXMucmVxdWVzdE9wdGlvbnMucmVzcG9uc2VUeXBlIH0pLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxyXG4gICAgICB0YXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG5cclxuICAgICAgfSksIG1hcCgoZGF0YTogVCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MocmVzcG9uc2VUeXBlLCBkYXRhLCB7IGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzOiB0cnVlIH0pXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWQ8VD4oVXJsOiBzdHJpbmcsIHBhcmFtcz86IEh0dHBQYXJhbXMsIHJlcXVlc3RPcHRpb25zPzogUmVxdWVzdE9wdGlvbnNNb2RlbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgaWYgKHJlcXVlc3RPcHRpb25zKVxyXG4gICAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XHJcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogdGhpcy5hdXRoU2VydmljZS5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKSxcclxuXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyk7XHJcbiAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMuY3VycmVudExhbmd1YWdlLnRvU3RyaW5nKCkpO1xyXG4gICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdpZ25vcmUtY29va2llcycsICd0cnVlJyk7XHJcbiAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIFVybCwgeyBoZWFkZXJzOiBoZWFkZXJzLCBwYXJhbXM6IHBhcmFtcywgcmVzcG9uc2VUeXBlOiB0aGlzLnJlcXVlc3RPcHRpb25zLnJlc3BvbnNlVHlwZSB9KS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcclxuICAgICAgdGFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlc3Ryb3lIYW5kbGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJjbGVhckludGVydmFsXCIpXHJcbiAgICB0aGlzLmRlc3Ryb3lIYW5kbGVyKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgdmFyIGlzRW5nbGlzaCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0Q3VycmVudExhbmd1YWdlKCkgPT0gXCJlblwiO1xyXG4gICAgaWYgKGVyci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlFcnJvck1lc3NhZ2UoKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChlcnIuc3RhdHVzID09IDQwMSlcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXSlcclxuICAgICAgZWxzZSBpZiAoZXJyLnN0YXR1cyA9PSA0MDMpXHJcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlFcnJvck1lc3NhZ2UoaXNFbmdsaXNoID8gXCJTb3JyeSwgWW91J3JlIG5vdCBhdXRob3JpemVkIHRvIGFjY2VzcyB0aGlzIGFjdGlvblwiIDogXCLYudiw2LHYpyDZhNmK2LMg2YTYr9mK2YMg2KfZhNi12YTYp9it2YrZhyDZhNmH2LDYpyDYp9mE2LfZhNioXCIpXHJcbiAgICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT0gNTEwKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGlzRW5nbGlzaCA/IFwiQ2FuIG5vdCBkZWxldGUgdGhpcyBpdGVtIGFzIGl0IGlzIHJlbGF0ZWQgdG8gb3RoZXJzXCIgOiBcItmE2Kcg2YrZhdmD2YYg2K3YsNmBINmH2LDYpyDYp9mE2LnZhti12LEg2YTYo9mG2Ycg2YXYsdiq2KjYtyDYqNi52YbYp9i12LEg2KPYrtix2YlcIilcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGBlcnJvciBtZXNzYWdlIGlzOiAke2Vyci5lcnJvciA/IGVyci5lcnJvci5NZXNzYWdlIDogZXJyLm1lc3NhZ2V9YClcclxuICAgIH1cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcbn1cclxuIl19
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdGhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL3JlcXVlc3RoYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6QyxNQUFNLE9BQU8scUJBQXFCO0lBSWhDLFlBRVksSUFBZ0IsRUFDaEIsV0FBd0IsRUFDeEIsa0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxNQUFjO1FBRXhCLDBHQUEwRztRQVBoRyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHVCQUFrQixH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QUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMscURBQXFELENBQUMsQ0FBQyxDQUFDLCtDQUErQyxDQUFDLENBQUE7O2dCQUUzSixJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7U0FDN0c7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxXQUFXLENBQUM7WUFDckIsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRTtZQUM1RCx3QkFBd0IsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUTtZQUMxRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNuRCxnQkFBZ0IsRUFBRSxNQUFNO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQTdLRixVQUFVOzs7WUFaRixVQUFVO1lBRVYsV0FBVztZQUNYLGtCQUFrQjtZQUVsQixjQUFjO1lBRWQsb0JBQW9CO1lBRXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IFJlcXVlc3RPcHRpb25zTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvUmVxdWVzdE9wdGlvbnNNb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4vdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFJlcXVlc3RIYW5kbGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZXF1ZXN0T3B0aW9uczogUmVxdWVzdE9wdGlvbnNNb2RlbCA9IG5ldyBSZXF1ZXN0T3B0aW9uc01vZGVsKCk7XHJcbiAgcHJpdmF0ZSBjdXJyZW50TGFuZ3VhZ2UgPSBcIlwiO1xyXG4gIHB1YmxpYyBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICAgICkge1xyXG4gICAgLy91c2luZyBsb2NhbFN0b3JhZ2UgIHRvIGF2b2lkIGNhbGwgZ2V0Q3VycmVudExhbmd1YWdlKCkgYmVjYXVzZSBpdCBpcyBub3QgYWxsIHRvIHVzZSBhc3luYyBpbiBjb25zdHJ1Y3RvclxyXG5cclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudExhbmd1YWdlICE9IGV2ZW50LmxhbmcpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGV2ZW50Lmxhbmc7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0THVja3lOdW1iZXIoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuXHJcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKHN1YmplY3Q6IFN1YmplY3Q8bnVtYmVyPikgPT4ge1xyXG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKG51bWJlcilcclxuICAgICAgICBzdWJqZWN0Lm5leHQobnVtYmVyKTtcclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9KS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0PFQ+KFVybDogc3RyaW5nLCBwYXJhbXM/OiBIdHRwUGFyYW1zLCByZXNwb25zZVR5cGU/OiBuZXcgKCkgPT4gVCwgcmVxdWVzdE9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9uc01vZGVsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICBpZiAocmVxdWVzdE9wdGlvbnMpXHJcbiAgICAgIHRoaXMucmVxdWVzdE9wdGlvbnMgPSByZXF1ZXN0T3B0aW9ucztcclxuXHJcbiAgICBsZXQgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKCF0aGlzLnJlcXVlc3RPcHRpb25zLmRpc2FibGVCbG9ja1VJKVxyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgbGV0IG9iamVjdDogVDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEFwaVVybCgpICsgVXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHBhcmFtczogcGFyYW1zIH0pLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxyXG4gICAgICB0YXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICB9KSwgbWFwKChkYXRhOiBUKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHBsYWluVG9DbGFzcyhyZXNwb25zZVR5cGUsIGRhdGEsIHsgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXM6IHRydWUgfSlcclxuICAgICAgfSlcclxuICAgICkgYXMgT2JzZXJ2YWJsZTxUPjtcclxuICB9XHJcblxyXG4gIHBvc3Q8VD4oVXJsOiBzdHJpbmcsIG1vZGVsPzogYW55LCByZXNwb25zZVR5cGU/OiBuZXcgKCkgPT4gVCwgcGFyYW1zPzogSHR0cFBhcmFtcywgcmVxdWVzdE9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9uc01vZGVsKTogT2JzZXJ2YWJsZTxUPiB7XHJcblxyXG4gICAgaWYgKHJlcXVlc3RPcHRpb25zKVxyXG4gICAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XHJcblxyXG4gICAgbGV0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIFVybCwgbW9kZWwsIHsgaGVhZGVyczogaGVhZGVycywgcGFyYW1zOiBwYXJhbXMsIHJlc3BvbnNlVHlwZTogdGhpcy5yZXF1ZXN0T3B0aW9ucy5yZXNwb25zZVR5cGUgfSkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXHJcbiAgICAgIHRhcCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlcXVlc3RPcHRpb25zLmRpc2FibGVCbG9ja1VJKVxyXG4gICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgIH0pLCBtYXAoKGRhdGE6IFQpID0+IHtcclxuICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKHJlc3BvbnNlVHlwZSwgZGF0YSwgeyBleGNsdWRlRXh0cmFuZW91c1ZhbHVlczogdHJ1ZSB9KVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZTxUPihVcmw6IHN0cmluZywgZGVsZXRlZElkOiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogUmVxdWVzdE9wdGlvbnNNb2RlbCwgcmVzcG9uc2VUeXBlPzogbmV3ICgpID0+IFQsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGlmIChyZXF1ZXN0T3B0aW9ucylcclxuICAgICAgdGhpcy5yZXF1ZXN0T3B0aW9ucyA9IHJlcXVlc3RPcHRpb25zO1xyXG5cclxuICAgIGxldCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxUPih0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIFVybCArIGAvJHtkZWxldGVkSWR9YCwgeyBoZWFkZXJzOiBoZWFkZXJzLCBwYXJhbXM6IHBhcmFtcyB9KS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcclxuICAgICAgdGFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgICAgfSksIG1hcCgoZGF0YTogVCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MocmVzcG9uc2VUeXBlLCBkYXRhLCB7IGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzOiB0cnVlIH0pXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHV0PFQ+KFVybDogc3RyaW5nLCBtb2RlbD86IGFueSwgcGFyYW1zPzogSHR0cFBhcmFtcywgcmVzcG9uc2VUeXBlPzogbmV3ICgpID0+IFQsIHJlcXVlc3RPcHRpb25zPzogUmVxdWVzdE9wdGlvbnNNb2RlbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgaWYgKHJlcXVlc3RPcHRpb25zKVxyXG4gICAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XHJcblxyXG4gICAgbGV0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEFwaVVybCgpICsgVXJsLCBtb2RlbCwgeyBoZWFkZXJzOiBoZWFkZXJzLCBwYXJhbXM6IHBhcmFtcywgcmVzcG9uc2VUeXBlOiB0aGlzLnJlcXVlc3RPcHRpb25zLnJlc3BvbnNlVHlwZSB9KS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcclxuICAgICAgdGFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMucmVxdWVzdE9wdGlvbnMuZGlzYWJsZUJsb2NrVUkpXHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgICAgfSksIG1hcCgoZGF0YTogVCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MocmVzcG9uc2VUeXBlLCBkYXRhLCB7IGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzOiB0cnVlIH0pXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWQ8VD4oVXJsOiBzdHJpbmcsIHBhcmFtcz86IEh0dHBQYXJhbXMsIHJlcXVlc3RPcHRpb25zPzogUmVxdWVzdE9wdGlvbnNNb2RlbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgaWYgKHJlcXVlc3RPcHRpb25zKVxyXG4gICAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XHJcblxyXG4gICAgbGV0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEFwaVVybCgpICsgVXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHBhcmFtczogcGFyYW1zLCByZXNwb25zZVR5cGU6IHRoaXMucmVxdWVzdE9wdGlvbnMucmVzcG9uc2VUeXBlIH0pLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxyXG4gICAgICB0YXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5yZXF1ZXN0T3B0aW9ucy5kaXNhYmxlQmxvY2tVSSlcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZXN0cm95SGFuZGxlcigpOiB2b2lkIHtcclxuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiY2xlYXJJbnRlcnZhbFwiKVxyXG4gICAgdGhpcy5kZXN0cm95SGFuZGxlcigpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIHZhciBpc0VuZ2xpc2ggPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpID09IFwiZW5cIjtcclxuICAgIGlmIChlcnIuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgIGlmIChlcnIuc3RhdHVzID09IDQwMClcclxuICAgICAgICB0aHJvd0Vycm9yKGVycik7Ly9lcnJvciA0MDAgaXMgdGhyb3duIHRvIGJlIGNhdGNoIGJ5IHRoZSBGb3JtIGNvbXBvbmVudCB0byBoYW5kbGUgRmx1ZW50IHZhbGlkYXRpb24gZXJyb3JzIFxyXG4gICAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDQwMSlcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXSlcclxuICAgICAgZWxzZSBpZiAoZXJyLnN0YXR1cyA9PSA0MDMpXHJcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlFcnJvck1lc3NhZ2UoaXNFbmdsaXNoID8gXCJTb3JyeSwgWW91J3JlIG5vdCBhdXRob3JpemVkIHRvIGFjY2VzcyB0aGlzIGFjdGlvblwiIDogXCLYudiw2LHYpyDZhNmK2LMg2YTYr9mK2YMg2KfZhNi12YTYp9it2YrZhyDZhNmH2LDYpyDYp9mE2LfZhNioXCIpXHJcbiAgICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT0gNTEwKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGlzRW5nbGlzaCA/IFwiQ2FuIG5vdCBkZWxldGUgdGhpcyBpdGVtIGFzIGl0IGlzIHJlbGF0ZWQgdG8gb3RoZXJzXCIgOiBcItmE2Kcg2YrZhdmD2YYg2K3YsNmBINmH2LDYpyDYp9mE2LnZhti12LEg2YTYo9mG2Ycg2YXYsdiq2KjYtyDYqNi52YbYp9i12LEg2KPYrtix2YlcIilcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGBlcnJvciBtZXNzYWdlIGlzOiAke2Vyci5lcnJvciA/IGVyci5lcnJvci5NZXNzYWdlIDogZXJyLm1lc3NhZ2V9YClcclxuICAgIH1cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SGVhZGVycygpIHtcclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnQXV0aG9yaXphdGlvbic6IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCksXHJcbiAgICAgICdDbGllbnQtTG9jYWwtVGltZS1ab25lJzogSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLFxyXG4gICAgICAnQWNjZXB0LUxhbmd1YWdlJzogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyksXHJcbiAgICAgICdpZ25vcmUtY29va2llcyc6ICd0cnVlJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -36,7 +36,7 @@ export class UtilityService {
36
36
  isCurrentLanguageArabic() {
37
37
  return this.getCurrentLanguage() == "ar";
38
38
  }
39
- notifySuccessMessage(Message, title, time) {
39
+ notifySuccessMessage(Message, title, time, showHeader = true) {
40
40
  let MessageTemplate = this.getResourceValue("SuccessMessage");
41
41
  let titleTemplate = this.getResourceValue("Success");
42
42
  if (Message) {
@@ -46,9 +46,9 @@ export class UtilityService {
46
46
  titleTemplate = title;
47
47
  }
48
48
  let toaster = AppInjector.get(ToastrService);
49
- toaster.success(MessageTemplate, titleTemplate);
49
+ showHeader ? toaster.success(MessageTemplate, titleTemplate) : toaster.success(MessageTemplate);
50
50
  }
51
- notifyErrorMessage(Message, title, time) {
51
+ notifyErrorMessage(Message, title, time, showHeader = true) {
52
52
  let MessageTemplate = this.getResourceValue("ErrorMessage");
53
53
  let titleTemplate = this.getResourceValue("Error");
54
54
  if (Message) {
@@ -58,9 +58,9 @@ export class UtilityService {
58
58
  titleTemplate = title;
59
59
  }
60
60
  const toaster = AppInjector.get(ToastrService);
61
- toaster.error(MessageTemplate, titleTemplate);
61
+ showHeader ? toaster.error(MessageTemplate, titleTemplate) : toaster.error(MessageTemplate);
62
62
  }
63
- notifyWarningMessage(Message, title, time) {
63
+ notifyWarningMessage(Message, title, time, showHeader = true) {
64
64
  let MessageTemplate = this.getResourceValue("WarningMessage");
65
65
  let titleTemplate = this.getResourceValue("Warning");
66
66
  if (Message) {
@@ -70,7 +70,7 @@ export class UtilityService {
70
70
  titleTemplate = title;
71
71
  }
72
72
  const toaster = AppInjector.get(ToastrService);
73
- toaster.warning(MessageTemplate, titleTemplate);
73
+ showHeader ? toaster.warning(MessageTemplate, titleTemplate) : toaster.warning(MessageTemplate);
74
74
  }
75
75
  startBlockUI() {
76
76
  this.blockUI.start();
@@ -93,4 +93,4 @@ UtilityService.ctorParameters = () => [
93
93
  __decorate([
94
94
  BlockUI()
95
95
  ], UtilityService.prototype, "blockUI", void 0);
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWEsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFPM0QsTUFBTSxPQUFPLGNBQWM7SUFLdkIsWUFBb0IsVUFBZ0MsRUFBVSxXQUF3QixFQUFXLGtCQUFzQztRQUFuSCxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUh2SSxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUt4QixDQUFDO0lBR0QsZ0JBQWdCLENBQUMsR0FBVztRQUN4QixJQUFJLGFBQWEsR0FBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMvQyxPQUFPLGFBQWEsQ0FBQztJQUV6QixDQUFDO0lBRUEsa0JBQWtCO1FBQ2IsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkUsSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxJQUFLLElBQUk7WUFDVCxlQUFlLEdBQUMsSUFBSSxDQUFDOztZQUVwQixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNuRCxPQUFPLGVBQWUsQ0FBQztJQUM3QixDQUFDO0lBQ0Esd0JBQXdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxDQUFBO0lBQzVDLENBQUM7SUFDRCx1QkFBdUI7UUFDbkIsT0FBUyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxJQUFJLENBQUE7SUFDOUMsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWdCLEVBQUUsS0FBYyxFQUFFLElBQWE7UUFFaEUsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELElBQUksT0FBTyxFQUFFO1lBQ1QsZUFBZSxHQUFHLE9BQU8sQ0FBQztTQUM3QjtRQUNELElBQUksS0FBSyxFQUFFO1lBQ1AsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUN6QjtRQUNELElBQUksT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQWdCLEVBQUUsS0FBYyxFQUFFLElBQWE7UUFFOUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sRUFBRTtZQUNULGVBQWUsR0FBRyxPQUFPLENBQUM7U0FDN0I7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNQLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFDRCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFnQixFQUFFLEtBQWMsRUFBRSxJQUFhO1FBRWhFLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxJQUFJLE9BQU8sRUFBRTtZQUNULGVBQWUsR0FBRyxPQUFPLENBQUM7U0FDN0I7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNQLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFDRCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7OztZQWxGSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVJRLG9CQUFvQjtZQURwQixXQUFXO1lBR1gsa0JBQWtCOztBQVVaO0lBQVYsT0FBTyxFQUFFOytDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBIb3N0LCBTa2lwU2VsZiwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQmxvY2tVSSwgTmdCbG9ja1VJIH0gZnJvbSAnbmctYmxvY2stdWknO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGhlbnRpY2F0aW9uL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcEluamVjdG9yIH0gZnJvbSAnLi4vLi4vYmJzZi11dGlsaXRpZXMubW9kdWxlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsaXR5U2VydmljZSB7XHJcblxyXG4gICAgaXNDcmVhdGVkQmVmb3JlID0gZmFsc2U7XHJcbiAgICBAQmxvY2tVSSgpIGJsb2NrVUk6IE5nQmxvY2tVSTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0b3I6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSAsIHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsKSB7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXRSZXNvdXJjZVZhbHVlKEtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgUmVzb3VyY2VWYWx1ZSA9dGhpcy50cmFuc2xhdG9yLmluc3RhbnQoS2V5KVxyXG4gICAgICAgIHJldHVybiBSZXNvdXJjZVZhbHVlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAgZ2V0Q3VycmVudExhbmd1YWdlKCkge1xyXG4gICAgICAgICAgbGV0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldERlZmF1bHRMYW5ndWFnZSgpO1xyXG4gICAgICAgICAgbGV0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKTtcclxuICAgICAgICAgIGlmICggbGFuZykgXHJcbiAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2U9bGFuZztcclxuICAgICAgICAgIGVsc2UgXHJcbiAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmd1YWdlJywgY3VycmVudExhbmd1YWdlKTtcclxuICAgICAgICAgIHJldHVybiBjdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICB9XHJcbiAgICAgaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnRMYW5ndWFnZSgpID09IFwiZW5cIlxyXG4gICAgfVxyXG4gICAgaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKSB7XHJcbiAgICAgICAgcmV0dXJuICAgdGhpcy5nZXRDdXJyZW50TGFuZ3VhZ2UoKSA9PSBcImFyXCJcclxuICAgIH1cclxuXHJcbiAgICBub3RpZnlTdWNjZXNzTWVzc2FnZShNZXNzYWdlPzogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgdGltZT86IG51bWJlcikge1xyXG5cclxuICAgICAgICBsZXQgTWVzc2FnZVRlbXBsYXRlID0gdGhpcy5nZXRSZXNvdXJjZVZhbHVlKFwiU3VjY2Vzc01lc3NhZ2VcIik7XHJcbiAgICAgICAgbGV0IHRpdGxlVGVtcGxhdGUgPSB0aGlzLmdldFJlc291cmNlVmFsdWUoXCJTdWNjZXNzXCIpO1xyXG4gICAgICAgIGlmIChNZXNzYWdlKSB7XHJcbiAgICAgICAgICAgIE1lc3NhZ2VUZW1wbGF0ZSA9IE1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlID0gdGl0bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0b2FzdGVyID0gQXBwSW5qZWN0b3IuZ2V0KFRvYXN0clNlcnZpY2UpO1xyXG4gICAgICAgIHRvYXN0ZXIuc3VjY2VzcyhNZXNzYWdlVGVtcGxhdGUsIHRpdGxlVGVtcGxhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5vdGlmeUVycm9yTWVzc2FnZShNZXNzYWdlPzogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgdGltZT86IG51bWJlcikge1xyXG5cclxuICAgICAgICBsZXQgTWVzc2FnZVRlbXBsYXRlID0gdGhpcy5nZXRSZXNvdXJjZVZhbHVlKFwiRXJyb3JNZXNzYWdlXCIpO1xyXG4gICAgICAgIGxldCB0aXRsZVRlbXBsYXRlID0gdGhpcy5nZXRSZXNvdXJjZVZhbHVlKFwiRXJyb3JcIik7XHJcbiAgICAgICAgaWYgKE1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgTWVzc2FnZVRlbXBsYXRlID0gTWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgICAgICAgIHRpdGxlVGVtcGxhdGUgPSB0aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdG9hc3RlciA9IEFwcEluamVjdG9yLmdldChUb2FzdHJTZXJ2aWNlKTtcclxuICAgICAgICB0b2FzdGVyLmVycm9yKE1lc3NhZ2VUZW1wbGF0ZSwgdGl0bGVUZW1wbGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbm90aWZ5V2FybmluZ01lc3NhZ2UoTWVzc2FnZT86IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIHRpbWU/OiBudW1iZXIpIHtcclxuXHJcbiAgICAgICAgbGV0IE1lc3NhZ2VUZW1wbGF0ZSA9IHRoaXMuZ2V0UmVzb3VyY2VWYWx1ZShcIldhcm5pbmdNZXNzYWdlXCIpO1xyXG4gICAgICAgIGxldCB0aXRsZVRlbXBsYXRlID0gdGhpcy5nZXRSZXNvdXJjZVZhbHVlKFwiV2FybmluZ1wiKTtcclxuICAgICAgICBpZiAoTWVzc2FnZSkge1xyXG4gICAgICAgICAgICBNZXNzYWdlVGVtcGxhdGUgPSBNZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGl0bGUpIHtcclxuICAgICAgICAgICAgdGl0bGVUZW1wbGF0ZSA9IHRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0b2FzdGVyID0gQXBwSW5qZWN0b3IuZ2V0KFRvYXN0clNlcnZpY2UpO1xyXG4gICAgICAgIHRvYXN0ZXIud2FybmluZyhNZXNzYWdlVGVtcGxhdGUsIHRpdGxlVGVtcGxhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0QmxvY2tVSSgpIHtcclxuICAgICAgICB0aGlzLmJsb2NrVUkuc3RhcnQoKTtcclxuICAgIH1cclxuICAgIHN0b3BCbG9ja1VJKCkge1xyXG4gICAgICAgIHRoaXMuYmxvY2tVSS5zdG9wKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWEsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFPM0QsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBb0IsVUFBZ0MsRUFBVSxXQUF3QixFQUFVLGtCQUFzQztRQUFsSCxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUh0SSxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUt4QixDQUFDO0lBR0QsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNoRCxPQUFPLGFBQWEsQ0FBQztJQUV2QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25FLElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMs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VSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFSUSxvQkFBb0I7WUFEcEIsV0FBVztZQUdYLGtCQUFrQjs7QUFVZDtJQUFWLE9BQU8sRUFBRTsrQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgSG9zdCwgU2tpcFNlbGYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IEJsb2NrVUksIE5nQmxvY2tVSSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoZW50aWNhdGlvbi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBJbmplY3RvciB9IGZyb20gJy4uLy4uL2Jic2YtdXRpbGl0aWVzLm1vZHVsZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4vZW52aXJvbm1lbnQuc2VydmljZSc7XHJcblxyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFV0aWxpdHlTZXJ2aWNlIHtcclxuXHJcbiAgaXNDcmVhdGVkQmVmb3JlID0gZmFsc2U7XHJcbiAgQEJsb2NrVUkoKSBibG9ja1VJOiBOZ0Jsb2NrVUk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRvcjogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLCkge1xyXG5cclxuICB9XHJcblxyXG5cclxuICBnZXRSZXNvdXJjZVZhbHVlKEtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBSZXNvdXJjZVZhbHVlID0gdGhpcy50cmFuc2xhdG9yLmluc3RhbnQoS2V5KVxyXG4gICAgcmV0dXJuIFJlc291cmNlVmFsdWU7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudExhbmd1YWdlKCkge1xyXG4gICAgbGV0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldERlZmF1bHRMYW5ndWFnZSgpO1xyXG4gICAgbGV0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKTtcclxuICAgIGlmIChsYW5nKVxyXG4gICAgICBjdXJyZW50TGFuZ3VhZ2UgPSBsYW5nO1xyXG4gICAgZWxzZVxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZ3VhZ2UnLCBjdXJyZW50TGFuZ3VhZ2UpO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRMYW5ndWFnZTtcclxuICB9XHJcbiAgaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudExhbmd1YWdlKCkgPT0gXCJlblwiXHJcbiAgfVxyXG4gIGlzQ3VycmVudExhbmd1YWdlQXJhYmljKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudExhbmd1YWdlKCkgPT0gXCJhclwiXHJcbiAgfVxyXG5cclxuICBub3RpZnlTdWNjZXNzTWVzc2FnZShNZXNzYWdlPzogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgdGltZT86IG51bWJlciwgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWUpIHtcclxuXHJcbiAgICBsZXQgTWVzc2FnZVRlbXBsYXRlID0gdGhpcy5nZXRSZXNvdXJjZVZhbHVlKFwiU3VjY2Vzc01lc3NhZ2VcIik7XHJcbiAgICBsZXQgdGl0bGVUZW1wbGF0ZSA9IHRoaXMuZ2V0UmVzb3VyY2VWYWx1ZShcIlN1Y2Nlc3NcIik7XHJcbiAgICBpZiAoTWVzc2FnZSkge1xyXG4gICAgICBNZXNzYWdlVGVtcGxhdGUgPSBNZXNzYWdlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHRpdGxlVGVtcGxhdGUgPSB0aXRsZTtcclxuICAgIH1cclxuICAgIGxldCB0b2FzdGVyID0gQXBwSW5qZWN0b3IuZ2V0KFRvYXN0clNlcnZpY2UpO1xyXG4gICAgc2hvd0hlYWRlciA/IHRvYXN0ZXIuc3VjY2VzcyhNZXNzYWdlVGVtcGxhdGUsIHRpdGxlVGVtcGxhdGUpIDogdG9hc3Rlci5zdWNjZXNzKE1lc3NhZ2VUZW1wbGF0ZSk7XHJcbiAgfVxyXG5cclxuICBub3RpZnlFcnJvck1lc3NhZ2UoTWVzc2FnZT86IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIHRpbWU/OiBudW1iZXIsIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlKSB7XHJcblxyXG4gICAgbGV0IE1lc3NhZ2VUZW1wbGF0ZSA9IHRoaXMuZ2V0UmVzb3VyY2VWYWx1ZShcIkVycm9yTWVzc2FnZVwiKTtcclxuICAgIGxldCB0aXRsZVRlbXBsYXRlID0gdGhpcy5nZXRSZXNvdXJjZVZhbHVlKFwiRXJyb3JcIik7XHJcbiAgICBpZiAoTWVzc2FnZSkge1xyXG4gICAgICBNZXNzYWdlVGVtcGxhdGUgPSBNZXNzYWdlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHRpdGxlVGVtcGxhdGUgPSB0aXRsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvYXN0ZXIgPSBBcHBJbmplY3Rvci5nZXQoVG9hc3RyU2VydmljZSk7XHJcbiAgICBzaG93SGVhZGVyID8gdG9hc3Rlci5lcnJvcihNZXNzYWdlVGVtcGxhdGUsIHRpdGxlVGVtcGxhdGUpIDogdG9hc3Rlci5lcnJvcihNZXNzYWdlVGVtcGxhdGUpO1xyXG4gIH1cclxuXHJcbiAgbm90aWZ5V2FybmluZ01lc3NhZ2UoTWVzc2FnZT86IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIHRpbWU/OiBudW1iZXIsIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlKSB7XHJcblxyXG4gICAgbGV0IE1lc3NhZ2VUZW1wbGF0ZSA9IHRoaXMuZ2V0UmVzb3VyY2VWYWx1ZShcIldhcm5pbmdNZXNzYWdlXCIpO1xyXG4gICAgbGV0IHRpdGxlVGVtcGxhdGUgPSB0aGlzLmdldFJlc291cmNlVmFsdWUoXCJXYXJuaW5nXCIpO1xyXG4gICAgaWYgKE1lc3NhZ2UpIHtcclxuICAgICAgTWVzc2FnZVRlbXBsYXRlID0gTWVzc2FnZTtcclxuICAgIH1cclxuICAgIGlmICh0aXRsZSkge1xyXG4gICAgICB0aXRsZVRlbXBsYXRlID0gdGl0bGU7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0b2FzdGVyID0gQXBwSW5qZWN0b3IuZ2V0KFRvYXN0clNlcnZpY2UpO1xyXG4gICAgc2hvd0hlYWRlciA/IHRvYXN0ZXIud2FybmluZyhNZXNzYWdlVGVtcGxhdGUsIHRpdGxlVGVtcGxhdGUpIDogdG9hc3Rlci53YXJuaW5nKE1lc3NhZ2VUZW1wbGF0ZSk7XHJcbiAgfVxyXG5cclxuICBzdGFydEJsb2NrVUkoKSB7XHJcbiAgICB0aGlzLmJsb2NrVUkuc3RhcnQoKTtcclxuICB9XHJcbiAgc3RvcEJsb2NrVUkoKSB7XHJcbiAgICB0aGlzLmJsb2NrVUkuc3RvcCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -13,14 +13,14 @@ import { __awaiter, __decorate } from 'tslib';
13
13
  import * as i1$1 from '@angular/common/http';
14
14
  import { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';
15
15
  import { UserManager, WebStorageStateStore } from 'oidc-client';
16
- import { BehaviorSubject, Subject, Observable } from 'rxjs';
16
+ import { BehaviorSubject, Subject, Observable, throwError } from 'rxjs';
17
17
  import { takeUntil, tap, map } from 'rxjs/operators';
18
18
  import { plainToClass } from 'class-transformer';
19
19
 
20
20
  // This file can be replaced during build by using the `fileReplacements` array.
21
21
  // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
22
22
  // The list of file replacements can be found in `angular.json`.
23
- const environment = Object.assign({}, window.Envirnment);
23
+ const environment = Object.assign({}, window.Environment);
24
24
  /*
25
25
  * In development mode, to ignore zone related error stack frames such as
26
26
  * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can
@@ -248,7 +248,7 @@ class UtilityService {
248
248
  isCurrentLanguageArabic() {
249
249
  return this.getCurrentLanguage() == "ar";
250
250
  }
251
- notifySuccessMessage(Message, title, time) {
251
+ notifySuccessMessage(Message, title, time, showHeader = true) {
252
252
  let MessageTemplate = this.getResourceValue("SuccessMessage");
253
253
  let titleTemplate = this.getResourceValue("Success");
254
254
  if (Message) {
@@ -258,9 +258,9 @@ class UtilityService {
258
258
  titleTemplate = title;
259
259
  }
260
260
  let toaster = AppInjector.get(ToastrService);
261
- toaster.success(MessageTemplate, titleTemplate);
261
+ showHeader ? toaster.success(MessageTemplate, titleTemplate) : toaster.success(MessageTemplate);
262
262
  }
263
- notifyErrorMessage(Message, title, time) {
263
+ notifyErrorMessage(Message, title, time, showHeader = true) {
264
264
  let MessageTemplate = this.getResourceValue("ErrorMessage");
265
265
  let titleTemplate = this.getResourceValue("Error");
266
266
  if (Message) {
@@ -270,9 +270,9 @@ class UtilityService {
270
270
  titleTemplate = title;
271
271
  }
272
272
  const toaster = AppInjector.get(ToastrService);
273
- toaster.error(MessageTemplate, titleTemplate);
273
+ showHeader ? toaster.error(MessageTemplate, titleTemplate) : toaster.error(MessageTemplate);
274
274
  }
275
- notifyWarningMessage(Message, title, time) {
275
+ notifyWarningMessage(Message, title, time, showHeader = true) {
276
276
  let MessageTemplate = this.getResourceValue("WarningMessage");
277
277
  let titleTemplate = this.getResourceValue("Warning");
278
278
  if (Message) {
@@ -282,7 +282,7 @@ class UtilityService {
282
282
  titleTemplate = title;
283
283
  }
284
284
  const toaster = AppInjector.get(ToastrService);
285
- toaster.warning(MessageTemplate, titleTemplate);
285
+ showHeader ? toaster.warning(MessageTemplate, titleTemplate) : toaster.warning(MessageTemplate);
286
286
  }
287
287
  startBlockUI() {
288
288
  this.blockUI.start();
@@ -345,13 +345,7 @@ class RequestHandlerService {
345
345
  get(Url, params, responseType, requestOptions) {
346
346
  if (requestOptions)
347
347
  this.requestOptions = requestOptions;
348
- let headers = new HttpHeaders({
349
- 'Content-Type': 'application/json',
350
- 'Authorization': this.authService.authorizationHeaderValue(),
351
- });
352
- this.currentLanguage = localStorage.getItem('language');
353
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
354
- headers = headers.set('ignore-cookies', 'true');
348
+ let headers = this.getHeaders();
355
349
  if (!this.requestOptions.disableBlockUI)
356
350
  this.utilityService.startBlockUI();
357
351
  let object;
@@ -367,18 +361,14 @@ class RequestHandlerService {
367
361
  post(Url, model, responseType, params, requestOptions) {
368
362
  if (requestOptions)
369
363
  this.requestOptions = requestOptions;
370
- let headers = new HttpHeaders({
371
- 'Content-Type': 'application/json',
372
- 'Authorization': this.authService.authorizationHeaderValue(),
373
- });
374
- this.currentLanguage = localStorage.getItem('language');
375
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
376
- headers = headers.set('ignore-cookies', 'true');
364
+ let headers = this.getHeaders();
377
365
  if (!this.requestOptions.disableBlockUI)
378
366
  this.utilityService.startBlockUI();
379
367
  return this.http.post(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
380
368
  if (!this.requestOptions.disableBlockUI)
381
369
  this.utilityService.stopBlockUI();
370
+ }, error => {
371
+ this.handleError(error);
382
372
  }), map((data) => {
383
373
  return plainToClass(responseType, data, { excludeExtraneousValues: true });
384
374
  }));
@@ -386,18 +376,14 @@ class RequestHandlerService {
386
376
  delete(Url, deletedId, requestOptions, responseType, params) {
387
377
  if (requestOptions)
388
378
  this.requestOptions = requestOptions;
389
- let headers = new HttpHeaders({
390
- 'Content-Type': 'application/json',
391
- 'Authorization': this.authService.authorizationHeaderValue(),
392
- });
393
- this.currentLanguage = localStorage.getItem('language');
394
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
395
- headers = headers.set('ignore-cookies', 'true');
379
+ let headers = this.getHeaders();
396
380
  if (!this.requestOptions.disableBlockUI)
397
381
  this.utilityService.startBlockUI();
398
382
  return this.http.delete(this.environmentService.getApiUrl() + Url + `/${deletedId}`, { headers: headers, params: params }).pipe(takeUntil(this.onDestroy$), tap((result) => {
399
383
  if (!this.requestOptions.disableBlockUI)
400
384
  this.utilityService.stopBlockUI();
385
+ }, error => {
386
+ this.handleError(error);
401
387
  }), map((data) => {
402
388
  return plainToClass(responseType, data, { excludeExtraneousValues: true });
403
389
  }));
@@ -405,19 +391,14 @@ class RequestHandlerService {
405
391
  put(Url, model, params, responseType, requestOptions) {
406
392
  if (requestOptions)
407
393
  this.requestOptions = requestOptions;
408
- let headers = new HttpHeaders({
409
- 'Content-Type': 'application/json',
410
- 'Authorization': this.authService.authorizationHeaderValue(),
411
- });
412
- this.currentLanguage = localStorage.getItem('language');
413
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
414
- headers = headers.set('ignore-cookies', 'true');
394
+ let headers = this.getHeaders();
415
395
  if (!this.requestOptions.disableBlockUI)
416
396
  this.utilityService.startBlockUI();
417
397
  return this.http.put(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
418
398
  if (!this.requestOptions.disableBlockUI)
419
399
  this.utilityService.stopBlockUI();
420
400
  }, error => {
401
+ this.handleError(error);
421
402
  }), map((data) => {
422
403
  return plainToClass(responseType, data, { excludeExtraneousValues: true });
423
404
  }));
@@ -425,18 +406,14 @@ class RequestHandlerService {
425
406
  download(Url, params, requestOptions) {
426
407
  if (requestOptions)
427
408
  this.requestOptions = requestOptions;
428
- let headers = new HttpHeaders({
429
- 'Content-Type': 'application/json',
430
- 'Authorization': this.authService.authorizationHeaderValue(),
431
- });
432
- this.currentLanguage = localStorage.getItem('language');
433
- headers = headers.set('Accept-Language', this.currentLanguage.toString());
434
- headers = headers.set('ignore-cookies', 'true');
409
+ let headers = this.getHeaders();
435
410
  if (!this.requestOptions.disableBlockUI)
436
411
  this.utilityService.startBlockUI();
437
412
  return this.http.get(this.environmentService.getApiUrl() + Url, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(takeUntil(this.onDestroy$), tap((result) => {
438
413
  if (!this.requestOptions.disableBlockUI)
439
414
  this.utilityService.stopBlockUI();
415
+ }, error => {
416
+ this.handleError(error);
440
417
  }));
441
418
  }
442
419
  destroyHandler() {
@@ -452,7 +429,9 @@ class RequestHandlerService {
452
429
  this.utilityService.notifyErrorMessage();
453
430
  }
454
431
  else {
455
- if (err.status == 401)
432
+ if (err.status == 400)
433
+ throwError(err); //error 400 is thrown to be catch by the Form component to handle Fluent validation errors
434
+ else if (err.status == 401)
456
435
  this.router.navigate(["/Admin/account/login"]);
457
436
  else if (err.status == 403)
458
437
  this.utilityService.notifyErrorMessage(isEnglish ? "Sorry, You're not authorized to access this action" : "عذرا ليس لديك الصلاحيه لهذا الطلب");
@@ -463,6 +442,15 @@ class RequestHandlerService {
463
442
  }
464
443
  this.utilityService.stopBlockUI();
465
444
  }
445
+ getHeaders() {
446
+ return new HttpHeaders({
447
+ 'Content-Type': 'application/json',
448
+ 'Authorization': this.authService.authorizationHeaderValue(),
449
+ 'Client-Local-Time-Zone': Intl.DateTimeFormat().resolvedOptions().timeZone,
450
+ 'Accept-Language': localStorage.getItem('language'),
451
+ 'ignore-cookies': 'true'
452
+ });
453
+ }
466
454
  }
467
455
  RequestHandlerService.decorators = [
468
456
  { type: Injectable }