trm-tmpl 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/esm2022/lib/app/i18n/i18n-key.enum.mjs +2 -1
  2. package/esm2022/lib/app/i18n/keys.mjs +3 -2
  3. package/esm2022/lib/app/models/constants.mjs +4 -2
  4. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.mjs +24 -38
  5. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.mjs +41 -0
  6. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.mjs +99 -117
  7. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.mjs +88 -0
  8. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.mjs +15 -37
  9. package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.mjs +10 -4
  10. package/esm2022/lib/app/pages/components/constructor-form/components/index.mjs +3 -1
  11. package/esm2022/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.mjs +11 -7
  12. package/esm2022/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.mjs +20 -24
  13. package/esm2022/lib/app/pages/components/constructor-form/constructor-form.component.mjs +90 -64
  14. package/esm2022/lib/app/pages/components/constructor-form/models/field-template.mjs +2 -1
  15. package/esm2022/lib/app/pages/components/constructor-form/models/index.mjs +1 -2
  16. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-options.mjs +1 -1
  17. package/esm2022/lib/app/pages/components/constructor-form/models/payment-field.mjs +1 -1
  18. package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs +40 -25
  19. package/esm2022/lib/app/pages/components/terminal-layout/terminal-layout.component.mjs +11 -9
  20. package/esm2022/lib/app/pages/directives/fee-template.directive.mjs +17 -0
  21. package/esm2022/lib/app/pages/directives/index.mjs +2 -1
  22. package/esm2022/lib/app/services/api-errors.service.mjs +16 -34
  23. package/esm2022/lib/app/services/csrf.resolver.mjs +6 -18
  24. package/esm2022/lib/app/services/error.interceptior.mjs +2 -2
  25. package/esm2022/lib/app/services/local-storage.mjs +70 -0
  26. package/esm2022/lib/app/services/script-loader.mjs +4 -7
  27. package/esm2022/lib/app/services/session.data-source.mjs +12 -11
  28. package/esm2022/lib/app/services/translation/translate-lang-storage.service.mjs +95 -79
  29. package/esm2022/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.mjs +10 -8
  30. package/esm2022/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.mjs +6 -6
  31. package/esm2022/lib/app/shared/components/trm-select/trm-select.component.mjs +1 -1
  32. package/esm2022/lib/app/terminal-tpl.component.mjs +13 -16
  33. package/esm2022/lib/app/terminal.module.mjs +43 -75
  34. package/fesm2022/trm-tmpl.mjs +936 -793
  35. package/fesm2022/trm-tmpl.mjs.map +1 -1
  36. package/lib/app/i18n/i18n-key.enum.d.ts +1 -0
  37. package/lib/app/models/constants.d.ts +3 -1
  38. package/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.d.ts +7 -10
  39. package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.d.ts +18 -0
  40. package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.d.ts +24 -27
  41. package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.d.ts +16 -0
  42. package/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.d.ts +6 -10
  43. package/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.d.ts +3 -3
  44. package/lib/app/pages/components/constructor-form/components/index.d.ts +2 -0
  45. package/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.d.ts +3 -0
  46. package/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.d.ts +4 -6
  47. package/lib/app/pages/components/constructor-form/constructor-form.component.d.ts +6 -9
  48. package/lib/app/pages/components/constructor-form/models/index.d.ts +0 -1
  49. package/lib/app/pages/components/constructor-form/models/payment-field-options.d.ts +1 -1
  50. package/lib/app/pages/components/constructor-form/models/payment-field.d.ts +1 -1
  51. package/lib/app/pages/components/constructor-form/services/constructor-form.service.d.ts +8 -5
  52. package/lib/app/pages/components/terminal-layout/terminal-layout.component.d.ts +1 -0
  53. package/lib/app/pages/directives/fee-template.directive.d.ts +7 -0
  54. package/lib/app/pages/directives/index.d.ts +1 -0
  55. package/lib/app/services/api-errors.service.d.ts +4 -10
  56. package/lib/app/services/csrf.resolver.d.ts +1 -4
  57. package/lib/app/services/local-storage.d.ts +24 -0
  58. package/lib/app/services/script-loader.d.ts +1 -2
  59. package/lib/app/services/session.data-source.d.ts +1 -1
  60. package/lib/app/services/translation/translate-lang-storage.service.d.ts +22 -23
  61. package/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.d.ts +4 -34
  62. package/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.d.ts +1 -2
  63. package/lib/app/shared/components/trm-select/trm-select.component.d.ts +1 -2
  64. package/lib/app/terminal-tpl.component.d.ts +2 -1
  65. package/lib/app/terminal.module.d.ts +26 -4
  66. package/package.json +1 -1
  67. package/esm2022/lib/app/pages/components/constructor-form/models/constants.mjs +0 -4
  68. package/lib/app/pages/components/constructor-form/models/constants.d.ts +0 -3
@@ -2,7 +2,7 @@ import { ChangeDetectorRef, Component, inject, ViewChild } from '@angular/core';
2
2
  import { SessionDataSource } from '../../../services/session.data-source';
3
3
  import { catchError, finalize, takeUntil, tap } from 'rxjs/operators';
4
4
  import { Subject, throwError } from 'rxjs';
5
- import { TranslateLoader } from '@ngx-translate/core';
5
+ import { TranslateLoader, TranslateService } from '@ngx-translate/core';
6
6
  import { DateAdapter } from '@angular/material/core';
7
7
  import { TerminalStep } from './../../../pages/components/constructor-form/models';
8
8
  import { ApiErrorsService } from '../../../services/api-errors.service';
@@ -29,6 +29,7 @@ export class TerminalLayoutComponent {
29
29
  this.translateLoader = inject(TranslateLoader);
30
30
  this.cd = inject(ChangeDetectorRef);
31
31
  this.translateStorageSrv = inject(TranslateLangStorageService);
32
+ this.translateSrv = inject(TranslateService);
32
33
  this.adapter = inject(DateAdapter);
33
34
  this.apiErrorSrv = inject(ApiErrorsService);
34
35
  this.location = inject(Location);
@@ -41,9 +42,9 @@ export class TerminalLayoutComponent {
41
42
  this._submitted = false;
42
43
  this.feeCalculateSubject = new Subject();
43
44
  this.feeLoading = false;
44
- this.adapter.setLocale(this.translateStorageSrv.translateSrv.currentLang);
45
+ this.adapter.setLocale(this.translateSrv.currentLang);
45
46
  this._setTitle();
46
- this.translateStorageSrv.translateSrv.onLangChange
47
+ this.translateSrv.onLangChange
47
48
  .pipe(takeUntil(this.unSubscriber))
48
49
  .subscribe((e) => {
49
50
  this.adapter.setLocale(e.lang);
@@ -62,7 +63,7 @@ export class TerminalLayoutComponent {
62
63
  return this.versionSrv.footerText;
63
64
  }
64
65
  _setTitle() {
65
- this.titleSrv.setTitle(this.versionSrv.pageTitle + this.translateStorageSrv.translateSrv.instant(getI18Key(I18N_KEY.TITLE_PAGE_INVOICE)));
66
+ this.titleSrv.setTitle(this.versionSrv.pageTitle + this.translateSrv.instant(getI18Key(I18N_KEY.TITLE_PAGE_INVOICE)));
66
67
  }
67
68
  changeLang() {
68
69
  }
@@ -143,7 +144,7 @@ export class TerminalLayoutComponent {
143
144
  }
144
145
  checkFatalError() {
145
146
  // Clear form error when any values have changed.
146
- if (!this.apiErrorSrv.hasFatalError && this.apiErrorSrv.getError()) {
147
+ if (!this.apiErrorSrv.hasFatalError && this.apiErrorSrv.getLocalError()) {
147
148
  this.apiErrorSrv.clear();
148
149
  }
149
150
  }
@@ -173,7 +174,7 @@ export class TerminalLayoutComponent {
173
174
  this.cd.detectChanges();
174
175
  }
175
176
  get statusText() {
176
- return this.apiErrorSrv.getError() || this._statusText;
177
+ return this.apiErrorSrv.getLocalError() || this._statusText;
177
178
  }
178
179
  get hasStatusError() {
179
180
  return this.apiErrorSrv.hasFatalError;
@@ -187,6 +188,7 @@ export class TerminalLayoutComponent {
187
188
  }
188
189
  this.feeCalculateSubject.next();
189
190
  this.feeLoading = true;
191
+ this.feeOptions = {};
190
192
  this.cd.detectChanges();
191
193
  this.sessionDS
192
194
  .feeOptions(value)
@@ -213,7 +215,7 @@ export class TerminalLayoutComponent {
213
215
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: TerminalLayoutComponent, isStandalone: true, selector: "app-terminal-layout", providers: [
214
216
  SessionDataSource,
215
217
  CurrencyPipe
216
- ], viewQueries: [{ propertyName: "scrollComponent", first: true, predicate: ["scrollComponent"], descendants: true }], ngImport: i0, template: "<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher (change)=\"changeLang()\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n @if ((sessionDS.loading$ | async) === null) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n } @else {\r\n @if (projectName) {\r\n <div class=\"terminal__info\">\r\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\r\n @if (description) {\r\n <p class=\"terminal__info__desc\"> {{ description }} </p>\r\n }\r\n </div>\r\n }\r\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\r\n <app-constructor-form\r\n [feeLoading]=\"feeLoading\"\r\n [feeOptions]=\"feeOptions\"\r\n [loading]=\"(sessionDS.loadingConfirm$ | async) || (sessionDS.loading$ | async)\"\r\n [step]=\"step\"\r\n [types]=\"types\"\r\n [currency]=\"currency\"\r\n [response]=\"data\"\r\n [error]=\"statusText\"\r\n (prepare)=\"prepare($event)\"\r\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\r\n (back)=\"back()\"\r\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\r\n (confirm)=\"confirm()\"\r\n [tabIndex]=\"2\"></app-constructor-form>\r\n } @else {\r\n <app-constructor-status class=\"terminal__status\"\r\n [failed]=\"hasStatusError\"\r\n [message]=\"statusText ? (statusText | trans) : ''\"\r\n [backUrl]=\"returnBackUrl\"\r\n ></app-constructor-status>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{ footerText }}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n", styles: [":host{display:flex;flex-direction:column;height:100vh;box-sizing:border-box}.terminal{box-sizing:border-box;width:100%;max-width:528px;min-width:320px;padding:0 10px}.terminal-layout{min-height:100vh;padding:42px 0 84px;display:flex;flex-direction:column;gap:42px;justify-content:flex-start;align-items:center}.terminal-footer{flex:auto 1 0;display:flex;flex-direction:column;gap:24px;justify-content:flex-end;align-items:center}.terminal-footer__txt{font-weight:400;font-size:14px;line-height:18px;color:var(--color-base-350);margin:0}.terminal__content{box-sizing:border-box;margin:auto;padding:20px;width:100%;background:#fff;border-radius:16px;display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}@media (min-width: 768px){.terminal__content{padding:32px}}.terminal__header{display:flex;flex-direction:row;gap:0;justify-content:flex-start;align-items:center}.terminal__header-lang{margin-left:auto}.terminal__form{display:flex;flex-direction:column;gap:24px;justify-content:flex-start;align-items:stretch;width:100%}.terminal__info{background:#f5f5f5;border-radius:16px;padding:20px 24px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.terminal__info__name{margin:0;font-weight:500;font-size:16px;line-height:20px;color:#000}.terminal__info__desc{margin:0;font-weight:400;font-size:15px;line-height:22px;color:var(--color-base-350)}.terminal__status{margin-top:8px}.terminal .trm-skeleton-group{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.terminal .trm-skeleton-group__form{gap:20px}.terminal .trm-skeleton-group__form .loader,.terminal .trm-skeleton-group__form .skeleton-loader{height:80px}.terminal .trm-skeleton-group__header .loader,.terminal .trm-skeleton-group__header .skeleton-loader{height:120px}.terminal .trm-skeleton-group__actions{gap:10px}.terminal .trm-skeleton-group__actions .loader,.terminal .trm-skeleton-group__actions .skeleton-loader{height:48px}\n"], dependencies: [{ kind: "component", type: NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "component", type: TerminalLangSwitcherComponent, selector: "app-terminal-lang-switcher", inputs: ["loading", "tabIndex"], outputs: ["change"] }, { kind: "component", type: ConstructorFormComponent, selector: "app-constructor-form", inputs: ["step", "error", "response", "feeLoading", "feeOptions", "currency", "userCurrency", "loading", "types", "canReturnToProject", "tabIndex"], outputs: ["amountChanged", "back", "prepare", "confirm", "onPaymentChanged"] }, { kind: "component", type: ConstructorStatusComponent, selector: "app-constructor-status", inputs: ["failed", "inProgress", "animation", "message", "failTitle", "progressTitle", "successTitle", "tabIndex", "backUrl", "backUrlTitle", "hasSupportHint"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }, { kind: "component", type: GmSkeletonComponent, selector: "gm-skeleton", inputs: ["shape", "orientation", "count", "size", "gap"] }] }); }
218
+ ], viewQueries: [{ propertyName: "scrollComponent", first: true, predicate: ["scrollComponent"], descendants: true }], ngImport: i0, template: "<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher (langChange)=\"changeLang()\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n @if (sessionDS.loading$ | async) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n } @else {\r\n @if (projectName) {\r\n <div class=\"terminal__info\">\r\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\r\n @if (description) {\r\n <p class=\"terminal__info__desc\"> {{ description }} </p>\r\n }\r\n </div>\r\n }\r\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\r\n <app-constructor-form\r\n [feeLoading]=\"feeLoading\"\r\n [feeOptions]=\"feeOptions\"\r\n [loading]=\"sessionDS.loadingConfirm$ | async\"\r\n [step]=\"step\"\r\n [types]=\"types\"\r\n [currency]=\"currency\"\r\n [response]=\"data\"\r\n [error]=\"statusText\"\r\n (prepare)=\"prepare($event)\"\r\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\r\n (back)=\"back()\"\r\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\r\n (confirm)=\"confirm()\"\r\n [tabIndex]=\"2\"></app-constructor-form>\r\n } @else {\r\n <app-constructor-status class=\"terminal__status\"\r\n [failed]=\"hasStatusError\"\r\n [message]=\"statusText ? (statusText | trans) : ''\"\r\n [backUrl]=\"returnBackUrl\"\r\n ></app-constructor-status>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{ footerText }}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n", styles: [":host{display:flex;flex-direction:column;height:100vh;box-sizing:border-box}.terminal{box-sizing:border-box;width:100%;max-width:528px;min-width:320px;padding:0 10px}.terminal-layout{min-height:100vh;padding:42px 0 84px;display:flex;flex-direction:column;gap:42px;justify-content:flex-start;align-items:center}.terminal-footer{flex:auto 1 0;display:flex;flex-direction:column;gap:24px;justify-content:flex-end;align-items:center}.terminal-footer__txt{font-weight:400;font-size:14px;line-height:18px;color:var(--color-base-350);margin:0}.terminal__content{box-sizing:border-box;margin:auto;padding:20px;width:100%;background:#fff;border-radius:16px;display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}@media (min-width: 768px){.terminal__content{padding:32px}}.terminal__header{display:flex;flex-direction:row;gap:0;justify-content:flex-start;align-items:center}.terminal__header-lang{margin-left:auto}.terminal__form{display:flex;flex-direction:column;gap:24px;justify-content:flex-start;align-items:stretch;width:100%}.terminal__info{background:#f5f5f5;border-radius:16px;padding:20px 24px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.terminal__info__name{margin:0;font-weight:500;font-size:16px;line-height:20px;color:#000}.terminal__info__desc{margin:0;font-weight:400;font-size:15px;line-height:22px;color:var(--color-base-350)}.terminal__status{margin-top:8px}.terminal .trm-skeleton-group{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.terminal .trm-skeleton-group__form{gap:20px}.terminal .trm-skeleton-group__form .loader,.terminal .trm-skeleton-group__form .skeleton-loader{height:80px}.terminal .trm-skeleton-group__header .loader,.terminal .trm-skeleton-group__header .skeleton-loader{height:120px}.terminal .trm-skeleton-group__actions{gap:10px}.terminal .trm-skeleton-group__actions .loader,.terminal .trm-skeleton-group__actions .skeleton-loader{height:48px}\n"], dependencies: [{ kind: "component", type: NgScrollbar, selector: "ng-scrollbar:not([externalViewport])", exportAs: ["ngScrollbar"] }, { kind: "component", type: TerminalLangSwitcherComponent, selector: "app-terminal-lang-switcher", inputs: ["loading", "tabIndex"], outputs: ["langChange"] }, { kind: "component", type: ConstructorFormComponent, selector: "app-constructor-form", inputs: ["step", "error", "response", "feeLoading", "feeOptions", "currency", "userCurrency", "loading", "types", "canReturnToProject", "tabIndex"], outputs: ["amountChanged", "back", "prepare", "confirm", "onPaymentChanged"] }, { kind: "component", type: ConstructorStatusComponent, selector: "app-constructor-status", inputs: ["failed", "inProgress", "animation", "message", "failTitle", "progressTitle", "successTitle", "tabIndex", "backUrl", "backUrlTitle", "hasSupportHint"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }, { kind: "component", type: GmSkeletonComponent, selector: "gm-skeleton", inputs: ["shape", "orientation", "count", "size", "gap"] }] }); }
217
219
  }
218
220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TerminalLayoutComponent, decorators: [{
219
221
  type: Component,
@@ -226,9 +228,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
226
228
  ConstructorFormComponent, ConstructorStatusComponent,
227
229
  AsyncPipe,
228
230
  TranslateByKeyPipe, GmSkeletonComponent
229
- ], template: "<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher (change)=\"changeLang()\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n @if ((sessionDS.loading$ | async) === null) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n } @else {\r\n @if (projectName) {\r\n <div class=\"terminal__info\">\r\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\r\n @if (description) {\r\n <p class=\"terminal__info__desc\"> {{ description }} </p>\r\n }\r\n </div>\r\n }\r\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\r\n <app-constructor-form\r\n [feeLoading]=\"feeLoading\"\r\n [feeOptions]=\"feeOptions\"\r\n [loading]=\"(sessionDS.loadingConfirm$ | async) || (sessionDS.loading$ | async)\"\r\n [step]=\"step\"\r\n [types]=\"types\"\r\n [currency]=\"currency\"\r\n [response]=\"data\"\r\n [error]=\"statusText\"\r\n (prepare)=\"prepare($event)\"\r\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\r\n (back)=\"back()\"\r\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\r\n (confirm)=\"confirm()\"\r\n [tabIndex]=\"2\"></app-constructor-form>\r\n } @else {\r\n <app-constructor-status class=\"terminal__status\"\r\n [failed]=\"hasStatusError\"\r\n [message]=\"statusText ? (statusText | trans) : ''\"\r\n [backUrl]=\"returnBackUrl\"\r\n ></app-constructor-status>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{ footerText }}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n", styles: [":host{display:flex;flex-direction:column;height:100vh;box-sizing:border-box}.terminal{box-sizing:border-box;width:100%;max-width:528px;min-width:320px;padding:0 10px}.terminal-layout{min-height:100vh;padding:42px 0 84px;display:flex;flex-direction:column;gap:42px;justify-content:flex-start;align-items:center}.terminal-footer{flex:auto 1 0;display:flex;flex-direction:column;gap:24px;justify-content:flex-end;align-items:center}.terminal-footer__txt{font-weight:400;font-size:14px;line-height:18px;color:var(--color-base-350);margin:0}.terminal__content{box-sizing:border-box;margin:auto;padding:20px;width:100%;background:#fff;border-radius:16px;display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}@media (min-width: 768px){.terminal__content{padding:32px}}.terminal__header{display:flex;flex-direction:row;gap:0;justify-content:flex-start;align-items:center}.terminal__header-lang{margin-left:auto}.terminal__form{display:flex;flex-direction:column;gap:24px;justify-content:flex-start;align-items:stretch;width:100%}.terminal__info{background:#f5f5f5;border-radius:16px;padding:20px 24px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.terminal__info__name{margin:0;font-weight:500;font-size:16px;line-height:20px;color:#000}.terminal__info__desc{margin:0;font-weight:400;font-size:15px;line-height:22px;color:var(--color-base-350)}.terminal__status{margin-top:8px}.terminal .trm-skeleton-group{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.terminal .trm-skeleton-group__form{gap:20px}.terminal .trm-skeleton-group__form .loader,.terminal .trm-skeleton-group__form .skeleton-loader{height:80px}.terminal .trm-skeleton-group__header .loader,.terminal .trm-skeleton-group__header .skeleton-loader{height:120px}.terminal .trm-skeleton-group__actions{gap:10px}.terminal .trm-skeleton-group__actions .loader,.terminal .trm-skeleton-group__actions .skeleton-loader{height:48px}\n"] }]
231
+ ], template: "<ng-scrollbar appearance=\"compact\">\r\n <div class=\"terminal-layout\">\r\n <section class=\"terminal\">\r\n <div class=\"terminal__content\">\r\n <header class=\"terminal__header\">\r\n <i class=\"terminal__header-logo\"\r\n [class]=\"logoClass\"></i>\r\n <div class=\"terminal__header-lang\">\r\n @if (hasChoice) {\r\n <app-terminal-lang-switcher (langChange)=\"changeLang()\"\r\n [tabIndex]=\"1\"></app-terminal-lang-switcher>\r\n }\r\n </div>\r\n </header>\r\n <div class=\"terminal__form\">\r\n @if (sessionDS.loading$ | async) {\r\n <div class=\"trm-skeleton-group\">\r\n <gm-skeleton [count]=\"1\" [size]=\"120\"></gm-skeleton>\r\n <gm-skeleton [count]=\"4\" [gap]=\"20\" [size]=\"80\"></gm-skeleton>\r\n <gm-skeleton [count]=\"2\" [gap]=\"10\" [size]=\"48\"></gm-skeleton>\r\n </div>\r\n } @else {\r\n @if (projectName) {\r\n <div class=\"terminal__info\">\r\n <h5 class=\"terminal__info__name\"> {{ projectName }} </h5>\r\n @if (description) {\r\n <p class=\"terminal__info__desc\"> {{ description }} </p>\r\n }\r\n </div>\r\n }\r\n @if (step !== TERMINAL_STEP.Status && !hasStatusError) {\r\n <app-constructor-form\r\n [feeLoading]=\"feeLoading\"\r\n [feeOptions]=\"feeOptions\"\r\n [loading]=\"sessionDS.loadingConfirm$ | async\"\r\n [step]=\"step\"\r\n [types]=\"types\"\r\n [currency]=\"currency\"\r\n [response]=\"data\"\r\n [error]=\"statusText\"\r\n (prepare)=\"prepare($event)\"\r\n (onPaymentChanged)=\"checkFatalError(); calculateFee($event)\"\r\n (back)=\"back()\"\r\n [canReturnToProject]=\"sessionDS.canReturnToProject\"\r\n (confirm)=\"confirm()\"\r\n [tabIndex]=\"2\"></app-constructor-form>\r\n } @else {\r\n <app-constructor-status class=\"terminal__status\"\r\n [failed]=\"hasStatusError\"\r\n [message]=\"statusText ? (statusText | trans) : ''\"\r\n [backUrl]=\"returnBackUrl\"\r\n ></app-constructor-status>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </section>\r\n <footer class=\"terminal-footer\">\r\n <i class=\"terminal-footer__logo\"></i>\r\n <p class=\"terminal-footer__txt\">\r\n {{ footerText }}\r\n </p>\r\n </footer>\r\n </div>\r\n</ng-scrollbar>\r\n", styles: [":host{display:flex;flex-direction:column;height:100vh;box-sizing:border-box}.terminal{box-sizing:border-box;width:100%;max-width:528px;min-width:320px;padding:0 10px}.terminal-layout{min-height:100vh;padding:42px 0 84px;display:flex;flex-direction:column;gap:42px;justify-content:flex-start;align-items:center}.terminal-footer{flex:auto 1 0;display:flex;flex-direction:column;gap:24px;justify-content:flex-end;align-items:center}.terminal-footer__txt{font-weight:400;font-size:14px;line-height:18px;color:var(--color-base-350);margin:0}.terminal__content{box-sizing:border-box;margin:auto;padding:20px;width:100%;background:#fff;border-radius:16px;display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}@media (min-width: 768px){.terminal__content{padding:32px}}.terminal__header{display:flex;flex-direction:row;gap:0;justify-content:flex-start;align-items:center}.terminal__header-lang{margin-left:auto}.terminal__form{display:flex;flex-direction:column;gap:24px;justify-content:flex-start;align-items:stretch;width:100%}.terminal__info{background:#f5f5f5;border-radius:16px;padding:20px 24px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;align-items:flex-start}.terminal__info__name{margin:0;font-weight:500;font-size:16px;line-height:20px;color:#000}.terminal__info__desc{margin:0;font-weight:400;font-size:15px;line-height:22px;color:var(--color-base-350)}.terminal__status{margin-top:8px}.terminal .trm-skeleton-group{display:flex;flex-direction:column;gap:32px;justify-content:flex-start;align-items:stretch}.terminal .trm-skeleton-group__form{gap:20px}.terminal .trm-skeleton-group__form .loader,.terminal .trm-skeleton-group__form .skeleton-loader{height:80px}.terminal .trm-skeleton-group__header .loader,.terminal .trm-skeleton-group__header .skeleton-loader{height:120px}.terminal .trm-skeleton-group__actions{gap:10px}.terminal .trm-skeleton-group__actions .loader,.terminal .trm-skeleton-group__actions .skeleton-loader{height:48px}\n"] }]
230
232
  }], ctorParameters: () => [], propDecorators: { scrollComponent: [{
231
233
  type: ViewChild,
232
234
  args: ['scrollComponent']
233
235
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvdGVybWluYWwtbGF5b3V0L3Rlcm1pbmFsLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL3Rlcm1pbmFsLWxheW91dC90ZXJtaW5hbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9uRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQXVCLFlBQVksRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8s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bUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7OEdBL09VLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtFQWJ2QjtZQUNULGlCQUFpQjtZQUNqQixZQUFZO1NBQ2IsOElDckNILGl3RkFrRUEsa2hFRDFCSSxXQUFXLDRHQUNYLDZCQUE2Qiw2SEFDN0Isd0JBQXdCLG9TQUFFLDBCQUEwQiwrTkFDcEQsU0FBUyx5Q0FDVCxrQkFBa0IsOENBQUUsbUJBQW1COzsyRkFHOUIsdUJBQXVCO2tCQWpCbkMsU0FBUzsrQkFDRSxxQkFBcUIsYUFHcEI7d0JBQ1QsaUJBQWlCO3dCQUNqQixZQUFZO3FCQUNiLGNBQ1csSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsNkJBQTZCO3dCQUM3Qix3QkFBd0IsRUFBRSwwQkFBMEI7d0JBQ3BELFNBQVM7d0JBQ1Qsa0JBQWtCLEVBQUUsbUJBQW1CO3FCQUN4Qzt3REE2QjZCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWV0aG9kVHlwZSxcclxuICBUZXJtaW5hbFBheW1lbnRDb25maXJtUmVzcG9uc2UsXHJcbiAgVGVybWluYWxQYXltZW50UHJlcGFyZVJlcXVlc3QsXHJcbiAgVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29kZWdlbi9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24uZGF0YS1zb3VyY2UnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFBheW1lbnRGaWVsZE9wdGlvbnMsIFRlcm1pbmFsU3RlcCB9IGZyb20gJy4vLi4vLi4vLi4vcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscyc7XHJcbmltcG9ydCB7IEFwaUVycm9yc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGktZXJyb3JzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEN1cnJlbmN5UGlwZSwgRE9DVU1FTlQsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdTY3JvbGxiYXIgfSBmcm9tICduZ3gtc2Nyb2xsYmFyJztcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgZ2V0STE4S2V5IH0gZnJvbSAnLi8uLi8uLi8uLi9pMThuL2tleXMnO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IFRFUk1JTkFMX1ZFUlNJT05fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0JztcclxuaW1wb3J0IHsgVmVyc2lvblNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdmVyc2lvbi1zZXJ2aWNlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxhbmdTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtcclxuICBUZXJtaW5hbExhbmdTd2l0Y2hlckNvbXBvbmVudFxyXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3Rlcm1pbmFsLWxhbmctc3dpdGNoZXIvdGVybWluYWwtbGFuZy1zd2l0Y2hlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9jb25zdHJ1Y3Rvci1mb3JtL2NvbnN0cnVjdG9yLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uc3RydWN0b3JTdGF0dXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1zdGF0dXMvY29uc3RydWN0b3Itc3RhdHVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUJ5S2V5UGlwZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy90cmFuc2xhdGUtYnkta2V5LnBpcGUnO1xyXG5pbXBvcnQgeyBHbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGdtbW9uZXkvZ20tdWkta2l0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRlcm1pbmFsLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1pbmFsLWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVybWluYWwtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTZXNzaW9uRGF0YVNvdXJjZSxcclxuICAgIEN1cnJlbmN5UGlwZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1Njcm9sbGJhcixcclxuICAgIFRlcm1pbmFsTGFuZ1N3aXRjaGVyQ29tcG9uZW50LFxyXG4gICAgQ29uc3RydWN0b3JGb3JtQ29tcG9uZW50LCBDb25zdHJ1Y3RvclN0YXR1c0NvbXBvbmVudCxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFRyYW5zbGF0ZUJ5S2V5UGlwZSwgR21Ta2VsZXRvbkNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKTtcclxuICBzZXNzaW9uRFMgPSBpbmplY3QoU2Vzc2lvbkRhdGFTb3VyY2UpO1xyXG4gIHRyYW5zbGF0ZUxvYWRlciA9IGluamVjdDxhbnk+KFRyYW5zbGF0ZUxvYWRlcik7XHJcbiAgcHJpdmF0ZSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTdG9yYWdlU3J2ID0gaW5qZWN0KFRyYW5zbGF0ZUxhbmdTdG9yYWdlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBhZGFwdGVyID0gaW5qZWN0PERhdGVBZGFwdGVyPG1vbWVudC5Nb21lbnQ+PihEYXRlQWRhcHRlcik7XHJcbiAgcHJpdmF0ZSBhcGlFcnJvclNydiA9IGluamVjdChBcGlFcnJvcnNTZXJ2aWNlKTtcclxuICBwcml2YXRlIGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcclxuICBwcml2YXRlIHRpdGxlU3J2ID0gaW5qZWN0KFRpdGxlKTtcclxuICBwcml2YXRlIHZlcnNpb25TcnYgPSBpbmplY3Q8VmVyc2lvblNlcnZpY2VJbnRlcmZhY2U+KFRFUk1JTkFMX1ZFUlNJT05fU0VSVklDRV9UT0tFTik7XHJcblxyXG4gIHByaXZhdGUgdW5TdWJzY3JpYmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgY29udGVudEVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsQ29tcG9uZW50LnZpZXdwb3J0LmNvbnRlbnRXcmFwcGVyRWxlbWVudDtcclxuICB9XHJcblxyXG4gIFRFUk1JTkFMX1NURVAgPSBUZXJtaW5hbFN0ZXA7XHJcblxyXG4gIHR5cGVzOiBNZXRob2RUeXBlW10gPSBbXTtcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIHByb2plY3ROYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBzdGVwID0gVGVybWluYWxTdGVwLlByZXBhcmU7XHJcbiAgZGF0YTogVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlICYgeyB0eXBlSWQ/OiBudW1iZXI7IH07XHJcbiAgQFZpZXdDaGlsZCgnc2Nyb2xsQ29tcG9uZW50Jykgc2Nyb2xsQ29tcG9uZW50OiBOZ1Njcm9sbGJhcjtcclxuICBwcml2YXRlIHVybENoYW5nZUxpc3RlbmVyOiBWb2lkRnVuY3Rpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hZGFwdGVyLnNldExvY2FsZSh0aGlzLnRyYW5zbGF0ZVN0b3JhZ2VTcnYudHJhbnNsYXRlU3J2LmN1cnJlbnRMYW5nKTtcclxuICAgIHRoaXMuX3NldFRpdGxlKCk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGVTdG9yYWdlU3J2LnRyYW5zbGF0ZVNydi5vbkxhbmdDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgICB0aGlzLmFkYXB0ZXIuc2V0TG9jYWxlKGUubGFuZyk7XHJcbiAgICAgICAgdGhpcy5fc2V0VGl0bGUoKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmNoZWNrRmF0YWxFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0Nob2ljZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVN0b3JhZ2VTcnYubGFuZ3VhZ2VzLmxlbmd0aCA+IDE7XHJcbiAgfVxyXG5cclxuICBnZXQgbG9nb0NsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uU3J2LmxvZ29DbGFzcztcclxuICB9XHJcblxyXG4gIGdldCBmb290ZXJUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmVyc2lvblNydi5mb290ZXJUZXh0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0VGl0bGUoKSB7XHJcbiAgICB0aGlzLnRpdGxlU3J2LnNldFRpdGxlKHRoaXMudmVyc2lvblNydi5wYWdlVGl0bGUgKyB0aGlzLnRyYW5zbGF0ZVN0b3JhZ2VTcnYudHJhbnNsYXRlU3J2Lmluc3RhbnQoZ2V0STE4S2V5KEkxOE5fS0VZLlRJVExFX1BBR0VfSU5WT0lDRSkpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMYW5nKCkge1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhvc3RuYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYXRpb24uaG9zdG5hbWU7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmFwaUVycm9yU3J2Lmhhc0ZhdGFsRXJyb3IpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uRFMubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgIHRoaXMuY2F0Y2hFcnJvcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlc3Npb25EUy5nZXQoKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZXNzaW9uSW5mbykgPT4ge1xyXG4gICAgICAgIHRoaXMudHlwZXMgPSBzZXNzaW9uSW5mby5tZXRob2RUeXBlcztcclxuICAgICAgICB0aGlzLmN1cnJlbmN5ID0gc2Vzc2lvbkluZm8uZGVmYXVsdEN1cnJlbmN5O1xyXG4gICAgICAgIHRoaXMucHJvamVjdE5hbWUgPSBzZXNzaW9uSW5mby5wcm9qZWN0TmFtZTtcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gc2Vzc2lvbkluZm8uZGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2F0Y2hFcnJvcigpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnB1c2hTdGF0ZSgpO1xyXG4gICAgdGhpcy51cmxDaGFuZ2VMaXN0ZW5lciA9IHRoaXMubG9jYXRpb24ub25VcmxDaGFuZ2UoKHVybCwgc3RhdGU6IHsgc3RlcD86IFRlcm1pbmFsU3RlcCB9KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2Ygc3RhdGU/LnN0ZXAgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgdGhpcy5zdGVwID0gc3RhdGUuc3RlcDtcclxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF9zdWJtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJlcGFyZShkYXRhOiBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuX3N1Ym1pdHRlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXNzaW9uRFNcclxuICAgICAgLnByZXBhcmUoZGF0YSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcDogVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXNwLmFtb3VudCAmJiAhcmVzcC5jdXJyZW5jeSAmJiAhcmVzcC50b3RhbCkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0ZXAgPSBUZXJtaW5hbFN0ZXAuQ29uZmlybWF0aW9uO1xyXG4gICAgICAgIHRoaXMubG9jYXRpb24uZ28odGhpcy5sb2NhdGlvbi5wYXRoKCksICcnLCB7c3RlcDogdGhpcy5zdGVwfSk7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gcmVzcDtcclxuICAgICAgICB0aGlzLmRhdGEudHlwZUlkID0gZGF0YS50eXBlSWQ7XHJcbiAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3N1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2F0Y2hFcnJvcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm0oKSB7XHJcbiAgICBpZiAodGhpcy5fc3VibWl0dGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICB0aGlzLnNlc3Npb25EU1xyXG4gICAgICAuY29uZmlybSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlc3A6IFRlcm1pbmFsUGF5bWVudENvbmZpcm1SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMudXJsQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy51cmxDaGFuZ2VMaXN0ZW5lcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbkRTLnJlZGlyZWN0KCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3RlcCArPSAxO1xyXG4gICAgICAgICAgaWYgKHJlc3Auc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLl9zdGF0dXNUZXh0ID0gcmVzcC5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNhdGNoRXJyb3IoKTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tGYXRhbEVycm9yKCkge1xyXG4gICAgLy8gQ2xlYXIgZm9ybSBlcnJvciB3aGVuIGFueSB2YWx1ZXMgaGF2ZSBjaGFuZ2VkLlxyXG4gICAgaWYgKCF0aGlzLmFwaUVycm9yU3J2Lmhhc0ZhdGFsRXJyb3IgJiYgdGhpcy5hcGlFcnJvclNydi5nZXRFcnJvcigpKSB7XHJcbiAgICAgIHRoaXMuYXBpRXJyb3JTcnYuY2xlYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1c2hTdGF0ZSgpIHtcclxuICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHRoaXMubG9jYXRpb24ucGF0aCgpLCB1bmRlZmluZWQsIHtzdGVwOiB0aGlzLnN0ZXB9KTtcclxuICB9XHJcblxyXG4gIGJhY2soKSB7XHJcbiAgICBpZiAodGhpcy5zdGVwKSB7XHJcbiAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXNzaW9uRFMuY2xvc2UoKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5jZC5tYXJrRm9yQ2hlY2soKSlcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHJldHVybkJhY2tVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5yZXR1cm5CYWNrVXJsO1xyXG4gIH1cclxuXHJcbiAgY2F0Y2hFcnJvcigpIHtcclxuICAgIGlmICh0aGlzLmhhc1N0YXR1c0Vycm9yKSB7XHJcbiAgICAgIHRoaXMuc3RlcCA9IFRlcm1pbmFsU3RlcC5TdGF0dXM7XHJcbiAgICAgIGlmICh0aGlzLnVybENoYW5nZUxpc3RlbmVyKSB7XHJcbiAgICAgICAgdGhpcy51cmxDaGFuZ2VMaXN0ZW5lcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0YXR1c1RleHQ6IHN0cmluZztcclxuICBnZXQgc3RhdHVzVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaUVycm9yU3J2LmdldEVycm9yKCkgfHwgdGhpcy5fc3RhdHVzVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNTdGF0dXNFcnJvcigpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaUVycm9yU3J2Lmhhc0ZhdGFsRXJyb3I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRZZWFyKCkge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmVlQ2FsY3VsYXRlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIGNhbGN1bGF0ZUZlZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkRTLmZlZUNoYW5nZWFibGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mZWVDYWxjdWxhdGVTdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuZmVlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLnNlc3Npb25EU1xyXG4gICAgICAuZmVlT3B0aW9ucyh2YWx1ZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKChvcHRpb25zOiBQYXltZW50RmllbGRPcHRpb25zKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZlZU9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICAgICAgdGhpcy5mZWVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuZmVlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmZlZUNhbGN1bGF0ZVN1YmplY3QpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3Vic2NyaWJlcilcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGZlZUxvYWRpbmcgPSBmYWxzZTtcclxuICBmZWVPcHRpb25zOiBQYXltZW50RmllbGRPcHRpb25zO1xyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmZlZUNhbGN1bGF0ZVN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy51bm9ic2VydmUodGhpcy5jb250ZW50RWwpO1xyXG4gICAgaWYgKHRoaXMudXJsQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy51cmxDaGFuZ2VMaXN0ZW5lcigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bmctc2Nyb2xsYmFyIGFwcGVhcmFuY2U9XCJjb21wYWN0XCI+XHJcbiAgPGRpdiBjbGFzcz1cInRlcm1pbmFsLWxheW91dFwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJ0ZXJtaW5hbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWxfX2NvbnRlbnRcIj5cclxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwidGVybWluYWxfX2hlYWRlclwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJ0ZXJtaW5hbF9faGVhZGVyLWxvZ29cIlxyXG4gICAgICAgICAgW2NsYXNzXT1cImxvZ29DbGFzc1wiPjwvaT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbF9faGVhZGVyLWxhbmdcIj5cclxuICAgICAgICAgICAgQGlmIChoYXNDaG9pY2UpIHtcclxuICAgICAgICAgICAgICA8YXBwLXRlcm1pbmFsLWxhbmctc3dpdGNoZXIgKGNoYW5nZSk9XCJjaGFuZ2VMYW5nKClcIlxyXG4gICAgICAgICAgICAgIFt0YWJJbmRleF09XCIxXCI+PC9hcHAtdGVybWluYWwtbGFuZy1zd2l0Y2hlcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9oZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRlcm1pbmFsX19mb3JtXCI+XHJcbiAgICAgICAgICBAaWYgKChzZXNzaW9uRFMubG9hZGluZyQgfCBhc3luYykgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1ncm91cFwiPlxyXG4gICAgICAgICAgICAgIDxnbS1za2VsZXRvbiBbY291bnRdPVwiMVwiIFtzaXplXT1cIjEyMFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgICAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCI0XCIgW2dhcF09XCIyMFwiIFtzaXplXT1cIjgwXCI+PC9nbS1za2VsZXRvbj5cclxuICAgICAgICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjJcIiBbZ2FwXT1cIjEwXCIgW3NpemVdPVwiNDhcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICBAaWYgKHByb2plY3ROYW1lKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlcm1pbmFsX19pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXJtaW5hbF9faW5mb19fbmFtZVwiPiB7eyBwcm9qZWN0TmFtZSB9fSA8L2g1PlxyXG4gICAgICAgICAgICAgICAgQGlmIChkZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRlcm1pbmFsX19pbmZvX19kZXNjXCI+IHt7IGRlc2NyaXB0aW9uIH19IDwvcD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKHN0ZXAgIT09IFRFUk1JTkFMX1NURVAuU3RhdHVzICYmICFoYXNTdGF0dXNFcnJvcikge1xyXG4gICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZm9ybVxyXG4gICAgICAgICAgICAgICAgW2ZlZUxvYWRpbmddPVwiZmVlTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICBbZmVlT3B0aW9uc109XCJmZWVPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cIihzZXNzaW9uRFMubG9hZGluZ0NvbmZpcm0kIHwgYXN5bmMpIHx8IChzZXNzaW9uRFMubG9hZGluZyQgfCBhc3luYylcIlxyXG4gICAgICAgICAgICAgICAgW3N0ZXBdPVwic3RlcFwiXHJcbiAgICAgICAgICAgICAgICBbdHlwZXNdPVwidHlwZXNcIlxyXG4gICAgICAgICAgICAgICAgW2N1cnJlbmN5XT1cImN1cnJlbmN5XCJcclxuICAgICAgICAgICAgICAgIFtyZXNwb25zZV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJzdGF0dXNUZXh0XCJcclxuICAgICAgICAgICAgICAgIChwcmVwYXJlKT1cInByZXBhcmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAob25QYXltZW50Q2hhbmdlZCk9XCJjaGVja0ZhdGFsRXJyb3IoKTsgY2FsY3VsYXRlRmVlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGJhY2spPVwiYmFjaygpXCJcclxuICAgICAgICAgICAgICAgIFtjYW5SZXR1cm5Ub1Byb2plY3RdPVwic2Vzc2lvbkRTLmNhblJldHVyblRvUHJvamVjdFwiXHJcbiAgICAgICAgICAgICAgICAoY29uZmlybSk9XCJjb25maXJtKClcIlxyXG4gICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cIjJcIj48L2FwcC1jb25zdHJ1Y3Rvci1mb3JtPlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICA8YXBwLWNvbnN0cnVjdG9yLXN0YXR1cyBjbGFzcz1cInRlcm1pbmFsX19zdGF0dXNcIlxyXG4gICAgICAgICAgICAgICAgW2ZhaWxlZF09XCJoYXNTdGF0dXNFcnJvclwiXHJcbiAgICAgICAgICAgICAgICBbbWVzc2FnZV09XCJzdGF0dXNUZXh0ID8gKHN0YXR1c1RleHQgfCB0cmFucykgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbYmFja1VybF09XCJyZXR1cm5CYWNrVXJsXCJcclxuICAgICAgICAgICAgICA+PC9hcHAtY29uc3RydWN0b3Itc3RhdHVzPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJ0ZXJtaW5hbC1mb290ZXJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJ0ZXJtaW5hbC1mb290ZXJfX2xvZ29cIj48L2k+XHJcbiAgICAgIDxwIGNsYXNzPVwidGVybWluYWwtZm9vdGVyX190eHRcIj5cclxuICAgICAgICB7eyBmb290ZXJUZXh0IH19XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZm9vdGVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXNjcm9sbGJhcj5cclxuIl19
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvdGVybWluYWwtbGF5b3V0L3Rlcm1pbmFsLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL3Rlcm1pbmFsLWxheW91dC90ZXJtaW5hbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9uRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQXVCLFlBQVksRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFD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LFNBQVMsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFLTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7OEdBalBVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtFQWJ2QjtZQUNULGlCQUFpQjtZQUNqQixZQUFZO1NBQ2IsOElDckNILHd0RkFrRUEsa2hFRDFCSSxXQUFXLDRHQUNYLDZCQUE2QixpSUFDN0Isd0JBQXdCLG9TQUFFLDBCQUEwQiwrTkFDcEQsU0FBUyx5Q0FDVCxrQkFBa0IsOENBQUUsbUJBQW1COzsyRkFHOUIsdUJBQXVCO2tCQWpCbkMsU0FBUzsrQkFDRSxxQkFBcUIsYUFHcEI7d0JBQ1QsaUJBQWlCO3dCQUNqQixZQUFZO3FCQUNiLGNBQ1csSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsNkJBQTZCO3dCQUM3Qix3QkFBd0IsRUFBRSwwQkFBMEI7d0JBQ3BELFNBQVM7d0JBQ1Qsa0JBQWtCLEVBQUUsbUJBQW1CO3FCQUN4Qzt3REE4QjZCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWV0aG9kVHlwZSxcclxuICBUZXJtaW5hbFBheW1lbnRDb25maXJtUmVzcG9uc2UsXHJcbiAgVGVybWluYWxQYXltZW50UHJlcGFyZVJlcXVlc3QsXHJcbiAgVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29kZWdlbi9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24uZGF0YS1zb3VyY2UnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFBheW1lbnRGaWVsZE9wdGlvbnMsIFRlcm1pbmFsU3RlcCB9IGZyb20gJy4vLi4vLi4vLi4vcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscyc7XHJcbmltcG9ydCB7IEFwaUVycm9yc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGktZXJyb3JzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEN1cnJlbmN5UGlwZSwgRE9DVU1FTlQsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdTY3JvbGxiYXIgfSBmcm9tICduZ3gtc2Nyb2xsYmFyJztcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgZ2V0STE4S2V5IH0gZnJvbSAnLi8uLi8uLi8uLi9pMThuL2tleXMnO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IFRFUk1JTkFMX1ZFUlNJT05fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0JztcclxuaW1wb3J0IHsgVmVyc2lvblNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdmVyc2lvbi1zZXJ2aWNlLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxhbmdTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtcclxuICBUZXJtaW5hbExhbmdTd2l0Y2hlckNvbXBvbmVudFxyXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3Rlcm1pbmFsLWxhbmctc3dpdGNoZXIvdGVybWluYWwtbGFuZy1zd2l0Y2hlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9jb25zdHJ1Y3Rvci1mb3JtL2NvbnN0cnVjdG9yLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uc3RydWN0b3JTdGF0dXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1zdGF0dXMvY29uc3RydWN0b3Itc3RhdHVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUJ5S2V5UGlwZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy90cmFuc2xhdGUtYnkta2V5LnBpcGUnO1xyXG5pbXBvcnQgeyBHbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGdtbW9uZXkvZ20tdWkta2l0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRlcm1pbmFsLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1pbmFsLWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVybWluYWwtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTZXNzaW9uRGF0YVNvdXJjZSxcclxuICAgIEN1cnJlbmN5UGlwZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1Njcm9sbGJhcixcclxuICAgIFRlcm1pbmFsTGFuZ1N3aXRjaGVyQ29tcG9uZW50LFxyXG4gICAgQ29uc3RydWN0b3JGb3JtQ29tcG9uZW50LCBDb25zdHJ1Y3RvclN0YXR1c0NvbXBvbmVudCxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFRyYW5zbGF0ZUJ5S2V5UGlwZSwgR21Ta2VsZXRvbkNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKTtcclxuICBzZXNzaW9uRFMgPSBpbmplY3QoU2Vzc2lvbkRhdGFTb3VyY2UpO1xyXG4gIHRyYW5zbGF0ZUxvYWRlciA9IGluamVjdDxhbnk+KFRyYW5zbGF0ZUxvYWRlcik7XHJcbiAgcHJpdmF0ZSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTdG9yYWdlU3J2ID0gaW5qZWN0KFRyYW5zbGF0ZUxhbmdTdG9yYWdlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTcnYgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBhZGFwdGVyID0gaW5qZWN0PERhdGVBZGFwdGVyPG1vbWVudC5Nb21lbnQ+PihEYXRlQWRhcHRlcik7XHJcbiAgcHJpdmF0ZSBhcGlFcnJvclNydiA9IGluamVjdChBcGlFcnJvcnNTZXJ2aWNlKTtcclxuICBwcml2YXRlIGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcclxuICBwcml2YXRlIHRpdGxlU3J2ID0gaW5qZWN0KFRpdGxlKTtcclxuICBwcml2YXRlIHZlcnNpb25TcnYgPSBpbmplY3Q8VmVyc2lvblNlcnZpY2VJbnRlcmZhY2U+KFRFUk1JTkFMX1ZFUlNJT05fU0VSVklDRV9UT0tFTik7XHJcblxyXG4gIHByaXZhdGUgdW5TdWJzY3JpYmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgY29udGVudEVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsQ29tcG9uZW50LnZpZXdwb3J0LmNvbnRlbnRXcmFwcGVyRWxlbWVudDtcclxuICB9XHJcblxyXG4gIFRFUk1JTkFMX1NURVAgPSBUZXJtaW5hbFN0ZXA7XHJcblxyXG4gIHR5cGVzOiBNZXRob2RUeXBlW10gPSBbXTtcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIHByb2plY3ROYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBzdGVwID0gVGVybWluYWxTdGVwLlByZXBhcmU7XHJcbiAgZGF0YTogVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlICYgeyB0eXBlSWQ/OiBudW1iZXI7IH07XHJcbiAgQFZpZXdDaGlsZCgnc2Nyb2xsQ29tcG9uZW50Jykgc2Nyb2xsQ29tcG9uZW50OiBOZ1Njcm9sbGJhcjtcclxuICBwcml2YXRlIHVybENoYW5nZUxpc3RlbmVyOiBWb2lkRnVuY3Rpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hZGFwdGVyLnNldExvY2FsZSh0aGlzLnRyYW5zbGF0ZVNydi5jdXJyZW50TGFuZyk7XHJcbiAgICB0aGlzLl9zZXRUaXRsZSgpO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlU3J2Lm9uTGFuZ0NoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YnNjcmliZXIpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRhcHRlci5zZXRMb2NhbGUoZS5sYW5nKTtcclxuICAgICAgICB0aGlzLl9zZXRUaXRsZSgpO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tGYXRhbEVycm9yKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzQ2hvaWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU3RvcmFnZVNydi5sYW5ndWFnZXMubGVuZ3RoID4gMTtcclxuICB9XHJcblxyXG4gIGdldCBsb2dvQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnZlcnNpb25TcnYubG9nb0NsYXNzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvb3RlclRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uU3J2LmZvb3RlclRleHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRUaXRsZSgpIHtcclxuICAgIHRoaXMudGl0bGVTcnYuc2V0VGl0bGUodGhpcy52ZXJzaW9uU3J2LnBhZ2VUaXRsZSArIHRoaXMudHJhbnNsYXRlU3J2Lmluc3RhbnQoZ2V0STE4S2V5KEkxOE5fS0VZLlRJVExFX1BBR0VfSU5WT0lDRSkpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMYW5nKCkge1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhvc3RuYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYXRpb24uaG9zdG5hbWU7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmFwaUVycm9yU3J2Lmhhc0ZhdGFsRXJyb3IpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uRFMubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgIHRoaXMuY2F0Y2hFcnJvcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlc3Npb25EUy5nZXQoKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZXNzaW9uSW5mbykgPT4ge1xyXG4gICAgICAgIHRoaXMudHlwZXMgPSBzZXNzaW9uSW5mby5tZXRob2RUeXBlcztcclxuICAgICAgICB0aGlzLmN1cnJlbmN5ID0gc2Vzc2lvbkluZm8uZGVmYXVsdEN1cnJlbmN5O1xyXG4gICAgICAgIHRoaXMucHJvamVjdE5hbWUgPSBzZXNzaW9uSW5mby5wcm9qZWN0TmFtZTtcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gc2Vzc2lvbkluZm8uZGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2F0Y2hFcnJvcigpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnB1c2hTdGF0ZSgpO1xyXG4gICAgdGhpcy51cmxDaGFuZ2VMaXN0ZW5lciA9IHRoaXMubG9jYXRpb24ub25VcmxDaGFuZ2UoKHVybCwgc3RhdGU6IHsgc3RlcD86IFRlcm1pbmFsU3RlcCB9KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2Ygc3RhdGU/LnN0ZXAgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgdGhpcy5zdGVwID0gc3RhdGUuc3RlcDtcclxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF9zdWJtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJlcGFyZShkYXRhOiBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuX3N1Ym1pdHRlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXNzaW9uRFNcclxuICAgICAgLnByZXBhcmUoZGF0YSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcDogVGVybWluYWxQYXltZW50UHJlcGFyZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXNwLmFtb3VudCAmJiAhcmVzcC5jdXJyZW5jeSAmJiAhcmVzcC50b3RhbCkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0ZXAgPSBUZXJtaW5hbFN0ZXAuQ29uZmlybWF0aW9uO1xyXG4gICAgICAgIHRoaXMubG9jYXRpb24uZ28odGhpcy5sb2NhdGlvbi5wYXRoKCksICcnLCB7c3RlcDogdGhpcy5zdGVwfSk7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gcmVzcDtcclxuICAgICAgICB0aGlzLmRhdGEudHlwZUlkID0gZGF0YS50eXBlSWQ7XHJcbiAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3N1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2F0Y2hFcnJvcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm0oKSB7XHJcbiAgICBpZiAodGhpcy5fc3VibWl0dGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICB0aGlzLnNlc3Npb25EU1xyXG4gICAgICAuY29uZmlybSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHJlc3A6IFRlcm1pbmFsUGF5bWVudENvbmZpcm1SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMudXJsQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy51cmxDaGFuZ2VMaXN0ZW5lcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbkRTLnJlZGlyZWN0KCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3RlcCArPSAxO1xyXG4gICAgICAgICAgaWYgKHJlc3Auc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLl9zdGF0dXNUZXh0ID0gcmVzcC5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNhdGNoRXJyb3IoKTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tGYXRhbEVycm9yKCkge1xyXG4gICAgLy8gQ2xlYXIgZm9ybSBlcnJvciB3aGVuIGFueSB2YWx1ZXMgaGF2ZSBjaGFuZ2VkLlxyXG4gICAgaWYgKCF0aGlzLmFwaUVycm9yU3J2Lmhhc0ZhdGFsRXJyb3IgJiYgdGhpcy5hcGlFcnJvclNydi5nZXRMb2NhbEVycm9yKCkpIHtcclxuICAgICAgdGhpcy5hcGlFcnJvclNydi5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVzaFN0YXRlKCkge1xyXG4gICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5sb2NhdGlvbi5wYXRoKCksIHVuZGVmaW5lZCwge3N0ZXA6IHRoaXMuc3RlcH0pO1xyXG4gIH1cclxuXHJcbiAgYmFjaygpIHtcclxuICAgIGlmICh0aGlzLnN0ZXApIHtcclxuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlc3Npb25EUy5jbG9zZSgpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmNkLm1hcmtGb3JDaGVjaygpKVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgcmV0dXJuQmFja1VybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLnJldHVybkJhY2tVcmw7XHJcbiAgfVxyXG5cclxuICBjYXRjaEVycm9yKCkge1xyXG4gICAgaWYgKHRoaXMuaGFzU3RhdHVzRXJyb3IpIHtcclxuICAgICAgdGhpcy5zdGVwID0gVGVybWluYWxTdGVwLlN0YXR1cztcclxuICAgICAgaWYgKHRoaXMudXJsQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgICB0aGlzLnVybENoYW5nZUxpc3RlbmVyKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RhdHVzVGV4dDogc3RyaW5nO1xyXG4gIGdldCBzdGF0dXNUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpRXJyb3JTcnYuZ2V0TG9jYWxFcnJvcigpIHx8IHRoaXMuX3N0YXR1c1RleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzU3RhdHVzRXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlFcnJvclNydi5oYXNGYXRhbEVycm9yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjdXJyZW50WWVhcigpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZlZUNhbGN1bGF0ZVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyBjYWxjdWxhdGVGZWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25EUy5mZWVDaGFuZ2VhYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZmVlQ2FsY3VsYXRlU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLmZlZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5mZWVPcHRpb25zID0ge307XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLnNlc3Npb25EU1xyXG4gICAgICAuZmVlT3B0aW9ucyh2YWx1ZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKChvcHRpb25zOiBQYXltZW50RmllbGRPcHRpb25zKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZlZU9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICAgICAgdGhpcy5mZWVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuZmVlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmZlZUNhbGN1bGF0ZVN1YmplY3QpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3Vic2NyaWJlcilcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGZlZUxvYWRpbmcgPSBmYWxzZTtcclxuICBmZWVPcHRpb25zOiBQYXltZW50RmllbGRPcHRpb25zO1xyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmZlZUNhbGN1bGF0ZVN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy51bm9ic2VydmUodGhpcy5jb250ZW50RWwpO1xyXG4gICAgaWYgKHRoaXMudXJsQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy51cmxDaGFuZ2VMaXN0ZW5lcigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bmctc2Nyb2xsYmFyIGFwcGVhcmFuY2U9XCJjb21wYWN0XCI+XHJcbiAgPGRpdiBjbGFzcz1cInRlcm1pbmFsLWxheW91dFwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJ0ZXJtaW5hbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWxfX2NvbnRlbnRcIj5cclxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwidGVybWluYWxfX2hlYWRlclwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJ0ZXJtaW5hbF9faGVhZGVyLWxvZ29cIlxyXG4gICAgICAgICAgW2NsYXNzXT1cImxvZ29DbGFzc1wiPjwvaT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbF9faGVhZGVyLWxhbmdcIj5cclxuICAgICAgICAgICAgQGlmIChoYXNDaG9pY2UpIHtcclxuICAgICAgICAgICAgICA8YXBwLXRlcm1pbmFsLWxhbmctc3dpdGNoZXIgKGxhbmdDaGFuZ2UpPVwiY2hhbmdlTGFuZygpXCJcclxuICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiMVwiPjwvYXBwLXRlcm1pbmFsLWxhbmctc3dpdGNoZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaGVhZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbF9fZm9ybVwiPlxyXG4gICAgICAgICAgQGlmIChzZXNzaW9uRFMubG9hZGluZyQgfCBhc3luYykge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NpemVdPVwiMTIwXCI+PC9nbS1za2VsZXRvbj5cclxuICAgICAgICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjRcIiBbZ2FwXT1cIjIwXCIgW3NpemVdPVwiODBcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgIDxnbS1za2VsZXRvbiBbY291bnRdPVwiMlwiIFtnYXBdPVwiMTBcIiBbc2l6ZV09XCI0OFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIEBpZiAocHJvamVjdE5hbWUpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWxfX2luZm9cIj5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInRlcm1pbmFsX19pbmZvX19uYW1lXCI+IHt7IHByb2plY3ROYW1lIH19IDwvaDU+XHJcbiAgICAgICAgICAgICAgICBAaWYgKGRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGVybWluYWxfX2luZm9fX2Rlc2NcIj4ge3sgZGVzY3JpcHRpb24gfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoc3RlcCAhPT0gVEVSTUlOQUxfU1RFUC5TdGF0dXMgJiYgIWhhc1N0YXR1c0Vycm9yKSB7XHJcbiAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1mb3JtXHJcbiAgICAgICAgICAgICAgICBbZmVlTG9hZGluZ109XCJmZWVMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIFtmZWVPcHRpb25zXT1cImZlZU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwic2Vzc2lvbkRTLmxvYWRpbmdDb25maXJtJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIFtzdGVwXT1cInN0ZXBcIlxyXG4gICAgICAgICAgICAgICAgW3R5cGVzXT1cInR5cGVzXCJcclxuICAgICAgICAgICAgICAgIFtjdXJyZW5jeV09XCJjdXJyZW5jeVwiXHJcbiAgICAgICAgICAgICAgICBbcmVzcG9uc2VdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwic3RhdHVzVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAocHJlcGFyZSk9XCJwcmVwYXJlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKG9uUGF5bWVudENoYW5nZWQpPVwiY2hlY2tGYXRhbEVycm9yKCk7IGNhbGN1bGF0ZUZlZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChiYWNrKT1cImJhY2soKVwiXHJcbiAgICAgICAgICAgICAgICBbY2FuUmV0dXJuVG9Qcm9qZWN0XT1cInNlc3Npb25EUy5jYW5SZXR1cm5Ub1Byb2plY3RcIlxyXG4gICAgICAgICAgICAgICAgKGNvbmZpcm0pPVwiY29uZmlybSgpXCJcclxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCIyXCI+PC9hcHAtY29uc3RydWN0b3ItZm9ybT5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1zdGF0dXMgY2xhc3M9XCJ0ZXJtaW5hbF9fc3RhdHVzXCJcclxuICAgICAgICAgICAgICAgIFtmYWlsZWRdPVwiaGFzU3RhdHVzRXJyb3JcIlxyXG4gICAgICAgICAgICAgICAgW21lc3NhZ2VdPVwic3RhdHVzVGV4dCA/IChzdGF0dXNUZXh0IHwgdHJhbnMpIDogJydcIlxyXG4gICAgICAgICAgICAgICAgW2JhY2tVcmxdPVwicmV0dXJuQmFja1VybFwiXHJcbiAgICAgICAgICAgICAgPjwvYXBwLWNvbnN0cnVjdG9yLXN0YXR1cz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8Zm9vdGVyIGNsYXNzPVwidGVybWluYWwtZm9vdGVyXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwidGVybWluYWwtZm9vdGVyX19sb2dvXCI+PC9pPlxyXG4gICAgICA8cCBjbGFzcz1cInRlcm1pbmFsLWZvb3Rlcl9fdHh0XCI+XHJcbiAgICAgICAge3sgZm9vdGVyVGV4dCB9fVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICA8L2Rpdj5cclxuPC9uZy1zY3JvbGxiYXI+XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Directive, inject, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FeeTemplateDirective {
4
+ constructor() {
5
+ this.tml = inject(TemplateRef);
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FeeTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: FeeTemplateDirective, isStandalone: true, selector: "[terminalFee]", ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FeeTemplateDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[terminalFee]',
14
+ standalone: true
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2RpcmVjdGl2ZXMvZmVlLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTS9ELE1BQU0sT0FBTyxvQkFBb0I7SUFKakM7UUFLRSxRQUFHLEdBQXFCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM3Qzs4R0FGWSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0ZXJtaW5hbEZlZV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZVRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICB0bWw6IFRlbXBsYXRlUmVmPGFueT4gPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xyXG59XHJcbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export * from './tab-index-focus.directive';
2
2
  export * from './input-mask-corrector.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFiLWluZGV4LWZvY3VzLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtbWFzay1jb3JyZWN0b3IuZGlyZWN0aXZlJztcclxuIl19
3
+ export * from './fee-template.directive';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWItaW5kZXgtZm9jdXMuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1tYXNrLWNvcnJlY3Rvci5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZlZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG4iXX0=
@@ -1,17 +1,20 @@
1
1
  import { inject, Injectable } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
2
  import { ApiErrors } from '../../codegen/model/models';
4
- import { getI18Key, I18N_KEY } from './../i18n';
5
- import { FATAL_ERROR_LIST, SessionToken } from '../models';
3
+ import { I18N_KEY } from './../i18n';
4
+ import { SessionToken } from '../models';
6
5
  import * as i0 from "@angular/core";
7
6
  export class ApiErrorsService {
8
- ;
9
- get ERROR_KEY() {
10
- return `${this.token}_ERROR_DETAIL`;
11
- }
12
7
  constructor() {
13
8
  this.token = inject(SessionToken, { optional: true }) || 'token';
14
- this.FATAL_ERRORS = inject(FATAL_ERROR_LIST, { optional: true }) || [
9
+ }
10
+ clear() {
11
+ this._localError = null;
12
+ }
13
+ get hasError() {
14
+ return !!this._localError;
15
+ }
16
+ get hasFatalError() {
17
+ const formatErrors = [
15
18
  ApiErrors.FORMAT_PHONE,
16
19
  ApiErrors.FORMAT_DATE_BIRTH,
17
20
  ApiErrors.FORMAT_EMAIL,
@@ -22,38 +25,17 @@ export class ApiErrorsService {
22
25
  ApiErrors.FORMAT_WALLET,
23
26
  ApiErrors.FORMAT_ZIP,
24
27
  ];
25
- this.document = inject(DOCUMENT);
26
- }
27
- setError(err) {
28
- let code = I18N_KEY.DEFAULT_ERROR_CODE;
29
- if (err?.code) {
30
- code = err.code;
28
+ if (formatErrors.includes(this._localError)) {
29
+ return false;
31
30
  }
32
- this.document.defaultView.sessionStorage.setItem(this.ERROR_KEY, code);
33
- }
34
- getError() {
35
- const code = this.document.defaultView.sessionStorage.getItem(this.ERROR_KEY) || null;
36
- return getI18Key(code) || code;
37
- }
38
- clear() {
39
- this.document.defaultView.sessionStorage.removeItem(this.ERROR_KEY);
40
- }
41
- get hasError() {
42
- return !!this.document.defaultView.sessionStorage.getItem(this.ERROR_KEY);
43
- }
44
- get hasFatalError() {
45
- const code = this.document.defaultView.sessionStorage.getItem(this.ERROR_KEY);
46
- return this.FATAL_ERRORS?.includes(code) || false;
31
+ return !!this._localError;
47
32
  }
48
33
  setLocalError(err) {
49
34
  let code = I18N_KEY.DEFAULT_ERROR_CODE;
50
35
  if (err?.code) {
51
36
  code = err.code;
52
37
  }
53
- this._localError = getI18Key(code);
54
- }
55
- clearLocal() {
56
- this._localError = '';
38
+ this._localError = code;
57
39
  }
58
40
  get hasLocalError() {
59
41
  return !!this._localError;
@@ -67,4 +49,4 @@ export class ApiErrorsService {
67
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ApiErrorsService, decorators: [{
68
50
  type: Injectable
69
51
  }], ctorParameters: () => [] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWVycm9ycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvc2VydmljZXMvYXBpLWVycm9ycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBSTNELE1BQU0sT0FBTyxnQkFBZ0I7SUFZdkIsQ0FBQztJQUdILElBQUksU0FBUztRQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxlQUFlLENBQUM7SUFDdEMsQ0FBQztJQUlEO1FBcEJRLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDO1FBQzVELGlCQUFZLEdBQUcsTUFBTSxDQUFXLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUk7WUFDL0UsU0FBUyxDQUFDLFlBQVk7WUFDdEIsU0FBUyxDQUFDLGlCQUFpQjtZQUMzQixTQUFTLENBQUMsWUFBWTtZQUN0QixTQUFTLENBQUMsY0FBYztZQUN4QixTQUFTLENBQUMsa0JBQWtCO1lBQzVCLFNBQVMsQ0FBQyxrQkFBa0I7WUFDNUIsU0FBUyxDQUFDLGtCQUFrQjtZQUM1QixTQUFTLENBQUMsYUFBYTtZQUN2QixTQUFTLENBQUMsVUFBVTtTQUNyQixDQUFDO1FBQ00sYUFBUSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztJQVM5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQTZDO1FBQ2xELElBQUksSUFBSSxHQUFjLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUNsRCxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFFBQVE7UUFDSixNQUFNLElBQUksR0FBYyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQWMsSUFBSSxJQUFJLENBQUM7UUFDOUcsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQWMsQ0FBQztRQUMzRixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQTZDO1FBQ3ZELElBQUksSUFBSSxHQUFjLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUNsRCxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7OEdBcEVRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQXBpRXJyb3JzLCBCYWRSZXF1ZXN0UmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jb2RlZ2VuL21vZGVsL21vZGVscyc7XHJcbmltcG9ydCB7IGdldEkxOEtleSwgSTE4Tl9LRVkgfSBmcm9tICcuLy4uL2kxOG4nO1xyXG5pbXBvcnQgeyBGQVRBTF9FUlJPUl9MSVNULCBTZXNzaW9uVG9rZW4gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxudHlwZSBFcnJvckNvZGUgPSBJMThOX0tFWSB8IEFwaUVycm9ycztcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBpRXJyb3JzU2VydmljZSB7XHJcbiAgICBwcml2YXRlIHRva2VuID0gaW5qZWN0KFNlc3Npb25Ub2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCAndG9rZW4nO1xyXG4gICAgcHJpdmF0ZSBGQVRBTF9FUlJPUlMgPSBpbmplY3Q8c3RyaW5nW10+KEZBVEFMX0VSUk9SX0xJU1QsIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgW1xyXG4gICAgICBBcGlFcnJvcnMuRk9STUFUX1BIT05FLFxyXG4gICAgICBBcGlFcnJvcnMuRk9STUFUX0RBVEVfQklSVEgsXHJcbiAgICAgIEFwaUVycm9ycy5GT1JNQVRfRU1BSUwsXHJcbiAgICAgIEFwaUVycm9ycy5GT1JNQVRfTlVNRVJJQyxcclxuICAgICAgQXBpRXJyb3JzLkZPUk1BVF9MT1dFUl9MSU1JVCxcclxuICAgICAgQXBpRXJyb3JzLkZPUk1BVF9VUFBFUl9MSU1JVCxcclxuICAgICAgQXBpRXJyb3JzLkZPUk1BVF9TVEVBTV9UT0tFTixcclxuICAgICAgQXBpRXJyb3JzLkZPUk1BVF9XQUxMRVQsXHJcbiAgICAgIEFwaUVycm9ycy5GT1JNQVRfWklQLFxyXG4gICAgXTs7XHJcbiAgICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0PERvY3VtZW50PihET0NVTUVOVCk7XHJcblxyXG4gICAgZ2V0IEVSUk9SX0tFWSgpe1xyXG4gICAgICByZXR1cm4gYCR7dGhpcy50b2tlbn1fRVJST1JfREVUQUlMYDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9sb2NhbEVycm9yOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyb3IoZXJyPzogQmFkUmVxdWVzdFJlc3BvbnNlIHwgeyBjb2RlOiBJMThOX0tFWSB9KSB7XHJcbiAgICAgICAgbGV0IGNvZGU6IEVycm9yQ29kZSA9IEkxOE5fS0VZLkRFRkFVTFRfRVJST1JfQ09ERTtcclxuICAgICAgICBpZiAoZXJyPy5jb2RlKSB7XHJcbiAgICAgICAgICAgIGNvZGUgPSBlcnIuY29kZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuRVJST1JfS0VZLCBjb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFcnJvcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNvZGU6IEVycm9yQ29kZSA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkVSUk9SX0tFWSkgYXMgRXJyb3JDb2RlIHx8IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIGdldEkxOEtleShjb2RlKSB8fCBjb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyKCkge1xyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLkVSUk9SX0tFWSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGhhc0Vycm9yKCkge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkVSUk9SX0tFWSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGhhc0ZhdGFsRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgY29kZSA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkVSUk9SX0tFWSkgYXMgRXJyb3JDb2RlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLkZBVEFMX0VSUk9SUz8uaW5jbHVkZXMoY29kZSkgfHwgZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9jYWxFcnJvcihlcnI/OiBCYWRSZXF1ZXN0UmVzcG9uc2UgfCB7IGNvZGU6IEkxOE5fS0VZIH0pIHtcclxuICAgICAgICBsZXQgY29kZTogRXJyb3JDb2RlID0gSTE4Tl9LRVkuREVGQVVMVF9FUlJPUl9DT0RFO1xyXG4gICAgICAgIGlmIChlcnI/LmNvZGUpIHtcclxuICAgICAgICAgICAgY29kZSA9IGVyci5jb2RlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9sb2NhbEVycm9yID0gZ2V0STE4S2V5KGNvZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyTG9jYWwoKSB7XHJcbiAgICAgICAgdGhpcy5fbG9jYWxFcnJvciA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBoYXNMb2NhbEVycm9yKCkge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuX2xvY2FsRXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TG9jYWxFcnJvcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxFcnJvcjtcclxuICAgIH1cclxufVxyXG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWVycm9ycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvc2VydmljZXMvYXBpLWVycm9ycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUt6QyxNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCO1FBSlEsVUFBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxPQUFPLENBQUM7SUFLbEUsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsTUFBTSxZQUFZLEdBQWdCO1lBQ2hDLFNBQVMsQ0FBQyxZQUFZO1lBQ3RCLFNBQVMsQ0FBQyxpQkFBaUI7WUFDM0IsU0FBUyxDQUFDLFlBQVk7WUFDdEIsU0FBUyxDQUFDLGNBQWM7WUFDeEIsU0FBUyxDQUFDLGtCQUFrQjtZQUM1QixTQUFTLENBQUMsa0JBQWtCO1lBQzVCLFNBQVMsQ0FBQyxrQkFBa0I7WUFDNUIsU0FBUyxDQUFDLGFBQWE7WUFDdkIsU0FBUyxDQUFDLFVBQVU7U0FDckIsQ0FBQztRQUNGLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBNkM7UUFDekQsSUFBSSxJQUFJLEdBQWMsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1FBQ2xELElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDbEIsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7OEdBaERVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaUVycm9ycywgQmFkUmVxdWVzdFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY29kZWdlbi9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vaTE4bic7XHJcbmltcG9ydCB7IFNlc3Npb25Ub2tlbiB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG50eXBlIEVycm9yQ29kZSA9IEkxOE5fS0VZIHwgQXBpRXJyb3JzO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBpRXJyb3JzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB0b2tlbiA9IGluamVjdChTZXNzaW9uVG9rZW4sIHtvcHRpb25hbDogdHJ1ZX0pIHx8ICd0b2tlbic7XHJcblxyXG4gIHByaXZhdGUgX2xvY2FsRXJyb3I6IEVycm9yQ29kZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xvY2FsRXJyb3IgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5fbG9jYWxFcnJvcjtcclxuICB9XHJcblxyXG4gIGdldCBoYXNGYXRhbEVycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybWF0RXJyb3JzOiBFcnJvckNvZGVbXSA9IFtcclxuICAgICAgQXBpRXJyb3JzLkZPUk1BVF9QSE9ORSxcclxuICAgICAgQXBpRXJyb3JzLkZPUk1BVF9EQVRFX0JJUlRILFxyXG4gICAgICBBcGlFcnJvcnMuRk9STUFUX0VNQUlMLFxyXG4gICAgICBBcGlFcnJvcnMuRk9STUFUX05VTUVSSUMsXHJcbiAgICAgIEFwaUVycm9ycy5GT1JNQVRfTE9XRVJfTElNSVQsXHJcbiAgICAgIEFwaUVycm9ycy5GT1JNQVRfVVBQRVJfTElNSVQsXHJcbiAgICAgIEFwaUVycm9ycy5GT1JNQVRfU1RFQU1fVE9LRU4sXHJcbiAgICAgIEFwaUVycm9ycy5GT1JNQVRfV0FMTEVULFxyXG4gICAgICBBcGlFcnJvcnMuRk9STUFUX1pJUCxcclxuICAgIF07XHJcbiAgICBpZiAoZm9ybWF0RXJyb3JzLmluY2x1ZGVzKHRoaXMuX2xvY2FsRXJyb3IpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiAhIXRoaXMuX2xvY2FsRXJyb3I7XHJcbiAgfVxyXG5cclxuICBzZXRMb2NhbEVycm9yKGVycj86IEJhZFJlcXVlc3RSZXNwb25zZSB8IHsgY29kZTogSTE4Tl9LRVkgfSk6IHZvaWQge1xyXG4gICAgbGV0IGNvZGU6IEVycm9yQ29kZSA9IEkxOE5fS0VZLkRFRkFVTFRfRVJST1JfQ09ERTtcclxuICAgIGlmIChlcnI/LmNvZGUpIHtcclxuICAgICAgY29kZSA9IGVyci5jb2RlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbG9jYWxFcnJvciA9IGNvZGU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzTG9jYWxFcnJvcigpIHtcclxuICAgIHJldHVybiAhIXRoaXMuX2xvY2FsRXJyb3I7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbEVycm9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsRXJyb3I7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -4,41 +4,31 @@ import { catchError, map } from 'rxjs/operators';
4
4
  import { CookieService } from 'ngx-cookie-service';
5
5
  import { ApiErrorsService } from './api-errors.service';
6
6
  import momentjs from 'moment-timezone';
7
- import { DOCUMENT } from '@angular/common';
8
7
  import { CSRF_COOKIE_NAME, SessionToken } from '../models/constants';
9
- import { TranslateLangStorageService } from './translation/translate-lang-storage.service';
10
8
  import { CONFIGURATION_TOKEN, ENVIRONMENT, TERMINAL_SERVICE_TOKEN } from '../../const';
11
9
  import { ApiErrors } from '../../codegen/model/apiErrors';
12
- import { DEFAULT_COUNTRY_LOCALHOST_KEY } from '../pages/components/constructor-form/models';
10
+ import { LocalStorage } from "./local-storage";
13
11
  import * as i0 from "@angular/core";
14
12
  export class CSRFResolver {
15
13
  constructor() {
16
- this.document = inject(DOCUMENT);
17
14
  this.cookieSrv = inject(CookieService);
18
15
  this.apiErrorsSrv = inject(ApiErrorsService);
19
16
  this.configuration = inject(CONFIGURATION_TOKEN, { optional: true }) || { credentials: {} };
20
17
  this.terminalApi = inject(TERMINAL_SERVICE_TOKEN);
21
18
  this.token = inject(SessionToken, { optional: true }) || 'token';
22
- this.langStorage = inject(TranslateLangStorageService);
23
19
  this.environment = inject(ENVIRONMENT);
24
- }
25
- get _localStorage() {
26
- return this.document.defaultView.localStorage;
20
+ this.storage = inject(LocalStorage);
27
21
  }
28
22
  saveDefaultCountry(defaultCountryISOCode) {
29
23
  if (defaultCountryISOCode) {
30
- this._localStorage.setItem(DEFAULT_COUNTRY_LOCALHOST_KEY, defaultCountryISOCode);
24
+ this.storage.saveDefaultCountry(defaultCountryISOCode);
31
25
  }
32
26
  }
33
- get savedCountry() {
34
- return this._localStorage.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY);
35
- }
36
27
  resolve(route) {
37
28
  const token = this.token;
38
29
  if (!token) {
39
- this.langStorage.setLanguageByCountry(this.savedCountry);
40
30
  if (!this.apiErrorsSrv.hasError) {
41
- this.apiErrorsSrv.setError({ code: ApiErrors.SESSION_NOT_FOUND });
31
+ this.apiErrorsSrv.setLocalError({ code: ApiErrors.SESSION_NOT_FOUND });
42
32
  }
43
33
  return of(true);
44
34
  }
@@ -47,7 +37,6 @@ export class CSRFResolver {
47
37
  return of(false);
48
38
  }
49
39
  if (this.resolveCSRF(token)) {
50
- this.langStorage.setLanguageByCountry(this.savedCountry);
51
40
  return of(true);
52
41
  }
53
42
  return this.terminalApi.postTerminalOpen({
@@ -57,11 +46,10 @@ export class CSRFResolver {
57
46
  }
58
47
  })
59
48
  .pipe(catchError((err) => {
60
- this.apiErrorsSrv.setError(err.error);
49
+ this.apiErrorsSrv.setLocalError(err.error);
61
50
  return of({ csrf: null, defaultCountryISOCode: null });
62
51
  }), map(({ csrf, defaultCountryISOCode }) => {
63
52
  this.saveDefaultCountry(defaultCountryISOCode);
64
- this.langStorage.setLanguageByCountry(this.savedCountry);
65
53
  this.resolveCSRF(token, csrf);
66
54
  return true;
67
55
  }));
@@ -88,4 +76,4 @@ export class CSRFResolver {
88
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CSRFResolver, decorators: [{
89
77
  type: Injectable
90
78
  }], ctorParameters: () => [] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NyZi5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3NlcnZpY2VzL2NzcmYucmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUc1RixNQUFNLE9BQU8sWUFBWTtJQVdyQjtRQVZRLGFBQVEsR0FBRyxNQUFNLENBQVcsUUFBUSxDQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hDLGtCQUFh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QUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYSxFQUFFLElBQWE7UUFDcEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7Z0JBQ3pGLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEosSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0FoRlEsWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlFcnJvcnNTZXJ2aWNlIH0gZnJvbSAnLi9hcGktZXJyb3JzLnNlcnZpY2UnO1xyXG5pbXBvcnQgbW9tZW50anMgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDU1JGX0NPT0tJRV9OQU1FLCBTZXNzaW9uVG9rZW4gfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGFuZ1N0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi90cmFuc2xhdGUtbGFuZy1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBbHBoYTJDb2RlIH0gZnJvbSAnaTE4bi1pc28tY291bnRyaWVzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaUludGVyZmFjZSB9IGZyb20gJy4uLy4uL2NvZGVnZW4vYXBpL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBDT05GSUdVUkFUSU9OX1RPS0VOLCBFTlZJUk9OTUVOVCwgVEVSTUlOQUxfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvbnN0JztcclxuaW1wb3J0IHsgVGVybWluYWxTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vY29kZWdlbi9hcGkvdGVybWluYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaUVycm9ycyB9IGZyb20gJy4uLy4uL2NvZGVnZW4vbW9kZWwvYXBpRXJyb3JzJztcclxuaW1wb3J0IHsgREVGQVVMVF9DT1VOVFJZX0xPQ0FMSE9TVF9LRVkgfSBmcm9tICcuLi9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENTUkZSZXNvbHZlciAge1xyXG4gICAgcHJpdmF0ZSBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xyXG4gICAgcHJpdmF0ZSBjb29raWVTcnYgPSBpbmplY3QoQ29va2llU2VydmljZSk7XHJcbiAgICBwcml2YXRlIGFwaUVycm9yc1NydiA9IGluamVjdChBcGlFcnJvcnNTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbiA9IGluamVjdDxDb25maWd1cmF0aW9uQXBpSW50ZXJmYWNlPihDT05GSUdVUkFUSU9OX1RPS0VOLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IHsgY3JlZGVudGlhbHM6IHt9IH07XHJcbiAgICBwcml2YXRlIHRlcm1pbmFsQXBpID0gaW5qZWN0PFRlcm1pbmFsU2VydmljZUludGVyZmFjZT4oVEVSTUlOQUxfU0VSVklDRV9UT0tFTik7XHJcbiAgICBwcml2YXRlIHRva2VuID0gaW5qZWN0KFNlc3Npb25Ub2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCAndG9rZW4nO1xyXG4gICAgcHJpdmF0ZSBsYW5nU3RvcmFnZSA9IGluamVjdChUcmFuc2xhdGVMYW5nU3RvcmFnZVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudCA9IGluamVjdChFTlZJUk9OTUVOVCk7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IF9sb2NhbFN0b3JhZ2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2F2ZURlZmF1bHRDb3VudHJ5KGRlZmF1bHRDb3VudHJ5SVNPQ29kZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRDb3VudHJ5SVNPQ29kZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2NhbFN0b3JhZ2Uuc2V0SXRlbShERUZBVUxUX0NPVU5UUllfTE9DQUxIT1NUX0tFWSwgZGVmYXVsdENvdW50cnlJU09Db2RlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgc2F2ZWRDb3VudHJ5KCk6IEFscGhhMkNvZGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbFN0b3JhZ2UuZ2V0SXRlbShERUZBVUxUX0NPVU5UUllfTE9DQUxIT1NUX0tFWSkgYXMgQWxwaGEyQ29kZTtcclxuICAgIH1cclxuXHJcbiAgICByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgICAgIGlmICghdG9rZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5sYW5nU3RvcmFnZS5zZXRMYW5ndWFnZUJ5Q291bnRyeSh0aGlzLnNhdmVkQ291bnRyeSk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5hcGlFcnJvcnNTcnYuaGFzRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBpRXJyb3JzU3J2LnNldEVycm9yKHtjb2RlOiBBcGlFcnJvcnMuU0VTU0lPTl9OT1RfRk9VTkR9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRpbWV6b25lID0gbW9tZW50anMudHouZ3Vlc3MoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmVudmlyb25tZW50LmNzcmYpIHtcclxuICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnJlc29sdmVDU1JGKHRva2VuKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxhbmdTdG9yYWdlLnNldExhbmd1YWdlQnlDb3VudHJ5KHRoaXMuc2F2ZWRDb3VudHJ5KTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy50ZXJtaW5hbEFwaS5wb3N0VGVybWluYWxPcGVuKHtcclxuICAgICAgICAgICAgdG9rZW4sXHJcbiAgICAgICAgICAgIHRlcm1pbmFsT3BlblJlcXVlc3Q6IHtcclxuICAgICAgICAgICAgICAgIHRpbWV6b25lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBpRXJyb3JzU3J2LnNldEVycm9yKGVyci5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHtjc3JmOiBudWxsLCBkZWZhdWx0Q291bnRyeUlTT0NvZGU6IG51bGx9KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgbWFwKCh7Y3NyZiwgZGVmYXVsdENvdW50cnlJU09Db2RlfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZURlZmF1bHRDb3VudHJ5KGRlZmF1bHRDb3VudHJ5SVNPQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5nU3RvcmFnZS5zZXRMYW5ndWFnZUJ5Q291bnRyeSh0aGlzLnNhdmVkQ291bnRyeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlQ1NSRih0b2tlbiwgY3NyZik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc29sdmVDU1JGKHRva2VuOiBzdHJpbmcsIGNzcmY/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWNzcmYpIHtcclxuICAgICAgICAgICAgaWYgKHRva2VuICYmIHRoaXMuY29va2llU3J2LmNoZWNrKGAke3Rva2VufV8ke0NTUkZfQ09PS0lFX05BTUV9YCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBpRXJyb3JzU3J2LmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uY3JlZGVudGlhbHMuQ1NSRiA9IHRoaXMuY29va2llU3J2LmdldChgJHt0b2tlbn1fJHtDU1JGX0NPT0tJRV9OQU1FfWApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFwaUVycm9yc1Nydi5jbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLmNvb2tpZVNydi5zZXQoYCR7dG9rZW59XyR7Q1NSRl9DT09LSUVfTkFNRX1gLCBjc3JmLCBtb21lbnRqcygpLmFkZCgyNCwgJ2hvdXJzJykudG9EYXRlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLmVudmlyb25tZW50LnByb2R1Y3Rpb24pO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uY3JlZGVudGlhbHMuQ1NSRiA9IGNzcmY7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NyZi5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3NlcnZpY2VzL2NzcmYucmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUcvQyxNQUFNLE9BQU8sWUFBWTtJQVVyQjtRQVRRLGNBQVMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEMsaUJBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLE1BQU0sQ0FBNEIsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNsSCxnQkFBVyxHQUFHLE1BQU0sQ0FBMkIsc0JBQXNCLENB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SUFBSSxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsSixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQzNDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQXBFUSxZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaUVycm9yc1NlcnZpY2UgfSBmcm9tICcuL2FwaS1lcnJvcnMuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnRqcyBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xyXG5pbXBvcnQgeyBDU1JGX0NPT0tJRV9OQU1FLCBTZXNzaW9uVG9rZW4gfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaUludGVyZmFjZSB9IGZyb20gJy4uLy4uL2NvZGVnZW4vYXBpL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBDT05GSUdVUkFUSU9OX1RPS0VOLCBFTlZJUk9OTUVOVCwgVEVSTUlOQUxfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvbnN0JztcclxuaW1wb3J0IHsgVGVybWluYWxTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vY29kZWdlbi9hcGkvdGVybWluYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaUVycm9ycyB9IGZyb20gJy4uLy4uL2NvZGVnZW4vbW9kZWwvYXBpRXJyb3JzJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlIH0gZnJvbSBcIi4vbG9jYWwtc3RvcmFnZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ1NSRlJlc29sdmVyICB7XHJcbiAgICBwcml2YXRlIGNvb2tpZVNydiA9IGluamVjdChDb29raWVTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgYXBpRXJyb3JzU3J2ID0gaW5qZWN0KEFwaUVycm9yc1NlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uID0gaW5qZWN0PENvbmZpZ3VyYXRpb25BcGlJbnRlcmZhY2U+KENPTkZJR1VSQVRJT05fVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgeyBjcmVkZW50aWFsczoge30gfTtcclxuICAgIHByaXZhdGUgdGVybWluYWxBcGkgPSBpbmplY3Q8VGVybWluYWxTZXJ2aWNlSW50ZXJmYWNlPihURVJNSU5BTF9TRVJWSUNFX1RPS0VOKTtcclxuICAgIHByaXZhdGUgdG9rZW4gPSBpbmplY3QoU2Vzc2lvblRva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8ICd0b2tlbic7XHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UKTtcclxuXHJcbiAgcHJpdmF0ZSBzdG9yYWdlOiBMb2NhbFN0b3JhZ2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNhdmVEZWZhdWx0Q291bnRyeShkZWZhdWx0Q291bnRyeUlTT0NvZGU6IHN0cmluZykge1xyXG4gICAgICBpZiAoZGVmYXVsdENvdW50cnlJU09Db2RlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlLnNhdmVEZWZhdWx0Q291bnRyeShkZWZhdWx0Q291bnRyeUlTT0NvZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVzb2x2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlbjtcclxuICAgICAgICBpZiAoIXRva2VuKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5hcGlFcnJvcnNTcnYuaGFzRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBpRXJyb3JzU3J2LnNldExvY2FsRXJyb3Ioe2NvZGU6IEFwaUVycm9ycy5TRVNTSU9OX05PVF9GT1VORH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGltZXpvbmUgPSBtb21lbnRqcy50ei5ndWVzcygpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZW52aXJvbm1lbnQuY3NyZikge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucmVzb2x2ZUNTUkYodG9rZW4pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGVybWluYWxBcGkucG9zdFRlcm1pbmFsT3Blbih7XHJcbiAgICAgICAgICAgIHRva2VuLFxyXG4gICAgICAgICAgICB0ZXJtaW5hbE9wZW5SZXF1ZXN0OiB7XHJcbiAgICAgICAgICAgICAgICB0aW1lem9uZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwaUVycm9yc1Nydi5zZXRMb2NhbEVycm9yKGVyci5lcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHtjc3JmOiBudWxsLCBkZWZhdWx0Q291bnRyeUlTT0NvZGU6IG51bGx9KTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgbWFwKCh7Y3NyZiwgZGVmYXVsdENvdW50cnlJU09Db2RlfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZURlZmF1bHRDb3VudHJ5KGRlZmF1bHRDb3VudHJ5SVNPQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlQ1NSRih0b2tlbiwgY3NyZik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc29sdmVDU1JGKHRva2VuOiBzdHJpbmcsIGNzcmY/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWNzcmYpIHtcclxuICAgICAgICAgICAgaWYgKHRva2VuICYmIHRoaXMuY29va2llU3J2LmNoZWNrKGAke3Rva2VufV8ke0NTUkZfQ09PS0lFX05BTUV9YCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBpRXJyb3JzU3J2LmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uY3JlZGVudGlhbHMuQ1NSRiA9IHRoaXMuY29va2llU3J2LmdldChgJHt0b2tlbn1fJHtDU1JGX0NPT0tJRV9OQU1FfWApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFwaUVycm9yc1Nydi5jbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLmNvb2tpZVNydi5zZXQoYCR7dG9rZW59XyR7Q1NSRl9DT09LSUVfTkFNRX1gLCBjc3JmLCBtb21lbnRqcygpLmFkZCgyNCwgJ2hvdXJzJykudG9EYXRlKCksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLmVudmlyb25tZW50LnByb2R1Y3Rpb24pO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uY3JlZGVudGlhbHMuQ1NSRiA9IGNzcmY7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -12,7 +12,7 @@ export class ErrorInterceptorService {
12
12
  .handle(req)
13
13
  .pipe(catchError((err) => {
14
14
  if (err.status === 404 || err.status === 500) {
15
- this.apiErrorSrv.setError();
15
+ this.apiErrorSrv.setLocalError();
16
16
  }
17
17
  return throwError(err);
18
18
  }));
@@ -23,4 +23,4 @@ export class ErrorInterceptorService {
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ErrorInterceptorService, decorators: [{
24
24
  type: Injectable
25
25
  }], ctorParameters: () => [] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0aW9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvc2VydmljZXMvZXJyb3IuaW50ZXJjZXB0aW9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUd4RCxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDO1FBSFEsZ0JBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUcvQixDQUFDO0lBRWpCLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQzlDLE9BQU8sSUFBSTthQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDWCxJQUFJLENBQ0QsVUFBVSxDQUFDLENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7OEdBakJRLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwaUVycm9yc1NlcnZpY2UgfSBmcm9tICcuL2FwaS1lcnJvcnMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yU2VydmljZSBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBwcml2YXRlIGFwaUVycm9yU3J2ID0gaW5qZWN0KEFwaUVycm9yc1NlcnZpY2UpO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgICAgIHJldHVybiBuZXh0XHJcbiAgICAgICAgICAgIC5oYW5kbGUocmVxKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDA0IHx8IGVyci5zdGF0dXMgPT09IDUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwaUVycm9yU3J2LnNldEVycm9yKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0aW9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvc2VydmljZXMvZXJyb3IuaW50ZXJjZXB0aW9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUd4RCxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDO1FBSFEsZ0JBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUcvQixDQUFDO0lBRWpCLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQzlDLE9BQU8sSUFBSTthQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDWCxJQUFJLENBQ0QsVUFBVSxDQUFDLENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7OEdBakJRLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwaUVycm9yc1NlcnZpY2UgfSBmcm9tICcuL2FwaS1lcnJvcnMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yU2VydmljZSBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBwcml2YXRlIGFwaUVycm9yU3J2ID0gaW5qZWN0KEFwaUVycm9yc1NlcnZpY2UpO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgICAgIHJldHVybiBuZXh0XHJcbiAgICAgICAgICAgIC5oYW5kbGUocmVxKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLnN0YXR1cyA9PT0gNDA0IHx8IGVyci5zdGF0dXMgPT09IDUwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwaUVycm9yU3J2LnNldExvY2FsRXJyb3IoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,70 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { DEFAULT_COUNTRY_LOCALHOST_KEY, DEFAULT_CURRENCY_LOCALHOST_KEY, DEFAULT_METHOD_LOCALHOST_KEY, LOCAL_LANG_KEY, } from '../models/constants';
4
+ import * as i0 from "@angular/core";
5
+ export class LocalStorage {
6
+ constructor() {
7
+ this._document = inject(DOCUMENT);
8
+ this._supported = true;
9
+ try {
10
+ if (!this._document.defaultView.localStorage) {
11
+ this._supported = false;
12
+ }
13
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
+ }
15
+ catch (error) {
16
+ this._supported = false;
17
+ }
18
+ }
19
+ get _storage() {
20
+ return this._document.defaultView.localStorage;
21
+ }
22
+ getItem(key) {
23
+ if (!this._supported) {
24
+ return null;
25
+ }
26
+ return this._storage.getItem(key);
27
+ }
28
+ setItem(key, value) {
29
+ if (!this._supported) {
30
+ return;
31
+ }
32
+ this._storage.setItem(key, value);
33
+ }
34
+ get defaultCountry() {
35
+ return (this._defaultCountry ||
36
+ this.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY));
37
+ }
38
+ get defaultMethodName() {
39
+ return (this._defaultMethodName || this.getItem(DEFAULT_METHOD_LOCALHOST_KEY));
40
+ }
41
+ get defaultCurrency() {
42
+ return (this._defaultCurrency || this.getItem(DEFAULT_CURRENCY_LOCALHOST_KEY));
43
+ }
44
+ get defaultLang() {
45
+ return this._defaultLang || this.getItem(LOCAL_LANG_KEY);
46
+ }
47
+ saveDefaultCountry(value) {
48
+ this._defaultCountry = value;
49
+ this.setItem(DEFAULT_COUNTRY_LOCALHOST_KEY, value);
50
+ }
51
+ saveDefaultMethodName(value) {
52
+ this._defaultMethodName = value;
53
+ this.setItem(DEFAULT_METHOD_LOCALHOST_KEY, value);
54
+ }
55
+ saveDefaultCurrency(value) {
56
+ this._defaultCurrency = value;
57
+ this.setItem(DEFAULT_CURRENCY_LOCALHOST_KEY, value);
58
+ }
59
+ saveDefaultLang(value) {
60
+ this._defaultLang = value;
61
+ this.setItem(LOCAL_LANG_KEY, value);
62
+ }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LocalStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
64
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LocalStorage, providedIn: 'root' }); }
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LocalStorage, decorators: [{
67
+ type: Injectable,
68
+ args: [{ providedIn: 'root' }]
69
+ }], ctorParameters: () => [] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixjQUFjLEdBQ2YsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHN0IsTUFBTSxPQUFPLFlBQVk7SUFHdkI7UUFGUSxjQUFTLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFMUMsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUMxQixDQUFDO1lBQ0QsNkRBQTZEO1FBQy9ELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQU9ELElBQUksY0FBYztRQUNoQixPQUFPLENBQ0wsSUFBSSxDQUFDLGVBQWU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBZ0IsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLENBQ0wsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUNMLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFtQixDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs4R0E5RVUsWUFBWTtrSEFBWixZQUFZLGNBREMsTUFBTTs7MkZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWxwaGEyQ29kZSB9IGZyb20gJ2kxOG4taXNvLWNvdW50cmllcyc7XHJcbmltcG9ydCB7XHJcbiAgREVGQVVMVF9DT1VOVFJZX0xPQ0FMSE9TVF9LRVksXHJcbiAgREVGQVVMVF9DVVJSRU5DWV9MT0NBTEhPU1RfS0VZLFxyXG4gIERFRkFVTFRfTUVUSE9EX0xPQ0FMSE9TVF9LRVksXHJcbiAgTE9DQUxfTEFOR19LRVksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlIHtcclxuICBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1cHBvcnRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIXRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgIHRoaXMuX3N1cHBvcnRlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuX3N1cHBvcnRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgX3N0b3JhZ2UoKTogU3RvcmFnZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbShrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLl9zdXBwb3J0ZWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fc3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbiAgfVxyXG5cclxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3N1cHBvcnRlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZWZhdWx0Q291bnRyeTogQWxwaGEyQ29kZTtcclxuICBwcml2YXRlIF9kZWZhdWx0TWV0aG9kTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2RlZmF1bHRDdXJyZW5jeTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2RlZmF1bHRMYW5nOiBzdHJpbmc7XHJcblxyXG4gIGdldCBkZWZhdWx0Q291bnRyeSgpOiBBbHBoYTJDb2RlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLl9kZWZhdWx0Q291bnRyeSB8fFxyXG4gICAgICAodGhpcy5nZXRJdGVtKERFRkFVTFRfQ09VTlRSWV9MT0NBTEhPU1RfS0VZKSBhcyBBbHBoYTJDb2RlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0TWV0aG9kTmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuX2RlZmF1bHRNZXRob2ROYW1lIHx8IHRoaXMuZ2V0SXRlbShERUZBVUxUX01FVEhPRF9MT0NBTEhPU1RfS0VZKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0Q3VycmVuY3koKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLl9kZWZhdWx0Q3VycmVuY3kgfHwgdGhpcy5nZXRJdGVtKERFRkFVTFRfQ1VSUkVOQ1lfTE9DQUxIT1NUX0tFWSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVmYXVsdExhbmcoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdExhbmcgfHwgdGhpcy5nZXRJdGVtKExPQ0FMX0xBTkdfS0VZKTtcclxuICB9XHJcblxyXG4gIHNhdmVEZWZhdWx0Q291bnRyeSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZWZhdWx0Q291bnRyeSA9IHZhbHVlIGFzIEFscGhhMkNvZGU7XHJcbiAgICB0aGlzLnNldEl0ZW0oREVGQVVMVF9DT1VOVFJZX0xPQ0FMSE9TVF9LRVksIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNhdmVEZWZhdWx0TWV0aG9kTmFtZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZWZhdWx0TWV0aG9kTmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRJdGVtKERFRkFVTFRfTUVUSE9EX0xPQ0FMSE9TVF9LRVksIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNhdmVEZWZhdWx0Q3VycmVuY3kodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVmYXVsdEN1cnJlbmN5ID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldEl0ZW0oREVGQVVMVF9DVVJSRU5DWV9MT0NBTEhPU1RfS0VZLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzYXZlRGVmYXVsdExhbmcodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVmYXVsdExhbmcgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0SXRlbShMT0NBTF9MQU5HX0tFWSwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=