@provoly/dashboard 1.4.27 → 1.4.29

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.
@@ -1,35 +1,62 @@
1
1
  import { Injectable, InjectionToken } from '@angular/core';
2
+ import { catchError, throwError } from 'rxjs';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common/http";
4
5
  import * as i2 from "../components/snackbar/snackbar.service";
5
6
  import * as i3 from "../i18n/i18n.service";
7
+ import * as i4 from "@ngrx/store";
6
8
  export class PryGeoAuthService {
7
9
  }
8
10
  export const PRY_GEOAUTH_TOKEN = new InjectionToken('PRY_GEOAUTH_TOKEN');
9
11
  const CONTENT_TYPE = 'Content-Type';
10
12
  const ERROR_CONTENT_REGEXP = new RegExp('<ServiceException [\\S\\s]*>([\\S\\s]*)<\\/ServiceException>', 'gm');
13
+ export const GEOSERVER_FAILURE_FN = {
14
+ func: (action, snackBarService, i18nService, store) => {
15
+ switch (action.code) {
16
+ default:
17
+ console.error(`Geoserver error [${action.code}]: ${action.reason}`);
18
+ snackBarService.open({
19
+ type: 'error',
20
+ message: i18nService.instant('@pry.geoAuth.failure', { reason: action.reason })
21
+ });
22
+ break;
23
+ case -2:
24
+ console.warn(`Strange geoserver return [${action.code}]: ${action.reason}`);
25
+ break;
26
+ }
27
+ }
28
+ };
11
29
  export class PryDefaultGeoAuthService extends PryGeoAuthService {
12
- constructor(httpClient, snack, i18nService) {
30
+ constructor(httpClient, snack, i18nService, store) {
13
31
  super();
14
32
  this.httpClient = httpClient;
15
33
  this.snack = snack;
16
34
  this.i18nService = i18nService;
35
+ this.store = store;
17
36
  }
18
37
  customLoader(tile, src) {
19
- this.httpClient.get(src, { observe: 'response', params: {}, responseType: 'blob' }).subscribe((blob) => {
38
+ this.httpClient
39
+ .get(src, { observe: 'response', params: {}, responseType: 'blob' })
40
+ .pipe(catchError((err) => {
41
+ GEOSERVER_FAILURE_FN.func({
42
+ code: err.status,
43
+ reason: err.statusText
44
+ }, this.snack, this.i18nService, this.store);
45
+ return throwError(err);
46
+ }))
47
+ .subscribe((blob) => {
20
48
  if (blob.headers.has(CONTENT_TYPE) && (blob.headers.get(CONTENT_TYPE) ?? '').indexOf('text/xml') >= 0) {
21
49
  blob.body.text().then((text) => {
22
50
  const match = text.match(ERROR_CONTENT_REGEXP);
23
51
  const reason = match[0].replace(/\r/g, '').replace(/\n/g, '').replace(/\s\s/g, ' ');
24
- if (!!reason) {
25
- console.error(`Geoserver error: ${reason}`);
26
- this.snack.open({
27
- type: 'error',
28
- message: this.i18nService.instant('@pry.geoAuth.failure', { reason })
29
- });
52
+ if (reason.includes('401') && reason.includes('RemoteException')) {
53
+ GEOSERVER_FAILURE_FN.func({ code: 401, reason }, this.snack, this.i18nService, this.store);
54
+ }
55
+ else if (!!reason) {
56
+ GEOSERVER_FAILURE_FN.func({ code: -1, reason }, this.snack, this.i18nService, this.store);
30
57
  }
31
58
  else {
32
- console.warn(`Strange geoserver return ${text}`);
59
+ GEOSERVER_FAILURE_FN.func({ code: -2, reason }, this.snack, this.i18nService, this.store);
33
60
  }
34
61
  });
35
62
  }
@@ -38,10 +65,10 @@ export class PryDefaultGeoAuthService extends PryGeoAuthService {
38
65
  }
39
66
  });
40
67
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1.HttpClient }, { token: i2.PrySnackbarService }, { token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService, deps: [{ token: i1.HttpClient }, { token: i2.PrySnackbarService }, { token: i3.PryI18nService }, { token: i4.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
69
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService }); }
43
70
  }
44
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryDefaultGeoAuthService, decorators: [{
45
72
  type: Injectable
46
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.PrySnackbarService }, { type: i3.PryI18nService }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvQXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvYXV0aC9nZW9BdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBSzNELE1BQU0sT0FBZ0IsaUJBQWlCO0NBRXRDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQW9CLG1CQUFtQixDQUFDLENBQUM7QUFFNUYsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO0FBRXBDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxNQUFNLENBQUMsOERBQThELEVBQUUsSUFBSSxDQUFDLENBQUM7QUFHOUcsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUFpQjtJQUM3RCxZQUFvQixVQUFzQixFQUFVLEtBQXlCLEVBQVUsV0FBMkI7UUFDaEgsS0FBSyxFQUFFLENBQUM7UUFEVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFFbEgsQ0FBQztJQUVRLFlBQVksQ0FBQyxJQUFTLEVBQUUsR0FBVztRQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdEcsSUFBSSxDQUFDLElBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO29CQUMvQyxNQUFNLE1BQU0sR0FBRyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3JGLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLE1BQU0sRUFBRSxDQUFDLENBQUM7d0JBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzRCQUNkLElBQUksRUFBRSxPQUFPOzRCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO3lCQUN0RSxDQUFDLENBQUM7b0JBQ0wsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ25ELENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQztZQUN4RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXpCVSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJ5R2VvQXV0aFNlcnZpY2Uge1xuICBhYnN0cmFjdCBjdXN0b21Mb2FkZXIodGlsZTogYW55LCBzcmM6IHN0cmluZyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBQUllfR0VPQVVUSF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQcnlHZW9BdXRoU2VydmljZT4oJ1BSWV9HRU9BVVRIX1RPS0VOJyk7XG5cbmNvbnN0IENPTlRFTlRfVFlQRSA9ICdDb250ZW50LVR5cGUnO1xuXG5jb25zdCBFUlJPUl9DT05URU5UX1JFR0VYUCA9IG5ldyBSZWdFeHAoJzxTZXJ2aWNlRXhjZXB0aW9uIFtcXFxcU1xcXFxzXSo+KFtcXFxcU1xcXFxzXSopPFxcXFwvU2VydmljZUV4Y2VwdGlvbj4nLCAnZ20nKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByeURlZmF1bHRHZW9BdXRoU2VydmljZSBleHRlbmRzIFByeUdlb0F1dGhTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIHNuYWNrOiBQcnlTbmFja2JhclNlcnZpY2UsIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGN1c3RvbUxvYWRlcih0aWxlOiBhbnksIHNyYzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5odHRwQ2xpZW50LmdldChzcmMsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcGFyYW1zOiB7fSwgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkuc3Vic2NyaWJlKChibG9iKSA9PiB7XG4gICAgICBpZiAoYmxvYi5oZWFkZXJzLmhhcyhDT05URU5UX1RZUEUpICYmIChibG9iLmhlYWRlcnMuZ2V0KENPTlRFTlRfVFlQRSkgPz8gJycpLmluZGV4T2YoJ3RleHQveG1sJykgPj0gMCkge1xuICAgICAgICBibG9iLmJvZHkhLnRleHQoKS50aGVuKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSB0ZXh0Lm1hdGNoKEVSUk9SX0NPTlRFTlRfUkVHRVhQKTtcbiAgICAgICAgICBjb25zdCByZWFzb24gPSBtYXRjaCFbMF0ucmVwbGFjZSgvXFxyL2csICcnKS5yZXBsYWNlKC9cXG4vZywgJycpLnJlcGxhY2UoL1xcc1xccy9nLCAnICcpO1xuICAgICAgICAgIGlmICghIXJlYXNvbikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgR2Vvc2VydmVyIGVycm9yOiAke3JlYXNvbn1gKTtcbiAgICAgICAgICAgIHRoaXMuc25hY2sub3Blbih7XG4gICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQHByeS5nZW9BdXRoLmZhaWx1cmUnLCB7IHJlYXNvbiB9KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgU3RyYW5nZSBnZW9zZXJ2ZXIgcmV0dXJuICR7dGV4dH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGlsZS5nZXRJbWFnZSgpLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYi5ib2R5ISk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
73
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.PrySnackbarService }, { type: i3.PryI18nService }, { type: i4.Store }] });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvQXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvYXV0aC9nZW9BdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUU5QyxNQUFNLE9BQWdCLGlCQUFpQjtDQUV0QztBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFvQixtQkFBbUIsQ0FBQyxDQUFDO0FBRTVGLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQztBQUVwQyxNQUFNLG9CQUFvQixHQUFHLElBQUksTUFBTSxDQUFDLDhEQUE4RCxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRSxDQUNKLE1BR0MsRUFDRCxlQUFtQyxFQUNuQyxXQUEyQixFQUMzQixLQUFZLEVBQ1osRUFBRTtRQUNGLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCO2dCQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLE1BQU0sQ0FBQyxJQUFJLE1BQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3BFLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLElBQUksRUFBRSxPQUFPO29CQUNiLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDaEYsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUixLQUFLLENBQUMsQ0FBQztnQkFDTCxPQUFPLENBQUMs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b0JBQzVGLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQztZQUN4RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTVDVSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcnlHZW9BdXRoU2VydmljZSB7XG4gIGFic3RyYWN0IGN1c3RvbUxvYWRlcih0aWxlOiBhbnksIHNyYzogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFBSWV9HRU9BVVRIX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFByeUdlb0F1dGhTZXJ2aWNlPignUFJZX0dFT0FVVEhfVE9LRU4nKTtcblxuY29uc3QgQ09OVEVOVF9UWVBFID0gJ0NvbnRlbnQtVHlwZSc7XG5cbmNvbnN0IEVSUk9SX0NPTlRFTlRfUkVHRVhQID0gbmV3IFJlZ0V4cCgnPFNlcnZpY2VFeGNlcHRpb24gW1xcXFxTXFxcXHNdKj4oW1xcXFxTXFxcXHNdKik8XFxcXC9TZXJ2aWNlRXhjZXB0aW9uPicsICdnbScpO1xuXG5leHBvcnQgY29uc3QgR0VPU0VSVkVSX0ZBSUxVUkVfRk4gPSB7XG4gIGZ1bmM6IChcbiAgICBhY3Rpb246IHtcbiAgICAgIGNvZGU6IG51bWJlcjtcbiAgICAgIHJlYXNvbjogc3RyaW5nO1xuICAgIH0sXG4gICAgc25hY2tCYXJTZXJ2aWNlOiBQcnlTbmFja2JhclNlcnZpY2UsXG4gICAgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlLFxuICAgIHN0b3JlOiBTdG9yZVxuICApID0+IHtcbiAgICBzd2l0Y2ggKGFjdGlvbi5jb2RlKSB7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmVycm9yKGBHZW9zZXJ2ZXIgZXJyb3IgWyR7YWN0aW9uLmNvZGV9XTogJHthY3Rpb24ucmVhc29ufWApO1xuICAgICAgICBzbmFja0JhclNlcnZpY2Uub3Blbih7XG4gICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiBpMThuU2VydmljZS5pbnN0YW50KCdAcHJ5Lmdlb0F1dGguZmFpbHVyZScsIHsgcmVhc29uOiBhY3Rpb24ucmVhc29uIH0pXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgLTI6XG4gICAgICAgIGNvbnNvbGUud2FybihgU3RyYW5nZSBnZW9zZXJ2ZXIgcmV0dXJuICBbJHthY3Rpb24uY29kZX1dOiAke2FjdGlvbi5yZWFzb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByeURlZmF1bHRHZW9BdXRoU2VydmljZSBleHRlbmRzIFByeUdlb0F1dGhTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc25hY2s6IFByeVNuYWNrYmFyU2VydmljZSxcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY3VzdG9tTG9hZGVyKHRpbGU6IGFueSwgc3JjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQoc3JjLCB7IG9ic2VydmU6ICdyZXNwb25zZScsIHBhcmFtczoge30sIHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgR0VPU0VSVkVSX0ZBSUxVUkVfRk4uZnVuYyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY29kZTogZXJyLnN0YXR1cyxcbiAgICAgICAgICAgICAgcmVhc29uOiBlcnIuc3RhdHVzVGV4dFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuc25hY2ssXG4gICAgICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGJsb2IpID0+IHtcbiAgICAgICAgaWYgKGJsb2IuaGVhZGVycy5oYXMoQ09OVEVOVF9UWVBFKSAmJiAoYmxvYi5oZWFkZXJzLmdldChDT05URU5UX1RZUEUpID8/ICcnKS5pbmRleE9mKCd0ZXh0L3htbCcpID49IDApIHtcbiAgICAgICAgICBibG9iLmJvZHkhLnRleHQoKS50aGVuKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IHRleHQubWF0Y2goRVJST1JfQ09OVEVOVF9SRUdFWFApO1xuICAgICAgICAgICAgY29uc3QgcmVhc29uID0gbWF0Y2ghWzBdLnJlcGxhY2UoL1xcci9nLCAnJykucmVwbGFjZSgvXFxuL2csICcnKS5yZXBsYWNlKC9cXHNcXHMvZywgJyAnKTtcbiAgICAgICAgICAgIGlmIChyZWFzb24uaW5jbHVkZXMoJzQwMScpICYmIHJlYXNvbi5pbmNsdWRlcygnUmVtb3RlRXhjZXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgR0VPU0VSVkVSX0ZBSUxVUkVfRk4uZnVuYyh7IGNvZGU6IDQwMSwgcmVhc29uIH0sIHRoaXMuc25hY2ssIHRoaXMuaTE4blNlcnZpY2UsIHRoaXMuc3RvcmUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghIXJlYXNvbikge1xuICAgICAgICAgICAgICBHRU9TRVJWRVJfRkFJTFVSRV9GTi5mdW5jKHsgY29kZTogLTEsIHJlYXNvbiB9LCB0aGlzLnNuYWNrLCB0aGlzLmkxOG5TZXJ2aWNlLCB0aGlzLnN0b3JlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIEdFT1NFUlZFUl9GQUlMVVJFX0ZOLmZ1bmMoeyBjb2RlOiAtMiwgcmVhc29uIH0sIHRoaXMuc25hY2ssIHRoaXMuaTE4blNlcnZpY2UsIHRoaXMuc3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRpbGUuZ2V0SW1hZ2UoKS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IuYm9keSEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -3,8 +3,9 @@ export const ClassActions = {
3
3
  load: createAction('[Class] (bus) Load Classes', props()),
4
4
  loadSuccess: createAction('[Class Api] (bus) Load Classes Success', props()),
5
5
  loadFailure: createAction('[Class Api] (bus) Load Classes Failure', props()),
6
+ requestUpdate: createAction('[Class Api] (bus) Request Classes Update'),
6
7
  loadDatasetCount: createAction('[Class Api] Load DatasetCount'),
7
8
  loadDatasetCountSuccess: createAction('[Class Api] Load DatasetCount Success', props()),
8
9
  loadDatasetCountFailure: createAction('[Class Api] Load DatasetCount Failure', props())
9
10
  };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJbEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxZQUFZLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxFQUF1QixDQUFDO0lBQzlFLFdBQVcsRUFBRSxZQUFZLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxFQUF3QixDQUFDO0lBQ2xHLFdBQVcsRUFBRSxZQUFZLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQy9GLGdCQUFnQixFQUFFLFlBQVksQ0FBQywrQkFBK0IsQ0FBQztJQUMvRCx1QkFBdUIsRUFBRSxZQUFZLENBQ25DLHVDQUF1QyxFQUN2QyxLQUFLLEVBRUQsQ0FDTDtJQUNELHVCQUF1QixFQUFFLFlBQVksQ0FDbkMsdUNBQXVDLEVBQ3ZDLEtBQUssRUFFRCxDQUNMO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBDbGFzcyB9IGZyb20gJy4vY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFzZXRDb3VudCB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGFzZXQuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IENsYXNzQWN0aW9ucyA9IHtcbiAgbG9hZDogY3JlYXRlQWN0aW9uKCdbQ2xhc3NdIChidXMpIExvYWQgQ2xhc3NlcycsIHByb3BzPHsgZm9yY2U/OiBib29sZWFuIH0+KCkpLFxuICBsb2FkU3VjY2VzczogY3JlYXRlQWN0aW9uKCdbQ2xhc3MgQXBpXSAoYnVzKSBMb2FkIENsYXNzZXMgU3VjY2VzcycsIHByb3BzPHsgY2xhc3NlczogQ2xhc3NbXSB9PigpKSxcbiAgbG9hZEZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0NsYXNzIEFwaV0gKGJ1cykgTG9hZCBDbGFzc2VzIEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBzdHJpbmcgfT4oKSksXG4gIGxvYWREYXRhc2V0Q291bnQ6IGNyZWF0ZUFjdGlvbignW0NsYXNzIEFwaV0gTG9hZCBEYXRhc2V0Q291bnQnKSxcbiAgbG9hZERhdGFzZXRDb3VudFN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0NsYXNzIEFwaV0gTG9hZCBEYXRhc2V0Q291bnQgU3VjY2VzcycsXG4gICAgcHJvcHM8e1xuICAgICAgZGF0YXNldENvdW50czogRGF0YXNldENvdW50W107XG4gICAgfT4oKVxuICApLFxuICBsb2FkRGF0YXNldENvdW50RmFpbHVyZTogY3JlYXRlQWN0aW9uKFxuICAgICdbQ2xhc3MgQXBpXSBMb2FkIERhdGFzZXRDb3VudCBGYWlsdXJlJyxcbiAgICBwcm9wczx7XG4gICAgICBlcnJvcjogYW55O1xuICAgIH0+KClcbiAgKVxufTtcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJbEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxZQUFZLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxFQUF1QixDQUFDO0lBQzlFLFdBQVcsRUFBRSxZQUFZLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxFQUF3QixDQUFDO0lBQ2xHLFdBQVcsRUFBRSxZQUFZLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQy9GLGFBQWEsRUFBRSxZQUFZLENBQUMsMENBQTBDLENBQUM7SUFDdkUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLCtCQUErQixDQUFDO0lBQy9ELHVCQUF1QixFQUFFLFlBQVksQ0FDbkMsdUNBQXVDLEVBQ3ZDLEtBQUssRUFFRCxDQUNMO0lBQ0QsdUJBQXVCLEVBQUUsWUFBWSxDQUNuQyx1Q0FBdUMsRUFDdkMsS0FBSyxFQUVELENBQ0w7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENsYXNzIH0gZnJvbSAnLi9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGF0YXNldENvdW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvZGF0YXNldC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgQ2xhc3NBY3Rpb25zID0ge1xuICBsb2FkOiBjcmVhdGVBY3Rpb24oJ1tDbGFzc10gKGJ1cykgTG9hZCBDbGFzc2VzJywgcHJvcHM8eyBmb3JjZT86IGJvb2xlYW4gfT4oKSksXG4gIGxvYWRTdWNjZXNzOiBjcmVhdGVBY3Rpb24oJ1tDbGFzcyBBcGldIChidXMpIExvYWQgQ2xhc3NlcyBTdWNjZXNzJywgcHJvcHM8eyBjbGFzc2VzOiBDbGFzc1tdIH0+KCkpLFxuICBsb2FkRmFpbHVyZTogY3JlYXRlQWN0aW9uKCdbQ2xhc3MgQXBpXSAoYnVzKSBMb2FkIENsYXNzZXMgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IHN0cmluZyB9PigpKSxcbiAgcmVxdWVzdFVwZGF0ZTogY3JlYXRlQWN0aW9uKCdbQ2xhc3MgQXBpXSAoYnVzKSBSZXF1ZXN0IENsYXNzZXMgVXBkYXRlJyksXG4gIGxvYWREYXRhc2V0Q291bnQ6IGNyZWF0ZUFjdGlvbignW0NsYXNzIEFwaV0gTG9hZCBEYXRhc2V0Q291bnQnKSxcbiAgbG9hZERhdGFzZXRDb3VudFN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0NsYXNzIEFwaV0gTG9hZCBEYXRhc2V0Q291bnQgU3VjY2VzcycsXG4gICAgcHJvcHM8e1xuICAgICAgZGF0YXNldENvdW50czogRGF0YXNldENvdW50W107XG4gICAgfT4oKVxuICApLFxuICBsb2FkRGF0YXNldENvdW50RmFpbHVyZTogY3JlYXRlQWN0aW9uKFxuICAgICdbQ2xhc3MgQXBpXSBMb2FkIERhdGFzZXRDb3VudCBGYWlsdXJlJyxcbiAgICBwcm9wczx7XG4gICAgICBlcnJvcjogYW55O1xuICAgIH0+KClcbiAgKVxufTtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { createEffect, ofType } from '@ngrx/effects';
3
- import { catchError, debounceTime, filter, map, mergeMap, withLatestFrom } from 'rxjs';
3
+ import { catchError, debounceTime, filter, map, mergeMap, of, withLatestFrom } from 'rxjs';
4
4
  import { ClassActions } from './class.actions';
5
5
  import { ClassSelectors } from './class.selectors';
6
6
  import { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';
@@ -13,7 +13,15 @@ export class ClassEffects {
13
13
  this.actions$ = actions$;
14
14
  this.classService = classService;
15
15
  this.store = store;
16
- this.loadClasses$ = createEffect(() => this.actions$.pipe(ofType(ClassActions.load), withLatestFrom(this.store.select(ClassSelectors.classes), this.store.select(DashboardSelectors.rank)), debounceTime(200), filter(([action, classes, rank]) => (action.force || classes.length === 0) && rank === 0), mergeMap(() => this.classService.getClasses().pipe(map((classes) => ClassActions.loadSuccess({ classes })), catchError((error) => [ClassActions.loadFailure({ error: error })])))));
16
+ this.loadClasses$ = createEffect(() => this.actions$.pipe(ofType(ClassActions.load), withLatestFrom(this.store.select(ClassSelectors.classes), this.store.select(DashboardSelectors.rank)), debounceTime(200), filter(([action, classes, rank]) => action.force || classes.length === 0), mergeMap(([action, classes, rank]) => {
17
+ if (rank === 0) {
18
+ return this.classService.getClasses().pipe(map((classes) => ClassActions.loadSuccess({ classes })), catchError((error) => [ClassActions.loadFailure({ error: error })]));
19
+ }
20
+ else {
21
+ return of(ClassActions.requestUpdate());
22
+ }
23
+ })));
24
+ this.requestUpdate$ = createEffect(() => this.actions$.pipe(ofType(ClassActions.requestUpdate), withLatestFrom(this.store.select(ClassSelectors.classes), this.store.select(DashboardSelectors.rank)), filter(([_, classes, rank]) => rank === 0), map(([_, classes, rank]) => ClassActions.loadSuccess({ classes }))));
17
25
  this.loadDatasetCount$ = createEffect(() => this.actions$.pipe(ofType(ClassActions.loadDatasetCount), mergeMap((action) => this.classService.getDatasetCounts().pipe(map((datasetCounts) => {
18
26
  return ClassActions.loadDatasetCountSuccess({ datasetCounts: datasetCounts });
19
27
  }), catchError((error) => [ClassActions.loadDatasetCountFailure({ error: error })])))));
@@ -24,4 +32,4 @@ export class ClassEffects {
24
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClassEffects, decorators: [{
25
33
  type: Injectable
26
34
  }], ctorParameters: () => [{ type: i1.Actions }, { type: i2.ClassService }, { type: i3.Store }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7QUFHbEYsTUFBTSxPQUFPLFlBQVk7SUE4QnZCLFlBQ1UsUUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsS0FBWTtRQUZaLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQWhDdEIsaUJBQVksR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUN6QixjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3JHLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQ3pGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDWixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUN2RCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDcEUsQ0FDRixDQUNGLENBQ0YsQ0FBQztRQUVGLHNCQUFpQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFDckMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDcEIsT0FBTyxZQUFZLENBQUMsdUJBQXVCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNoRixDQUNGLENBQ0YsQ0FDRixDQUFDO0lBTUMsQ0FBQzs4R0FsQ08sWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi9jbGFzcy5hY3Rpb25zJztcbmltcG9ydCB7IENsYXNzU2VydmljZSB9IGZyb20gJy4vY2xhc3Muc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENsYXNzU2VsZWN0b3JzIH0gZnJvbSAnLi9jbGFzcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xhc3NFZmZlY3RzIHtcbiAgbG9hZENsYXNzZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKENsYXNzQWN0aW9ucy5sb2FkKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpLCB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmFuaykpLFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICBmaWx0ZXIoKFthY3Rpb24sIGNsYXNzZXMsIHJhbmtdKSA9PiAoYWN0aW9uLmZvcmNlIHx8IGNsYXNzZXMubGVuZ3RoID09PSAwKSAmJiByYW5rID09PSAwKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+XG4gICAgICAgIHRoaXMuY2xhc3NTZXJ2aWNlLmdldENsYXNzZXMoKS5waXBlKFxuICAgICAgICAgIG1hcCgoY2xhc3NlcykgPT4gQ2xhc3NBY3Rpb25zLmxvYWRTdWNjZXNzKHsgY2xhc3NlcyB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtDbGFzc0FjdGlvbnMubG9hZEZhaWx1cmUoeyBlcnJvcjogZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxvYWREYXRhc2V0Q291bnQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKENsYXNzQWN0aW9ucy5sb2FkRGF0YXNldENvdW50KSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuY2xhc3NTZXJ2aWNlLmdldERhdGFzZXRDb3VudHMoKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGF0YXNldENvdW50cykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIENsYXNzQWN0aW9ucy5sb2FkRGF0YXNldENvdW50U3VjY2Vzcyh7IGRhdGFzZXRDb3VudHM6IGRhdGFzZXRDb3VudHMgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtDbGFzc0FjdGlvbnMubG9hZERhdGFzZXRDb3VudEZhaWx1cmUoeyBlcnJvcjogZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBjbGFzc1NlcnZpY2U6IENsYXNzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZVxuICApIHt9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7O0FBR2xGLE1BQU0sT0FBTyxZQUFZO0lBMkN2QixZQUNVLFFBQWlCLEVBQ2pCLFlBQTBCLEVBQzFCLEtBQVk7UUFGWixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQU87UUE3Q3RCLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFDekIsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNyRyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUN6RSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQ3ZELFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNwRSxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7UUFFRixtQkFBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQ2xDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDckcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQzFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FDbkUsQ0FDRixDQUFDO1FBRUYsc0JBQWlCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNyQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNwQixPQUFPLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ2hGLENBQ0YsQ0FDRixDQUNGLENBQUM7SUFNQyxDQUFDOzhHQS9DTyxZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIG9mLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi9jbGFzcy5hY3Rpb25zJztcbmltcG9ydCB7IENsYXNzU2VydmljZSB9IGZyb20gJy4vY2xhc3Muc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENsYXNzU2VsZWN0b3JzIH0gZnJvbSAnLi9jbGFzcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xhc3NFZmZlY3RzIHtcbiAgbG9hZENsYXNzZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKENsYXNzQWN0aW9ucy5sb2FkKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpLCB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmFuaykpLFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICBmaWx0ZXIoKFthY3Rpb24sIGNsYXNzZXMsIHJhbmtdKSA9PiBhY3Rpb24uZm9yY2UgfHwgY2xhc3Nlcy5sZW5ndGggPT09IDApLFxuICAgICAgbWVyZ2VNYXAoKFthY3Rpb24sIGNsYXNzZXMsIHJhbmtdKSA9PiB7XG4gICAgICAgIGlmIChyYW5rID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2xhc3NTZXJ2aWNlLmdldENsYXNzZXMoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChjbGFzc2VzKSA9PiBDbGFzc0FjdGlvbnMubG9hZFN1Y2Nlc3MoeyBjbGFzc2VzIH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbQ2xhc3NBY3Rpb25zLmxvYWRGYWlsdXJlKHsgZXJyb3I6IGVycm9yIH0pXSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihDbGFzc0FjdGlvbnMucmVxdWVzdFVwZGF0ZSgpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgcmVxdWVzdFVwZGF0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQ2xhc3NBY3Rpb25zLnJlcXVlc3RVcGRhdGUpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyksIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yYW5rKSksXG4gICAgICBmaWx0ZXIoKFtfLCBjbGFzc2VzLCByYW5rXSkgPT4gcmFuayA9PT0gMCksXG4gICAgICBtYXAoKFtfLCBjbGFzc2VzLCByYW5rXSkgPT4gQ2xhc3NBY3Rpb25zLmxvYWRTdWNjZXNzKHsgY2xhc3NlcyB9KSlcbiAgICApXG4gICk7XG5cbiAgbG9hZERhdGFzZXRDb3VudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQ2xhc3NBY3Rpb25zLmxvYWREYXRhc2V0Q291bnQpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5jbGFzc1NlcnZpY2UuZ2V0RGF0YXNldENvdW50cygpLnBpcGUoXG4gICAgICAgICAgbWFwKChkYXRhc2V0Q291bnRzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gQ2xhc3NBY3Rpb25zLmxvYWREYXRhc2V0Q291bnRTdWNjZXNzKHsgZGF0YXNldENvdW50czogZGF0YXNldENvdW50cyB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0NsYXNzQWN0aW9ucy5sb2FkRGF0YXNldENvdW50RmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIGNsYXNzU2VydmljZTogQ2xhc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlXG4gICkge31cbn1cbiJdfQ==