@vendure/admin-ui 2.3.0 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ export declare class ProductVariantListComponent extends TypedBaseListComponent<
7
7
  dataTableId: DataTableLocationId | undefined;
8
8
  readonly customFields: import("@vendure/admin-ui/core").CustomFieldConfig[];
9
9
  readonly filters: import("@vendure/admin-ui/core").DataTableFilterCollection<ProductVariantFilterParameter>;
10
- readonly sorts: import("@vendure/admin-ui/core").DataTableSortCollection<import("@vendure/admin-ui/core").ProductVariantSortParameter, ["name" | "id" | "createdAt" | "updatedAt" | "price" | "priceWithTax" | "sku"]>;
10
+ readonly sorts: import("@vendure/admin-ui/core").DataTableSortCollection<import("@vendure/admin-ui/core").ProductVariantSortParameter, ["name" | "price" | "sku" | "id" | "createdAt" | "updatedAt" | "priceWithTax"]>;
11
11
  constructor();
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductVariantListComponent, never>;
13
13
  static ɵcmp: i0.ɵɵComponentDeclaration<ProductVariantListComponent, "vdr-product-variant-list", never, { "productId": { "alias": "productId"; "required": false; }; "hideLanguageSelect": { "alias": "hideLanguageSelect"; "required": false; }; "dataTableId": { "alias": "dataTableId"; "required": false; }; }, {}, never, never, false, never>;
@@ -1 +1 @@
1
- export declare const ADMIN_UI_VERSION = "2.3.0";
1
+ export declare const ADMIN_UI_VERSION = "2.3.2";
@@ -127,9 +127,11 @@ export declare class Alert<T> {
127
127
  activeAlert$: Observable<ActiveAlert | undefined>;
128
128
  private hasRun$;
129
129
  private data$;
130
+ private readonly subscription;
130
131
  constructor(config: AlertConfig<T>, context: AlertContext);
131
132
  get id(): string;
132
133
  runCheck(): void;
134
+ destroy(): void;
133
135
  }
134
136
  export declare class AlertsService {
135
137
  private permissionsService;
@@ -144,6 +146,7 @@ export declare class AlertsService {
144
146
  configureAlert<T>(config: AlertConfig<T>): void;
145
147
  hasSufficientPermissions(permissions?: Permission[]): Observable<boolean>;
146
148
  refresh(id?: string): void;
149
+ clearAlerts(): void;
147
150
  protected createContext(): AlertContext;
148
151
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertsService, never>;
149
152
  static ɵprov: i0.ɵɵInjectableDeclaration<AlertsService>;
@@ -4,6 +4,7 @@ import { DataService } from '../../data/providers/data.service';
4
4
  import { ServerConfigService } from '../../data/server-config';
5
5
  import { LocalStorageService } from '../local-storage/local-storage.service';
6
6
  import { PermissionsService } from '../permissions/permissions.service';
7
+ import { AlertsService } from '../alerts/alerts.service';
7
8
  import * as i0 from "@angular/core";
8
9
  /**
9
10
  * This service handles logic relating to authentication of the current user.
@@ -13,7 +14,8 @@ export declare class AuthService {
13
14
  private dataService;
14
15
  private serverConfigService;
15
16
  private permissionsService;
16
- constructor(localStorageService: LocalStorageService, dataService: DataService, serverConfigService: ServerConfigService, permissionsService: PermissionsService);
17
+ private alertService;
18
+ constructor(localStorageService: LocalStorageService, dataService: DataService, serverConfigService: ServerConfigService, permissionsService: PermissionsService, alertService: AlertsService);
17
19
  /**
18
20
  * Attempts to log in via the REST login endpoint and updates the app
19
21
  * state on success.
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  */
12
12
  export declare class OrderStateLabelComponent {
13
13
  state: string;
14
- get chipColorType(): "" | "success" | "error" | "warning";
14
+ get chipColorType(): "error" | "success" | "" | "warning";
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<OrderStateLabelComponent, never>;
16
16
  static ɵcmp: i0.ɵɵComponentDeclaration<OrderStateLabelComponent, "vdr-order-state-label", never, { "state": { "alias": "state"; "required": false; }; }, {}, never, ["*"], false, never>;
17
17
  }
@@ -12,7 +12,7 @@ import { RelationFormInputComponent } from './relation-form-input/relation-form-
12
12
  import { SelectFormInputComponent } from './select-form-input/select-form-input.component';
13
13
  import { TextFormInputComponent } from './text-form-input/text-form-input.component';
14
14
  import { TextareaFormInputComponent } from './textarea-form-input/textarea-form-input.component';
15
- export declare const defaultFormInputs: (typeof HtmlEditorFormInputComponent | typeof SelectFormInputComponent | typeof RelationFormInputComponent | typeof ProductSelectorFormInputComponent | typeof CustomerGroupFormInputComponent | typeof CurrencyFormInputComponent | typeof JsonEditorFormInputComponent | typeof CombinationModeFormInputComponent | typeof DateFormInputComponent | typeof PasswordFormInputComponent | typeof ProductMultiSelectorFormInputComponent | typeof TextFormInputComponent | typeof TextareaFormInputComponent)[];
15
+ export declare const defaultFormInputs: (typeof HtmlEditorFormInputComponent | typeof JsonEditorFormInputComponent | typeof CombinationModeFormInputComponent | typeof CurrencyFormInputComponent | typeof CustomerGroupFormInputComponent | typeof DateFormInputComponent | typeof PasswordFormInputComponent | typeof ProductMultiSelectorFormInputComponent | typeof ProductSelectorFormInputComponent | typeof RelationFormInputComponent | typeof SelectFormInputComponent | typeof TextFormInputComponent | typeof TextareaFormInputComponent)[];
16
16
  /**
17
17
  * Registers the default form input components.
18
18
  */
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by the set-version.js script.
2
- export const ADMIN_UI_VERSION = '2.3.0';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjMuMCc7XG4iXX0=
2
+ export const ADMIN_UI_VERSION = '2.3.2';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjMuMic7XG4iXX0=
@@ -95,10 +95,10 @@ export class AppShellComponent {
95
95
  });
96
96
  }
97
97
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AppShellComponent, deps: [{ token: i1.AuthService }, { token: i2.DataService }, { token: i3.Router }, { token: i4.I18nService }, { token: i5.ModalService }, { token: i6.LocalStorageService }, { token: i7.BreadcrumbService }, { token: i8.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2 flex center mb-1\" [class.mt-2]=\"hideVersion && !devMode\">\r\n <div *ngIf=\"!hideVersion\" class=\"version\">\r\n v{{ version }}\r\n </div>\r\n <vdr-dropdown *ngIf=\"devMode\">\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n ></vdr-user-menu>\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}.version{color:var(--color-grey-300)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0 -10px 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i11.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i12.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i13.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i14.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i15.IfMultichannelDirective, selector: "[vdrIfMultichannel]", inputs: ["vdrIfMultichannelElse"] }, { kind: "component", type: i16.UserMenuComponent, selector: "vdr-user-menu", inputs: ["userName", "availableLanguages", "uiLanguageAndLocale"], outputs: ["logOut", "selectUiLanguage"] }, { kind: "component", type: i17.MainNavComponent, selector: "vdr-main-nav", inputs: ["displayMode"], outputs: ["itemClick"] }, { kind: "component", type: i18.BreadcrumbComponent, selector: "vdr-breadcrumb" }, { kind: "component", type: i19.ChannelSwitcherComponent, selector: "vdr-channel-switcher" }, { kind: "component", type: i20.AlertsComponent, selector: "vdr-alerts" }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }] }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: AppShellComponent, selector: "vdr-app-shell", ngImport: i0, template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2 flex center mb-1\" [class.mt-2]=\"hideVersion && !devMode\">\r\n <div *ngIf=\"!hideVersion\" class=\"version\">\r\n v{{ version }}\r\n </div>\r\n <vdr-dropdown *ngIf=\"devMode\">\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}.version{color:var(--color-grey-300)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0 -10px 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i11.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i12.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i13.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i14.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i15.IfMultichannelDirective, selector: "[vdrIfMultichannel]", inputs: ["vdrIfMultichannelElse"] }, { kind: "component", type: i16.UserMenuComponent, selector: "vdr-user-menu", inputs: ["userName", "availableLanguages", "uiLanguageAndLocale"], outputs: ["logOut", "selectUiLanguage"] }, { kind: "component", type: i17.MainNavComponent, selector: "vdr-main-nav", inputs: ["displayMode"], outputs: ["itemClick"] }, { kind: "component", type: i18.BreadcrumbComponent, selector: "vdr-breadcrumb" }, { kind: "component", type: i19.ChannelSwitcherComponent, selector: "vdr-channel-switcher" }, { kind: "component", type: i20.AlertsComponent, selector: "vdr-alerts" }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }] }); }
99
99
  }
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AppShellComponent, decorators: [{
101
101
  type: Component,
102
- args: [{ selector: 'vdr-app-shell', template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2 flex center mb-1\" [class.mt-2]=\"hideVersion && !devMode\">\r\n <div *ngIf=\"!hideVersion\" class=\"version\">\r\n v{{ version }}\r\n </div>\r\n <vdr-dropdown *ngIf=\"devMode\">\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n ></vdr-user-menu>\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}.version{color:var(--color-grey-300)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0 -10px 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"] }]
102
+ args: [{ selector: 'vdr-app-shell', template: "<div class=\"app-container\" [dir]=\"direction$ | async\">\r\n <div class=\"left-nav\" [class.expanded]=\"mainNavExpanded$ | async\">\r\n <div class=\"branding\">\r\n <a [routerLink]=\"['/']\" *ngIf=\"!hideVendureBranding\"\r\n ><img src=\"assets/logo-top.webp\" class=\"logo\" style=\"max-width: 100px\"\r\n /></a>\r\n <div class=\"collapse-menu\">\r\n <button class=\"\" (click)=\"collapseNav()\">\r\n <clr-icon shape=\"window-close\" size=\"24\"></clr-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mx-4\">\r\n <vdr-channel-switcher *vdrIfMultichannel></vdr-channel-switcher>\r\n </div>\r\n <div class=\"main-nav-container\">\r\n <vdr-main-nav (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"settings-nav-container\">\r\n <hr />\r\n <vdr-main-nav displayMode=\"settings\" (itemClick)=\"collapseNav()\"></vdr-main-nav>\r\n </div>\r\n <div class=\"mx-2 flex center mb-1\" [class.mt-2]=\"hideVersion && !devMode\">\r\n <div *ngIf=\"!hideVersion\" class=\"version\">\r\n v{{ version }}\r\n </div>\r\n <vdr-dropdown *ngIf=\"devMode\">\r\n <button class=\"icon-button dev-mode-button\" vdrDropdownTrigger title=\"DEV MODE\">\r\n <clr-icon shape=\"code\" size=\"24\"></clr-icon> DEV MODE\r\n </button>\r\n <vdr-dropdown-menu>\r\n <div class=\"px-2 py-1\">\r\n <div>Version: {{ version }}</div>\r\n <div>View UI extension points: <kbd>CTRL + U</kbd></div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"surface\">\r\n <div class=\"content-container\">\r\n <div class=\"top-bar\">\r\n <div class=\"expand-menu mr-1\">\r\n <button class=\"\" (click)=\"expandNav()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"1.5\"\r\n stroke=\"currentColor\"\r\n class=\"bars\"\r\n >\r\n <path\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\r\n />\r\n </svg>\r\n </button>\r\n </div>\r\n <div>\r\n <vdr-breadcrumb></vdr-breadcrumb>\r\n </div>\r\n <div class=\"universal-search flex-spacer\"></div>\r\n <div class=\"mx-1\">\r\n <vdr-alerts></vdr-alerts>\r\n </div>\r\n <div>\r\n <vdr-user-menu\r\n [userName]=\"userName$ | async\"\r\n [uiLanguageAndLocale]=\"uiLanguageAndLocale$ | async\"\r\n [availableLanguages]=\"availableLanguages\"\r\n (selectUiLanguage)=\"selectUiLanguage()\"\r\n (logOut)=\"logOut()\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"content-area\"><router-outlet></router-outlet></div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-container{display:flex;height:100vh;overflow:hidden}.left-nav{background-color:var(--color-left-nav-bg);color:var(--color-left-nav-text);display:flex;flex-direction:column;overflow:hidden;height:100%;border-inline-end:1px solid var(--color-weight-150);z-index:2;width:var(--left-nav-width);max-width:var(--left-nav-width)}@media screen and (max-width: 992px){.left-nav.expanded{position:fixed;inset:0;width:100%;max-width:100%;animation:fade-in .2s ease-in-out forwards}}.version{color:var(--color-grey-300)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media screen and (min-width: 992px){.expand-menu,.collapse-menu{display:none}}.expand-menu button,.collapse-menu button{border:none;padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);color:var(--color-text-100);display:flex;align-items:center;justify-content:center}.expand-menu .bars,.collapse-menu .bars{width:24px;height:24px}.collapse-menu button{height:40px;background-color:var(--color-weight-200)}.main-nav-container{overflow:auto;flex:1}.settings-nav-container{margin:calc(var(--space-unit) * 3) 0 -10px 0}.settings-nav-container hr{margin:0 calc(var(--space-unit) * 4);margin-bottom:calc(var(--space-unit) * 4);border:1px solid var(--color-weight-150);box-shadow:0 1px 0 var(--color-weight-100)}.logo{max-width:100%}.wordmark{font-weight:700;margin-inline-start:12px;font-size:24px;color:var(--color-primary-500)}@media screen and (max-width: 992px){.wordmark{display:none}}.surface{display:flex;flex-direction:column;flex:1;background-color:var(--color-surface-bg)}.content-container{overflow:auto;min-height:100vh;display:flex;flex-direction:column}.branding{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);padding-inline-end:calc(var(--space-unit) * 1.5)}@media screen and (min-width: 992px){.branding{padding:calc(var(--space-unit) * 4)}}.top-bar{width:100%;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1);background-color:var(--color-page-header)}@media screen and (min-width: 992px){.top-bar{padding:calc(var(--space-unit) * 4);padding-inline-start:var(--surface-margin-left)}}.header-actions{align-items:center}.content-area{position:relative;margin-inline-end:auto;flex:1;display:block;width:100%}.dev-mode-button{opacity:.7;font-size:12px}\n"] }]
103
103
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.DataService }, { type: i3.Router }, { type: i4.I18nService }, { type: i5.ModalService }, { type: i6.LocalStorageService }, { type: i7.BreadcrumbService }, { type: i8.LocalizationService }] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3hELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXpILE1BQU0sT0FBTyxpQkFBaUI7SUFhMUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLGlCQUFvQyxFQUNwQyxtQkFBd0M7UUFQeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FB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QUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUM7WUFDOUUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNYLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUNwQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBNUZRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFEQzFCOUIsa3VIQWtGQTs7MkZEeERhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpc0Rldk1vZGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2FwcC5jb25maWcnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgQURNSU5fVUlfVkVSU0lPTiB9IGZyb20gJy4uLy4uL2NvbW1vbi92ZXJzaW9uJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9hdXRoL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVaUxhbmd1YWdlU3dpdGNoZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cvdWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBMb2NhbGl6YXRpb25EaXJlY3Rpb25UeXBlLFxyXG4gICAgTG9jYWxpemF0aW9uTGFuZ3VhZ2VDb2RlVHlwZSxcclxuICAgIExvY2FsaXphdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFwcC1zaGVsbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2FwcC1zaGVsbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgdmVyc2lvbiA9IEFETUlOX1VJX1ZFUlNJT047XHJcbiAgICB1c2VyTmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIHVpTGFuZ3VhZ2VBbmRMb2NhbGUkOiBMb2NhbGl6YXRpb25MYW5ndWFnZUNvZGVUeXBlO1xyXG4gICAgZGlyZWN0aW9uJDogTG9jYWxpemF0aW9uRGlyZWN0aW9uVHlwZTtcclxuICAgIGF2YWlsYWJsZUxhbmd1YWdlczogTGFuZ3VhZ2VDb2RlW10gPSBbXTtcclxuICAgIGF2YWlsYWJsZUxvY2FsZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBoaWRlVmVuZHVyZUJyYW5kaW5nID0gZ2V0QXBwQ29uZmlnKCkuaGlkZVZlbmR1cmVCcmFuZGluZztcclxuICAgIGhpZGVWZXJzaW9uID0gZ2V0QXBwQ29uZmlnKCkuaGlkZVZlcnNpb247XHJcbiAgICBwYWdlVGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgICBtYWluTmF2RXhwYW5kZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgZGV2TW9kZSA9IGlzRGV2TW9kZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uJCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5kaXJlY3Rpb24kO1xyXG5cclxuICAgICAgICB0aGlzLnVpTGFuZ3VhZ2VBbmRMb2NhbGUkID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLnVpTGFuZ3VhZ2VBbmRMb2NhbGUkO1xyXG5cclxuICAgICAgICB0aGlzLnVzZXJOYW1lJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51c2VyU3RhdHVzKClcclxuICAgICAgICAgICAgLnNpbmdsZSQucGlwZShtYXAoZGF0YSA9PiBkYXRhLnVzZXJTdGF0dXMudXNlcm5hbWUpKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMgPSB0aGlzLmkxOG5TZXJ2aWNlLmF2YWlsYWJsZUxhbmd1YWdlcztcclxuXHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMb2NhbGVzID0gdGhpcy5pMThuU2VydmljZS5hdmFpbGFibGVMb2NhbGVzO1xyXG5cclxuICAgICAgICB0aGlzLnBhZ2VUaXRsZSQgPSB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoYnJlYWRjcnVtYnMgPT4gYnJlYWRjcnVtYnNbYnJlYWRjcnVtYnMubGVuZ3RoIC0gMV0ubGFiZWwpLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMubWFpbk5hdkV4cGFuZGVkJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51aVN0YXRlKClcclxuICAgICAgICAgICAgLnN0cmVhbSQucGlwZShtYXAoKHsgdWlTdGF0ZSB9KSA9PiB1aVN0YXRlLm1haW5OYXZFeHBhbmRlZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFVpTGFuZ3VhZ2UoKSB7XHJcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlQW5kTG9jYWxlJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKFtjdXJyZW50TGFuZ3VhZ2UsIGN1cnJlbnRMb2NhbGVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAnbGcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZUxvY2FsZXM6IHRoaXMuYXZhaWxhYmxlTG9jYWxlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZUxhbmd1YWdlczogdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMb2NhbGU6IGN1cnJlbnRMb2NhbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT5cclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPyB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC5zZXRVaUxhbmd1YWdlKHJlc3VsdFswXSwgcmVzdWx0WzFdKSA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnNldFVpTGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnNldExhbmd1YWdlKHJlc3VsdC5zZXRVaUxhbmd1YWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCd1aUxhbmd1YWdlQ29kZScsIHJlc3VsdC5zZXRVaUxhbmd1YWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCd1aUxvY2FsZScsIHJlc3VsdC5zZXRVaUxvY2FsZSA/PyB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBleHBhbmROYXYoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0TWFpbk5hdkV4cGFuZGVkKHRydWUpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbGxhcHNlTmF2KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnNldE1haW5OYXZFeHBhbmRlZChmYWxzZSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9nT3V0KCkge1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nT3V0KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBsb2dpblVybCB9ID0gZ2V0QXBwQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIGlmIChsb2dpblVybCkge1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dpblVybDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFwcC1jb250YWluZXJcIiBbZGlyXT1cImRpcmVjdGlvbiQgfCBhc3luY1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnQtbmF2XCIgW2NsYXNzLmV4cGFuZGVkXT1cIm1haW5OYXZFeHBhbmRlZCQgfCBhc3luY1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJicmFuZGluZ1wiPlxyXG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy8nXVwiICpuZ0lmPVwiIWhpZGVWZW5kdXJlQnJhbmRpbmdcIlxyXG4gICAgICAgICAgICAgICAgPjxpbWcgc3JjPVwiYXNzZXRzL2xvZ28tdG9wLndlYnBcIiBjbGFzcz1cImxvZ29cIiBzdHlsZT1cIm1heC13aWR0aDogMTAwcHhcIlxyXG4gICAgICAgICAgICAvPjwvYT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwiY29sbGFwc2VOYXYoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cIndpbmRvdy1jbG9zZVwiIHNpemU9XCIyNFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTRcIj5cclxuICAgICAgICAgICAgPHZkci1jaGFubmVsLXN3aXRjaGVyICp2ZHJJZk11bHRpY2hhbm5lbD48L3Zkci1jaGFubmVsLXN3aXRjaGVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLW5hdi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHZkci1tYWluLW5hdiAoaXRlbUNsaWNrKT1cImNvbGxhcHNlTmF2KClcIj48L3Zkci1tYWluLW5hdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtbmF2LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aHIgLz5cclxuICAgICAgICAgICAgPHZkci1tYWluLW5hdiBkaXNwbGF5TW9kZT1cInNldHRpbmdzXCIgKGl0ZW1DbGljayk9XCJjb2xsYXBzZU5hdigpXCI+PC92ZHItbWFpbi1uYXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgZmxleCBjZW50ZXIgbWItMVwiIFtjbGFzcy5tdC0yXT1cImhpZGVWZXJzaW9uICYmICFkZXZNb2RlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaGlkZVZlcnNpb25cIiBjbGFzcz1cInZlcnNpb25cIj5cclxuICAgICAgICAgICAgICAgIHZ7eyB2ZXJzaW9uIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8dmRyLWRyb3Bkb3duICpuZ0lmPVwiZGV2TW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uIGRldi1tb2RlLWJ1dHRvblwiIHZkckRyb3Bkb3duVHJpZ2dlciB0aXRsZT1cIkRFViBNT0RFXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiY29kZVwiIHNpemU9XCIyNFwiPjwvY2xyLWljb24+IERFViBNT0RFXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBweS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+VmVyc2lvbjoge3sgdmVyc2lvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlZpZXcgVUkgZXh0ZW5zaW9uIHBvaW50czogPGtiZD5DVFJMICsgVTwva2JkPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgPC92ZHItZHJvcGRvd24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3VyZmFjZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZC1tZW51IG1yLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiXCIgKGNsaWNrKT1cImV4cGFuZE5hdigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy43NSA2Ljc1aDE2LjVNMy43NSAxMmgxNi41bS0xNi41IDUuMjVoMTYuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWJyZWFkY3J1bWI+PC92ZHItYnJlYWRjcnVtYj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVuaXZlcnNhbC1zZWFyY2ggZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1hbGVydHM+PC92ZHItYWxlcnRzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItdXNlci1tZW51XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VyTmFtZV09XCJ1c2VyTmFtZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1aUxhbmd1YWdlQW5kTG9jYWxlXT1cInVpTGFuZ3VhZ2VBbmRMb2NhbGUkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXZhaWxhYmxlTGFuZ3VhZ2VzXT1cImF2YWlsYWJsZUxhbmd1YWdlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RVaUxhbmd1YWdlKT1cInNlbGVjdFVpTGFuZ3VhZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2dPdXQpPVwibG9nT3V0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3Zkci11c2VyLW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWFyZWFcIj48cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3hELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXpILE1BQU0sT0FBTyxpQkFBaUI7SUFhMUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLGlCQUFvQyxFQUNwQyxtQkFBd0M7UUFQeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FB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QUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUM7WUFDOUUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNYLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUNwQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBNUZRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFEQzFCOUIsbXRIQWtGQTs7MkZEeERhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpc0Rldk1vZGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2FwcC5jb25maWcnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgQURNSU5fVUlfVkVSU0lPTiB9IGZyb20gJy4uLy4uL2NvbW1vbi92ZXJzaW9uJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9hdXRoL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVaUxhbmd1YWdlU3dpdGNoZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cvdWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBMb2NhbGl6YXRpb25EaXJlY3Rpb25UeXBlLFxyXG4gICAgTG9jYWxpemF0aW9uTGFuZ3VhZ2VDb2RlVHlwZSxcclxuICAgIExvY2FsaXphdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFwcC1zaGVsbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2FwcC1zaGVsbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgdmVyc2lvbiA9IEFETUlOX1VJX1ZFUlNJT047XHJcbiAgICB1c2VyTmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIHVpTGFuZ3VhZ2VBbmRMb2NhbGUkOiBMb2NhbGl6YXRpb25MYW5ndWFnZUNvZGVUeXBlO1xyXG4gICAgZGlyZWN0aW9uJDogTG9jYWxpemF0aW9uRGlyZWN0aW9uVHlwZTtcclxuICAgIGF2YWlsYWJsZUxhbmd1YWdlczogTGFuZ3VhZ2VDb2RlW10gPSBbXTtcclxuICAgIGF2YWlsYWJsZUxvY2FsZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBoaWRlVmVuZHVyZUJyYW5kaW5nID0gZ2V0QXBwQ29uZmlnKCkuaGlkZVZlbmR1cmVCcmFuZGluZztcclxuICAgIGhpZGVWZXJzaW9uID0gZ2V0QXBwQ29uZmlnKCkuaGlkZVZlcnNpb247XHJcbiAgICBwYWdlVGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgICBtYWluTmF2RXhwYW5kZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgZGV2TW9kZSA9IGlzRGV2TW9kZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uJCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5kaXJlY3Rpb24kO1xyXG5cclxuICAgICAgICB0aGlzLnVpTGFuZ3VhZ2VBbmRMb2NhbGUkID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLnVpTGFuZ3VhZ2VBbmRMb2NhbGUkO1xyXG5cclxuICAgICAgICB0aGlzLnVzZXJOYW1lJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51c2VyU3RhdHVzKClcclxuICAgICAgICAgICAgLnNpbmdsZSQucGlwZShtYXAoZGF0YSA9PiBkYXRhLnVzZXJTdGF0dXMudXNlcm5hbWUpKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMgPSB0aGlzLmkxOG5TZXJ2aWNlLmF2YWlsYWJsZUxhbmd1YWdlcztcclxuXHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMb2NhbGVzID0gdGhpcy5pMThuU2VydmljZS5hdmFpbGFibGVMb2NhbGVzO1xyXG5cclxuICAgICAgICB0aGlzLnBhZ2VUaXRsZSQgPSB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmJyZWFkY3J1bWJzJC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoYnJlYWRjcnVtYnMgPT4gYnJlYWRjcnVtYnNbYnJlYWRjcnVtYnMubGVuZ3RoIC0gMV0ubGFiZWwpLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMubWFpbk5hdkV4cGFuZGVkJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51aVN0YXRlKClcclxuICAgICAgICAgICAgLnN0cmVhbSQucGlwZShtYXAoKHsgdWlTdGF0ZSB9KSA9PiB1aVN0YXRlLm1haW5OYXZFeHBhbmRlZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFVpTGFuZ3VhZ2UoKSB7XHJcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlQW5kTG9jYWxlJFxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKFtjdXJyZW50TGFuZ3VhZ2UsIGN1cnJlbnRMb2NhbGVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAnbGcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZUxvY2FsZXM6IHRoaXMuYXZhaWxhYmxlTG9jYWxlcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZUxhbmd1YWdlczogdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRMb2NhbGU6IGN1cnJlbnRMb2NhbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT5cclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPyB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC5zZXRVaUxhbmd1YWdlKHJlc3VsdFswXSwgcmVzdWx0WzFdKSA6IEVNUFRZLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnNldFVpTGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnNldExhbmd1YWdlKHJlc3VsdC5zZXRVaUxhbmd1YWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCd1aUxhbmd1YWdlQ29kZScsIHJlc3VsdC5zZXRVaUxhbmd1YWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCd1aUxvY2FsZScsIHJlc3VsdC5zZXRVaUxvY2FsZSA/PyB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBleHBhbmROYXYoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0TWFpbk5hdkV4cGFuZGVkKHRydWUpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbGxhcHNlTmF2KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnNldE1haW5OYXZFeHBhbmRlZChmYWxzZSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9nT3V0KCkge1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nT3V0KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBsb2dpblVybCB9ID0gZ2V0QXBwQ29uZmlnKCk7XHJcbiAgICAgICAgICAgIGlmIChsb2dpblVybCkge1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dpblVybDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFwcC1jb250YWluZXJcIiBbZGlyXT1cImRpcmVjdGlvbiQgfCBhc3luY1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnQtbmF2XCIgW2NsYXNzLmV4cGFuZGVkXT1cIm1haW5OYXZFeHBhbmRlZCQgfCBhc3luY1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJicmFuZGluZ1wiPlxyXG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy8nXVwiICpuZ0lmPVwiIWhpZGVWZW5kdXJlQnJhbmRpbmdcIlxyXG4gICAgICAgICAgICAgICAgPjxpbWcgc3JjPVwiYXNzZXRzL2xvZ28tdG9wLndlYnBcIiBjbGFzcz1cImxvZ29cIiBzdHlsZT1cIm1heC13aWR0aDogMTAwcHhcIlxyXG4gICAgICAgICAgICAvPjwvYT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJcIiAoY2xpY2spPVwiY29sbGFwc2VOYXYoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cIndpbmRvdy1jbG9zZVwiIHNpemU9XCIyNFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTRcIj5cclxuICAgICAgICAgICAgPHZkci1jaGFubmVsLXN3aXRjaGVyICp2ZHJJZk11bHRpY2hhbm5lbD48L3Zkci1jaGFubmVsLXN3aXRjaGVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLW5hdi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHZkci1tYWluLW5hdiAoaXRlbUNsaWNrKT1cImNvbGxhcHNlTmF2KClcIj48L3Zkci1tYWluLW5hdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtbmF2LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aHIgLz5cclxuICAgICAgICAgICAgPHZkci1tYWluLW5hdiBkaXNwbGF5TW9kZT1cInNldHRpbmdzXCIgKGl0ZW1DbGljayk9XCJjb2xsYXBzZU5hdigpXCI+PC92ZHItbWFpbi1uYXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgZmxleCBjZW50ZXIgbWItMVwiIFtjbGFzcy5tdC0yXT1cImhpZGVWZXJzaW9uICYmICFkZXZNb2RlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaGlkZVZlcnNpb25cIiBjbGFzcz1cInZlcnNpb25cIj5cclxuICAgICAgICAgICAgICAgIHZ7eyB2ZXJzaW9uIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8dmRyLWRyb3Bkb3duICpuZ0lmPVwiZGV2TW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uIGRldi1tb2RlLWJ1dHRvblwiIHZkckRyb3Bkb3duVHJpZ2dlciB0aXRsZT1cIkRFViBNT0RFXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiY29kZVwiIHNpemU9XCIyNFwiPjwvY2xyLWljb24+IERFViBNT0RFXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBweS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+VmVyc2lvbjoge3sgdmVyc2lvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlZpZXcgVUkgZXh0ZW5zaW9uIHBvaW50czogPGtiZD5DVFJMICsgVTwva2JkPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgPC92ZHItZHJvcGRvd24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3VyZmFjZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZC1tZW51IG1yLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiXCIgKGNsaWNrKT1cImV4cGFuZE5hdigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMy43NSA2Ljc1aDE2LjVNMy43NSAxMmgxNi41bS0xNi41IDUuMjVoMTYuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWJyZWFkY3J1bWI+PC92ZHItYnJlYWRjcnVtYj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVuaXZlcnNhbC1zZWFyY2ggZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1hbGVydHM+PC92ZHItYWxlcnRzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItdXNlci1tZW51XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VyTmFtZV09XCJ1c2VyTmFtZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1aUxhbmd1YWdlQW5kTG9jYWxlXT1cInVpTGFuZ3VhZ2VBbmRMb2NhbGUkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXZhaWxhYmxlTGFuZ3VhZ2VzXT1cImF2YWlsYWJsZUxhbmd1YWdlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RVaUxhbmd1YWdlKT1cInNlbGVjdFVpTGFuZ3VhZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2dPdXQpPVwibG9nT3V0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWFyZWFcIj48cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -14,9 +14,9 @@ export class Alert {
14
14
  this.hasRun$ = new BehaviorSubject(false);
15
15
  this.data$ = new BehaviorSubject(undefined);
16
16
  if (this.config.recheck) {
17
- this.config.recheck(this.context).subscribe(() => this.runCheck());
17
+ this.subscription = this.config.recheck(this.context).subscribe(() => this.runCheck());
18
18
  }
19
- this.activeAlert$ = combineLatest(this.data$, this.hasRun$).pipe(map(([data, hasRun]) => {
19
+ this.activeAlert$ = combineLatest([this.data$, this.hasRun$]).pipe(map(([data, hasRun]) => {
20
20
  if (!data) {
21
21
  return;
22
22
  }
@@ -53,6 +53,11 @@ export class Alert {
53
53
  }
54
54
  this.hasRun$.next(false);
55
55
  }
56
+ destroy() {
57
+ if (this.subscription) {
58
+ this.subscription.unsubscribe();
59
+ }
60
+ }
56
61
  }
57
62
  export class AlertsService {
58
63
  constructor(permissionsService, injector, dataService, notificationService, modalService) {
@@ -94,6 +99,11 @@ export class AlertsService {
94
99
  this.alertsMap.forEach(config => config.runCheck());
95
100
  }
96
101
  }
102
+ clearAlerts() {
103
+ this.alertsMap.forEach(alert => alert.destroy());
104
+ this.alertsMap.clear();
105
+ this.configUpdated.next();
106
+ }
97
107
  createContext() {
98
108
  return {
99
109
  injector: this.injector,
@@ -111,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
111
121
  providedIn: 'root',
112
122
  }]
113
123
  }], ctorParameters: () => [{ type: i1.PermissionsService }, { type: i0.Injector }, { type: i2.DataService }, { type: i3.NotificationService }, { type: i4.ModalService }] });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9hbGVydHMvYWxlcnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0gsZUFBZSxFQUNmLGFBQWEsRUFDYixLQUFLLEVBQ0wsWUFBWSxFQUVaLEVBQUUsRUFDRixPQUFPLEVBQ1AsU0FBUyxHQUNaLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFzSDlELE1BQU0sT0FBTyxLQUFLO0lBSWQsWUFDWSxNQUFzQixFQUN0QixPQUFxQjtRQURyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFjO1FBSnpCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBSzFELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVELEdBQUcsQ0FBQyxDQUFDLENB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QUMsQ0FBQyxFQUM3QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQ3JFLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVc7UUFDZixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDTCxDQUFDO0lBRVMsYUFBYTtRQUNuQixPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzdDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNsQyxDQUFDO0lBQ04sQ0FBQzs4R0EvRFEsYUFBYTtrSEFBYixhQUFhLGNBRlYsTUFBTTs7MkZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7XHJcbiAgICBCZWhhdmlvclN1YmplY3QsXHJcbiAgICBjb21iaW5lTGF0ZXN0LFxyXG4gICAgZmlyc3QsXHJcbiAgICBpc09ic2VydmFibGUsXHJcbiAgICBPYnNlcnZhYmxlLFxyXG4gICAgb2YsXHJcbiAgICBTdWJqZWN0LFxyXG4gICAgc3dpdGNoTWFwLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuLi9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogVGhlIGNvbnRleHQgb2JqZWN0IHdoaWNoIGlzIHBhc3NlZCB0byB0aGUgYGNoZWNrYCwgYGlzQWxlcnRgLCBgbGFiZWxgIGFuZCBgYWN0aW9uYCBmdW5jdGlvbnMgb2YgYW5cclxuICoge0BsaW5rIEFsZXJ0Q29uZmlnfSBvYmplY3QuXHJcbiAqXHJcbiAqIEBzaW5jZSAyLjIuMFxyXG4gKiBAZG9jc0NhdGVnb3J5IGFsZXJ0c1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBbGVydENvbnRleHQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRoZSBBbmd1bGFyIFtJbmplY3Rvcl0oaHR0cHM6Ly9hbmd1bGFyLmRldi9hcGkvY29yZS9JbmplY3Rvcikgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZ2V0IGluc3RhbmNlc1xyXG4gICAgICogb2Ygc2VydmljZXMgYW5kIG90aGVyIHByb3ZpZGVycyBhdmFpbGFibGUgaW4gdGhlIGFwcGxpY2F0aW9uLlxyXG4gICAgICovXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3I7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogVGhlIFtEYXRhU2VydmljZV0oL3JlZmVyZW5jZS9hZG1pbi11aS1hcGkvc2VydmljZXMvZGF0YS1zZXJ2aWNlKSwgd2hpY2ggcHJvdmlkZXMgbWV0aG9kcyBmb3IgcXVlcnlpbmcgdGhlXHJcbiAgICAgKiBzZXJ2ZXItc2lkZSBkYXRhLlxyXG4gICAgICovXHJcbiAgICBkYXRhU2VydmljZTogRGF0YVNlcnZpY2U7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogVGhlIFtOb3RpZmljYXRpb25TZXJ2aWNlXSgvcmVmZXJlbmNlL2FkbWluLXVpLWFwaS9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZSksIHdoaWNoIHByb3ZpZGVzIG1ldGhvZHMgZm9yXHJcbiAgICAgKiBkaXNwbGF5aW5nIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHVzZXIuXHJcbiAgICAgKi9cclxuICAgIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2U7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogVGhlIFtNb2RhbFNlcnZpY2VdKC9yZWZlcmVuY2UvYWRtaW4tdWktYXBpL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UpLCB3aGljaCBwcm92aWRlcyBtZXRob2RzIGZvclxyXG4gICAgICogb3BlbmluZyBtb2RhbCBkaWFsb2dzLlxyXG4gICAgICovXHJcbiAgICBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBhbiBBZG1pbiBVSSBhbGVydC5cclxuICpcclxuICogQHNpbmNlIDIuMi4wXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgYWxlcnRzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFsZXJ0Q29uZmlnPFQgPSBhbnk+IHtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYWxlcnQuXHJcbiAgICAgKi9cclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogQSBmdW5jdGlvbiB3aGljaCBpcyBnZXRzIHRoZSBkYXRhIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGFsZXJ0IHNob3VsZCBiZSBzaG93bi5cclxuICAgICAqIFR5cGljYWxseSwgdGhpcyBmdW5jdGlvbiB3aWxsIHF1ZXJ5IHRoZSBzZXJ2ZXIgb3Igc29tZSBvdGhlciByZW1vdGUgZGF0YSBzb3VyY2UuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBvbmNlIHdoZW4gdGhlIEFkbWluIFVJIGFwcCBib290c3RyYXBzLCBhbmQgY2FuIGJlIGFsc29cclxuICAgICAqIHNldCB0byBydW4gYXQgcmVndWxhciBpbnRlcnZhbHMgYnkgc2V0dGluZyB0aGUgYHJlY2hlY2tJbnRlcnZhbE1zYCBwcm9wZXJ0eS5cclxuICAgICAqL1xyXG4gICAgY2hlY2s6IChjb250ZXh0OiBBbGVydENvbnRleHQpID0+IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPjtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gT2JzZXJ2YWJsZSB3aGljaCBpcyB1c2VkIHRvIGRldGVybWluZSB3aGVuIHRvIHJlLXJ1biB0aGUgYGNoZWNrYFxyXG4gICAgICogZnVuY3Rpb24uIFdoZW5ldmVyIHRoZSBvYnNlcnZhYmxlIGVtaXRzLCB0aGUgYGNoZWNrYCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBhZ2Fpbi5cclxuICAgICAqXHJcbiAgICAgKiBBIGJhc2ljIHRpbWUtaW50ZXJ2YWwtYmFzZWQgcmVjaGVjayBjYW4gYmUgYWNoaWV2ZWQgYnkgdXNpbmcgdGhlIGBpbnRlcnZhbGAgZnVuY3Rpb24gZnJvbSBSeEpTLlxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiBgYGB0c1xyXG4gICAgICogaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuICAgICAqXHJcbiAgICAgKiAvLyAuLi5cclxuICAgICAqIHJlY2hlY2s6ICgpID0+IGludGVydmFsKDYwXzAwMClcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIElmIHRoaXMgaXMgbm90IHNldCwgdGhlIGBjaGVja2AgZnVuY3Rpb24gd2lsbCBvbmx5IGJlIGNhbGxlZCBvbmNlIHdoZW4gdGhlIEFkbWluIFVJIGFwcCBib290c3RyYXBzLlxyXG4gICAgICpcclxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG4gICAgICovXHJcbiAgICByZWNoZWNrPzogKGNvbnRleHQ6IEFsZXJ0Q29udGV4dCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIEEgZnVuY3Rpb24gd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBhbGVydCBzaG91bGQgYmUgc2hvd24gYmFzZWQgb24gdGhlIGRhdGEgcmV0dXJuZWQgYnkgdGhlIGBjaGVja2BcclxuICAgICAqIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBpc0FsZXJ0OiAoZGF0YTogVCwgY29udGV4dDogQWxlcnRDb250ZXh0KSA9PiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIEEgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIHdoZW4gdGhlIGFsZXJ0IGlzIGNsaWNrZWQgaW4gdGhlIEFkbWluIFVJLlxyXG4gICAgICovXHJcbiAgICBhY3Rpb246IChkYXRhOiBULCBjb250ZXh0OiBBbGVydENvbnRleHQpID0+IHZvaWQ7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSB0ZXh0IHVzZWQgaW4gdGhlIFVJIHRvIGRlc2NyaWJlIHRoZSBhbGVydC5cclxuICAgICAqL1xyXG4gICAgbGFiZWw6IChcclxuICAgICAgICBkYXRhOiBULFxyXG4gICAgICAgIGNvbnRleHQ6IEFsZXJ0Q29udGV4dCxcclxuICAgICkgPT4geyB0ZXh0OiBzdHJpbmc7IHRyYW5zbGF0aW9uVmFycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0gfTtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBBIGxpc3Qgb2YgcGVybWlzc2lvbnMgd2hpY2ggdGhlIGN1cnJlbnQgQWRtaW5pc3RyYXRvciBtdXN0IGhhdmUgaW4gb3JkZXIuIElmIHRoZSBjdXJyZW50XHJcbiAgICAgKiBBZG1pbmlzdHJhdG9yIGRvZXMgbm90IGhhdmUgdGhlc2UgcGVybWlzc2lvbnMsIG5vbmUgb2YgdGhlIG90aGVyIGFsZXJ0IGZ1bmN0aW9ucyB3aWxsIGJlIGNhbGxlZC5cclxuICAgICAqL1xyXG4gICAgcmVxdWlyZWRQZXJtaXNzaW9ucz86IFBlcm1pc3Npb25bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVBbGVydCB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgcnVuQWN0aW9uOiAoKSA9PiB2b2lkO1xyXG4gICAgaGFzUnVuOiBib29sZWFuO1xyXG4gICAgbGFiZWw6IHsgdGV4dDogc3RyaW5nOyB0cmFuc2xhdGlvblZhcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9IH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBbGVydDxUPiB7XHJcbiAgICBhY3RpdmVBbGVydCQ6IE9ic2VydmFibGU8QWN0aXZlQWxlcnQgfCB1bmRlZmluZWQ+O1xyXG4gICAgcHJpdmF0ZSBoYXNSdW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgICBwcml2YXRlIGRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjb25maWc6IEFsZXJ0Q29uZmlnPFQ+LFxyXG4gICAgICAgIHByaXZhdGUgY29udGV4dDogQWxlcnRDb250ZXh0LFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnJlY2hlY2spIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWcucmVjaGVjayh0aGlzLmNvbnRleHQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJ1bkNoZWNrKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFjdGl2ZUFsZXJ0JCA9IGNvbWJpbmVMYXRlc3QodGhpcy5kYXRhJCwgdGhpcy5oYXNSdW4kKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtkYXRhLCBoYXNSdW5dKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0FsZXJ0ID0gdGhpcy5jb25maWcuaXNBbGVydChkYXRhLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc0FsZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5jb25maWcuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcnVuQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFzUnVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5hY3Rpb24oZGF0YSwgdGhpcy5jb250ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzUnVuJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNSdW4sXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY29uZmlnLmxhYmVsKGRhdGEsIHRoaXMuY29udGV4dCksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZ2V0IGlkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5pZDtcclxuICAgIH1cclxuICAgIHJ1bkNoZWNrKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY29uZmlnLmNoZWNrKHRoaXMuY29udGV4dCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgcmVzdWx0LnRoZW4oZGF0YSA9PiB0aGlzLmRhdGEkLm5leHQoZGF0YSkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgcmVzdWx0LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5kYXRhJC5uZXh0KGRhdGEpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEkLm5leHQocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oYXNSdW4kLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydHNTZXJ2aWNlIHtcclxuICAgIGFjdGl2ZUFsZXJ0cyQ6IE9ic2VydmFibGU8QWN0aXZlQWxlcnRbXT47XHJcbiAgICBwcml2YXRlIGFsZXJ0c01hcCA9IG5ldyBNYXA8c3RyaW5nLCBBbGVydDxhbnk+PigpO1xyXG4gICAgcHJpdmF0ZSBjb25maWdVcGRhdGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHBlcm1pc3Npb25zU2VydmljZTogUGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgYWxlcnRzJCA9IHRoaXMuY29uZmlnVXBkYXRlZC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKCkgPT4gWy4uLnRoaXMuYWxlcnRzTWFwLnZhbHVlcygpXSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aChbLi4udGhpcy5hbGVydHNNYXAudmFsdWVzKCldKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmFjdGl2ZUFsZXJ0cyQgPSBhbGVydHMkLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbGVydHMgPSBbLi4udGhpcy5hbGVydHNNYXAudmFsdWVzKCldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNBbGVydFN0cmVhbXMgPSBhbGVydHMubWFwKGFsZXJ0ID0+IGFsZXJ0LmFjdGl2ZUFsZXJ0JCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChpc0FsZXJ0U3RyZWFtcyk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBtYXAoYWxlcnRTdGF0ZXMgPT4gYWxlcnRTdGF0ZXMuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlndXJlQWxlcnQ8VD4oY29uZmlnOiBBbGVydENvbmZpZzxUPikge1xyXG4gICAgICAgIHRoaXMuaGFzU3VmZmljaWVudFBlcm1pc3Npb25zKGNvbmZpZy5yZXF1aXJlZFBlcm1pc3Npb25zKVxyXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGhhc1Blcm1pc3Npb25zID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChoYXNQZXJtaXNzaW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRzTWFwLnNldChjb25maWcuaWQsIG5ldyBBbGVydChjb25maWcsIHRoaXMuY3JlYXRlQ29udGV4dCgpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdVcGRhdGVkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFzU3VmZmljaWVudFBlcm1pc3Npb25zKHBlcm1pc3Npb25zPzogUGVybWlzc2lvbltdKSB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucyB8fCBwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuY3VycmVudFVzZXJQZXJtaXNzaW9ucyQucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKHBlcm1pc3Npb25zID0+IHBlcm1pc3Npb25zLmxlbmd0aCA+IDApLFxyXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UudXNlckhhc1Blcm1pc3Npb25zKHBlcm1pc3Npb25zKSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoKGlkPzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRzTWFwLmdldChpZCk/LnJ1bkNoZWNrKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydHNNYXAuZm9yRWFjaChjb25maWcgPT4gY29uZmlnLnJ1bkNoZWNrKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlQ29udGV4dCgpOiBBbGVydENvbnRleHQge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgICBkYXRhU2VydmljZTogdGhpcy5kYXRhU2VydmljZSxcclxuICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZTogdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICBtb2RhbFNlcnZpY2U6IHRoaXMubW9kYWxTZXJ2aWNlLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9hbGVydHMvYWxlcnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0gsZUFBZSxFQUNmLGFBQWEsRUFDYixLQUFLLEVBQ0wsWUFBWSxFQUVaLEVBQUUsRUFDRixPQUFPLEVBRVAsU0FBUyxHQUNaLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFzSDlELE1BQU0sT0FBTyxLQUFLO0lBS2QsWUFDWSxNQUFzQixFQUN0QixPQUFxQjtRQURyQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFjO1FBTHpCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBTTFELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FB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QUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gICAgQmVoYXZpb3JTdWJqZWN0LFxyXG4gICAgY29tYmluZUxhdGVzdCxcclxuICAgIGZpcnN0LFxyXG4gICAgaXNPYnNlcnZhYmxlLFxyXG4gICAgT2JzZXJ2YWJsZSxcclxuICAgIG9mLFxyXG4gICAgU3ViamVjdCxcclxuICAgIFN1YnNjcmlwdGlvbixcclxuICAgIHN3aXRjaE1hcCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFRoZSBjb250ZXh0IG9iamVjdCB3aGljaCBpcyBwYXNzZWQgdG8gdGhlIGBjaGVja2AsIGBpc0FsZXJ0YCwgYGxhYmVsYCBhbmQgYGFjdGlvbmAgZnVuY3Rpb25zIG9mIGFuXHJcbiAqIHtAbGluayBBbGVydENvbmZpZ30gb2JqZWN0LlxyXG4gKlxyXG4gKiBAc2luY2UgMi4yLjBcclxuICogQGRvY3NDYXRlZ29yeSBhbGVydHNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWxlcnRDb250ZXh0IHtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBUaGUgQW5ndWxhciBbSW5qZWN0b3JdKGh0dHBzOi8vYW5ndWxhci5kZXYvYXBpL2NvcmUvSW5qZWN0b3IpIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGdldCBpbnN0YW5jZXNcclxuICAgICAqIG9mIHNlcnZpY2VzIGFuZCBvdGhlciBwcm92aWRlcnMgYXZhaWxhYmxlIGluIHRoZSBhcHBsaWNhdGlvbi5cclxuICAgICAqL1xyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRoZSBbRGF0YVNlcnZpY2VdKC9yZWZlcmVuY2UvYWRtaW4tdWktYXBpL3NlcnZpY2VzL2RhdGEtc2VydmljZSksIHdoaWNoIHByb3ZpZGVzIG1ldGhvZHMgZm9yIHF1ZXJ5aW5nIHRoZVxyXG4gICAgICogc2VydmVyLXNpZGUgZGF0YS5cclxuICAgICAqL1xyXG4gICAgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRoZSBbTm90aWZpY2F0aW9uU2VydmljZV0oL3JlZmVyZW5jZS9hZG1pbi11aS1hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLXNlcnZpY2UpLCB3aGljaCBwcm92aWRlcyBtZXRob2RzIGZvclxyXG4gICAgICogZGlzcGxheWluZyBub3RpZmljYXRpb25zIHRvIHRoZSB1c2VyLlxyXG4gICAgICovXHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRoZSBbTW9kYWxTZXJ2aWNlXSgvcmVmZXJlbmNlL2FkbWluLXVpLWFwaS9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlKSwgd2hpY2ggcHJvdmlkZXMgbWV0aG9kcyBmb3JcclxuICAgICAqIG9wZW5pbmcgbW9kYWwgZGlhbG9ncy5cclxuICAgICAqL1xyXG4gICAgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgYW4gQWRtaW4gVUkgYWxlcnQuXHJcbiAqXHJcbiAqIEBzaW5jZSAyLjIuMFxyXG4gKiBAZG9jc0NhdGVnb3J5IGFsZXJ0c1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBbGVydENvbmZpZzxUID0gYW55PiB7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFsZXJ0LlxyXG4gICAgICovXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIEEgZnVuY3Rpb24gd2hpY2ggaXMgZ2V0cyB0aGUgZGF0YSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBhbGVydCBzaG91bGQgYmUgc2hvd24uXHJcbiAgICAgKiBUeXBpY2FsbHksIHRoaXMgZnVuY3Rpb24gd2lsbCBxdWVyeSB0aGUgc2VydmVyIG9yIHNvbWUgb3RoZXIgcmVtb3RlIGRhdGEgc291cmNlLlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgb25jZSB3aGVuIHRoZSBBZG1pbiBVSSBhcHAgYm9vdHN0cmFwcywgYW5kIGNhbiBiZSBhbHNvXHJcbiAgICAgKiBzZXQgdG8gcnVuIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIGJ5IHNldHRpbmcgdGhlIGByZWNoZWNrSW50ZXJ2YWxNc2AgcHJvcGVydHkuXHJcbiAgICAgKi9cclxuICAgIGNoZWNrOiAoY29udGV4dDogQWxlcnRDb250ZXh0KSA9PiBUIHwgUHJvbWlzZTxUPiB8IE9ic2VydmFibGU8VD47XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIE9ic2VydmFibGUgd2hpY2ggaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hlbiB0byByZS1ydW4gdGhlIGBjaGVja2BcclxuICAgICAqIGZ1bmN0aW9uLiBXaGVuZXZlciB0aGUgb2JzZXJ2YWJsZSBlbWl0cywgdGhlIGBjaGVja2AgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYWdhaW4uXHJcbiAgICAgKlxyXG4gICAgICogQSBiYXNpYyB0aW1lLWludGVydmFsLWJhc2VkIHJlY2hlY2sgY2FuIGJlIGFjaGlldmVkIGJ5IHVzaW5nIHRoZSBgaW50ZXJ2YWxgIGZ1bmN0aW9uIGZyb20gUnhKUy5cclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogYGBgdHNcclxuICAgICAqIGltcG9ydCB7IGludGVydmFsIH0gZnJvbSAncnhqcyc7XHJcbiAgICAgKlxyXG4gICAgICogLy8gLi4uXHJcbiAgICAgKiByZWNoZWNrOiAoKSA9PiBpbnRlcnZhbCg2MF8wMDApXHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGlzIGlzIG5vdCBzZXQsIHRoZSBgY2hlY2tgIGZ1bmN0aW9uIHdpbGwgb25seSBiZSBjYWxsZWQgb25jZSB3aGVuIHRoZSBBZG1pbiBVSSBhcHAgYm9vdHN0cmFwcy5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAgICAqL1xyXG4gICAgcmVjaGVjaz86IChjb250ZXh0OiBBbGVydENvbnRleHQpID0+IE9ic2VydmFibGU8YW55PjtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBBIGZ1bmN0aW9uIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0aGUgYWxlcnQgc2hvdWxkIGJlIHNob3duIGJhc2VkIG9uIHRoZSBkYXRhIHJldHVybmVkIGJ5IHRoZSBgY2hlY2tgXHJcbiAgICAgKiBmdW5jdGlvbi5cclxuICAgICAqL1xyXG4gICAgaXNBbGVydDogKGRhdGE6IFQsIGNvbnRleHQ6IEFsZXJ0Q29udGV4dCkgPT4gYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBBIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCB3aGVuIHRoZSBhbGVydCBpcyBjbGlja2VkIGluIHRoZSBBZG1pbiBVSS5cclxuICAgICAqL1xyXG4gICAgYWN0aW9uOiAoZGF0YTogVCwgY29udGV4dDogQWxlcnRDb250ZXh0KSA9PiB2b2lkO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIEEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgdGV4dCB1c2VkIGluIHRoZSBVSSB0byBkZXNjcmliZSB0aGUgYWxlcnQuXHJcbiAgICAgKi9cclxuICAgIGxhYmVsOiAoXHJcbiAgICAgICAgZGF0YTogVCxcclxuICAgICAgICBjb250ZXh0OiBBbGVydENvbnRleHQsXHJcbiAgICApID0+IHsgdGV4dDogc3RyaW5nOyB0cmFuc2xhdGlvblZhcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9IH07XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogQSBsaXN0IG9mIHBlcm1pc3Npb25zIHdoaWNoIHRoZSBjdXJyZW50IEFkbWluaXN0cmF0b3IgbXVzdCBoYXZlIGluIG9yZGVyLiBJZiB0aGUgY3VycmVudFxyXG4gICAgICogQWRtaW5pc3RyYXRvciBkb2VzIG5vdCBoYXZlIHRoZXNlIHBlcm1pc3Npb25zLCBub25lIG9mIHRoZSBvdGhlciBhbGVydCBmdW5jdGlvbnMgd2lsbCBiZSBjYWxsZWQuXHJcbiAgICAgKi9cclxuICAgIHJlcXVpcmVkUGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlQWxlcnQge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHJ1bkFjdGlvbjogKCkgPT4gdm9pZDtcclxuICAgIGhhc1J1bjogYm9vbGVhbjtcclxuICAgIGxhYmVsOiB7IHRleHQ6IHN0cmluZzsgdHJhbnNsYXRpb25WYXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfSB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWxlcnQ8VD4ge1xyXG4gICAgYWN0aXZlQWxlcnQkOiBPYnNlcnZhYmxlPEFjdGl2ZUFsZXJ0IHwgdW5kZWZpbmVkPjtcclxuICAgIHByaXZhdGUgaGFzUnVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gICAgcHJpdmF0ZSBkYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNvbmZpZzogQWxlcnRDb25maWc8VD4sXHJcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0OiBBbGVydENvbnRleHQsXHJcbiAgICApIHtcclxuICAgICAgICBpZiAodGhpcy5jb25maWcucmVjaGVjaykge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY29uZmlnLnJlY2hlY2sodGhpcy5jb250ZXh0KS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5ydW5DaGVjaygpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hY3RpdmVBbGVydCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRhdGEkLCB0aGlzLmhhc1J1biRdKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtkYXRhLCBoYXNSdW5dKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0FsZXJ0ID0gdGhpcy5jb25maWcuaXNBbGVydChkYXRhLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc0FsZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5jb25maWcuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcnVuQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFzUnVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5hY3Rpb24oZGF0YSwgdGhpcy5jb250ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzUnVuJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoYXNSdW4sXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY29uZmlnLmxhYmVsKGRhdGEsIHRoaXMuY29udGV4dCksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZ2V0IGlkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5pZDtcclxuICAgIH1cclxuICAgIHJ1bkNoZWNrKCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY29uZmlnLmNoZWNrKHRoaXMuY29udGV4dCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgcmVzdWx0LnRoZW4oZGF0YSA9PiB0aGlzLmRhdGEkLm5leHQoZGF0YSkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgcmVzdWx0LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5kYXRhJC5uZXh0KGRhdGEpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGEkLm5leHQocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oYXNSdW4kLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydHNTZXJ2aWNlIHtcclxuICAgIGFjdGl2ZUFsZXJ0cyQ6IE9ic2VydmFibGU8QWN0aXZlQWxlcnRbXT47XHJcbiAgICBwcml2YXRlIGFsZXJ0c01hcCA9IG5ldyBNYXA8c3RyaW5nLCBBbGVydDxhbnk+PigpO1xyXG4gICAgcHJpdmF0ZSBjb25maWdVcGRhdGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHBlcm1pc3Npb25zU2VydmljZTogUGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgYWxlcnRzJCA9IHRoaXMuY29uZmlnVXBkYXRlZC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKCkgPT4gWy4uLnRoaXMuYWxlcnRzTWFwLnZhbHVlcygpXSksXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aChbLi4udGhpcy5hbGVydHNNYXAudmFsdWVzKCldKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmFjdGl2ZUFsZXJ0cyQgPSBhbGVydHMkLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbGVydHMgPSBbLi4udGhpcy5hbGVydHNNYXAudmFsdWVzKCldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNBbGVydFN0cmVhbXMgPSBhbGVydHMubWFwKGFsZXJ0ID0+IGFsZXJ0LmFjdGl2ZUFsZXJ0JCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChpc0FsZXJ0U3RyZWFtcyk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBtYXAoYWxlcnRTdGF0ZXMgPT4gYWxlcnRTdGF0ZXMuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlndXJlQWxlcnQ8VD4oY29uZmlnOiBBbGVydENvbmZpZzxUPikge1xyXG4gICAgICAgIHRoaXMuaGFzU3VmZmljaWVudFBlcm1pc3Npb25zKGNvbmZpZy5yZXF1aXJlZFBlcm1pc3Npb25zKVxyXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGhhc1Blcm1pc3Npb25zID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChoYXNQZXJtaXNzaW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRzTWFwLnNldChjb25maWcuaWQsIG5ldyBBbGVydChjb25maWcsIHRoaXMuY3JlYXRlQ29udGV4dCgpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdVcGRhdGVkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFzU3VmZmljaWVudFBlcm1pc3Npb25zKHBlcm1pc3Npb25zPzogUGVybWlzc2lvbltdKSB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucyB8fCBwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuY3VycmVudFVzZXJQZXJtaXNzaW9ucyQucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKHBlcm1pc3Npb25zID0+IHBlcm1pc3Npb25zLmxlbmd0aCA+IDApLFxyXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UudXNlckhhc1Blcm1pc3Npb25zKHBlcm1pc3Npb25zKSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoKGlkPzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRzTWFwLmdldChpZCk/LnJ1bkNoZWNrKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydHNNYXAuZm9yRWFjaChjb25maWcgPT4gY29uZmlnLnJ1bkNoZWNrKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGVhckFsZXJ0cygpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0c01hcC5mb3JFYWNoKGFsZXJ0ID0+IGFsZXJ0LmRlc3Ryb3koKSk7XHJcbiAgICAgICAgdGhpcy5hbGVydHNNYXAuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ1VwZGF0ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjcmVhdGVDb250ZXh0KCk6IEFsZXJ0Q29udGV4dCB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgICAgICAgIGRhdGFTZXJ2aWNlOiB0aGlzLmRhdGFTZXJ2aWNlLFxyXG4gICAgICAgICAgICBub3RpZmljYXRpb25TZXJ2aWNlOiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgIG1vZGFsU2VydmljZTogdGhpcy5tb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,21 +1,23 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';
3
3
  import { of } from 'rxjs';
4
- import { catchError, map, mapTo, mergeMap, switchMap } from 'rxjs/operators';
4
+ import { catchError, map, mergeMap, switchMap, tap } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../local-storage/local-storage.service";
7
7
  import * as i2 from "../../data/providers/data.service";
8
8
  import * as i3 from "../../data/server-config";
9
9
  import * as i4 from "../permissions/permissions.service";
10
+ import * as i5 from "../alerts/alerts.service";
10
11
  /**
11
12
  * This service handles logic relating to authentication of the current user.
12
13
  */
13
14
  export class AuthService {
14
- constructor(localStorageService, dataService, serverConfigService, permissionsService) {
15
+ constructor(localStorageService, dataService, serverConfigService, permissionsService, alertService) {
15
16
  this.localStorageService = localStorageService;
16
17
  this.dataService = dataService;
17
18
  this.serverConfigService = serverConfigService;
18
19
  this.permissionsService = permissionsService;
20
+ this.alertService = alertService;
19
21
  }
20
22
  /**
21
23
  * Attempts to log in via the REST login endpoint and updates the app
@@ -58,7 +60,9 @@ export class AuthService {
58
60
  else {
59
61
  return [];
60
62
  }
61
- }), mapTo(true));
63
+ }), tap(() => {
64
+ this.alertService.clearAlerts();
65
+ }), map(() => true));
62
66
  }
63
67
  /**
64
68
  * Checks the app state to see if the user is already logged in,
@@ -96,7 +100,7 @@ export class AuthService {
96
100
  return of(false);
97
101
  }
98
102
  }));
99
- }), mapTo(true), catchError(err => of(false)));
103
+ }), map(() => true), catchError(err => of(false)));
100
104
  }
101
105
  getActiveChannel(userChannels) {
102
106
  const lastActiveChannelToken = this.localStorageService.get('activeChannelToken');
@@ -112,7 +116,7 @@ export class AuthService {
112
116
  setChannelToken(userChannels) {
113
117
  this.localStorageService.set('activeChannelToken', this.getActiveChannel(userChannels).token);
114
118
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AuthService, deps: [{ token: i1.LocalStorageService }, { token: i2.DataService }, { token: i3.ServerConfigService }, { token: i4.PermissionsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AuthService, deps: [{ token: i1.LocalStorageService }, { token: i2.DataService }, { token: i3.ServerConfigService }, { token: i4.PermissionsService }, { token: i5.AlertsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
116
120
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AuthService, providedIn: 'root' }); }
117
121
  }
118
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AuthService, decorators: [{
@@ -120,5 +124,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
120
124
  args: [{
121
125
  providedIn: 'root',
122
126
  }]
123
- }], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: i2.DataService }, { type: i3.ServerConfigService }, { type: i4.PermissionsService }] });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvYXV0aC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVE3RTs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQ1ksbUJBQXdDLEVBQ3hDLFdBQXdCLEVBQ3hCLG1CQUF3QyxFQUN4QyxrQkFBc0M7UUFIdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFDL0MsQ0FBQztJQUVKOzs7T0FHRztJQUNILEtBQUssQ0FDRCxRQUFnQixFQUNoQixRQUFnQixFQUNoQixVQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDMUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2pCLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssYUFBYSxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lB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QUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xGLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUN6QixNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLHNCQUFzQixDQUFDLENBQUM7WUFDckYsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUNwQixPQUFPLGlCQUFpQixDQUFDO1lBQzdCLENBQUM7UUFDTCxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsQ0FBQztRQUMvRSxPQUFPLGNBQWMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUE2QztRQUNqRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRyxDQUFDOzhHQXJJUSxXQUFXO2tIQUFYLFdBQVcsY0FGUixNQUFNOzsyRkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgREVGQVVMVF9DSEFOTkVMX0NPREUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1hcFRvLCBtZXJnZU1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXR0ZW1wdExvZ2luTXV0YXRpb24sIEN1cnJlbnRVc2VyRnJhZ21lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2ZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9zZXJ2ZXItY29uZmlnJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBzZXJ2aWNlIGhhbmRsZXMgbG9naWMgcmVsYXRpbmcgdG8gYXV0aGVudGljYXRpb24gb2YgdGhlIGN1cnJlbnQgdXNlci5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBwZXJtaXNzaW9uc1NlcnZpY2U6IFBlcm1pc3Npb25zU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICAvKipcclxuICAgICAqIEF0dGVtcHRzIHRvIGxvZyBpbiB2aWEgdGhlIFJFU1QgbG9naW4gZW5kcG9pbnQgYW5kIHVwZGF0ZXMgdGhlIGFwcFxyXG4gICAgICogc3RhdGUgb24gc3VjY2Vzcy5cclxuICAgICAqL1xyXG4gICAgbG9nSW4oXHJcbiAgICAgICAgdXNlcm5hbWU6IHN0cmluZyxcclxuICAgICAgICBwYXNzd29yZDogc3RyaW5nLFxyXG4gICAgICAgIHJlbWVtYmVyTWU6IGJvb2xlYW4sXHJcbiAgICApOiBPYnNlcnZhYmxlPEF0dGVtcHRMb2dpbk11dGF0aW9uWydsb2dpbiddPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYXV0aC5hdHRlbXB0TG9naW4odXNlcm5hbWUsIHBhc3N3b3JkLCByZW1lbWJlck1lKS5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmxvZ2luLl9fdHlwZW5hbWUgPT09ICdDdXJyZW50VXNlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldENoYW5uZWxUb2tlbihyZXNwb25zZS5sb2dpbi5jaGFubmVscyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJDb25maWdTZXJ2aWNlLmdldFNlcnZlckNvbmZpZygpLnRoZW4oKCkgPT4gcmVzcG9uc2UubG9naW4pO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgc3dpdGNoTWFwKGxvZ2luID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2dpbi5fX3R5cGVuYW1lID09PSAnQ3VycmVudFVzZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlQ2hhbm5lbCA9IHRoaXMuZ2V0QWN0aXZlQ2hhbm5lbChsb2dpbi5jaGFubmVscyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2Uuc2V0Q3VycmVudFVzZXJQZXJtaXNzaW9ucyhhY3RpdmVDaGFubmVsLnBlcm1pc3Npb25zKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5hZG1pbmlzdHJhdG9yLmdldEFjdGl2ZUFkbWluaXN0cmF0b3IoKS5zaW5nbGUkLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBhY3RpdmVBZG1pbmlzdHJhdG9yIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVBZG1pbmlzdHJhdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sb2dpblN1Y2Nlc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVBZG1pbmlzdHJhdG9yLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7YWN0aXZlQWRtaW5pc3RyYXRvci5maXJzdE5hbWV9ICR7YWN0aXZlQWRtaW5pc3RyYXRvci5sYXN0TmFtZX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2hhbm5lbC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luLmNoYW5uZWxzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKG1hcCgoKSA9PiBsb2dpbikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobG9naW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGxvZ2luKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZSB0aGUgdXNlciBzdGF0dXMgdG8gYmVpbmcgbG9nZ2VkIG91dC5cclxuICAgICAqL1xyXG4gICAgbG9nT3V0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC51c2VyU3RhdHVzKCkuc2luZ2xlJC5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoc3RhdHVzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMudXNlclN0YXR1cy5pc0xvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5sb2dPdXQoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtZXJnZU1hcCgoKSA9PiB0aGlzLmRhdGFTZXJ2aWNlLmF1dGgubG9nT3V0KCkpKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwVG8odHJ1ZSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyB0aGUgYXBwIHN0YXRlIHRvIHNlZSBpZiB0aGUgdXNlciBpcyBhbHJlYWR5IGxvZ2dlZCBpbixcclxuICAgICAqIGFuZCBpZiBub3QsIGF0dGVtcHRzIHRvIHZhbGlkYXRlIGFueSBhdXRoIHRva2VuIGZvdW5kLlxyXG4gICAgICovXHJcbiAgICBjaGVja0F1dGhlbnRpY2F0ZWRTdGF0dXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnVzZXJTdGF0dXMoKS5zaW5nbGUkLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhLnVzZXJTdGF0dXMuaXNMb2dnZWRJbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQXV0aFRva2VuKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBmb3IgYW4gYXV0aCB0b2tlbiBhbmQgaWYgZm91bmQsIGF0dGVtcHRzIHRvIHZhbGlkYXRlXHJcbiAgICAgKiB0aGF0IHRva2VuIGFnYWluc3QgdGhlIEFQSS5cclxuICAgICAqL1xyXG4gICAgdmFsaWRhdGVBdXRoVG9rZW4oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYXV0aC5jdXJyZW50VXNlcigpLnNpbmdsZSQucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKHsgbWUgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSkgYXMgYW55O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDaGFubmVsVG9rZW4obWUuY2hhbm5lbHMpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlQ2hhbm5lbCA9IHRoaXMuZ2V0QWN0aXZlQ2hhbm5lbChtZS5jaGFubmVscyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5zZXRDdXJyZW50VXNlclBlcm1pc3Npb25zKGFjdGl2ZUNoYW5uZWwucGVybWlzc2lvbnMpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYWRtaW5pc3RyYXRvci5nZXRBY3RpdmVBZG1pbmlzdHJhdG9yKCkuc2luZ2xlJC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBhY3RpdmVBZG1pbmlzdHJhdG9yIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUFkbWluaXN0cmF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sb2dpblN1Y2Nlc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUFkbWluaXN0cmF0b3IuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2FjdGl2ZUFkbWluaXN0cmF0b3IuZmlyc3ROYW1lfSAke2FjdGl2ZUFkbWluaXN0cmF0b3IubGFzdE5hbWV9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQ2hhbm5lbC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWUuY2hhbm5lbHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwVG8odHJ1ZSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IG9mKGZhbHNlKSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEFjdGl2ZUNoYW5uZWwodXNlckNoYW5uZWxzOiBDdXJyZW50VXNlckZyYWdtZW50WydjaGFubmVscyddKSB7XHJcbiAgICAgICAgY29uc3QgbGFzdEFjdGl2ZUNoYW5uZWxUb2tlbiA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXQoJ2FjdGl2ZUNoYW5uZWxUb2tlbicpO1xyXG4gICAgICAgIGlmIChsYXN0QWN0aXZlQ2hhbm5lbFRva2VuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RBY3RpdmVDaGFubmVsID0gdXNlckNoYW5uZWxzLmZpbmQoYyA9PiBjLnRva2VuID09PSBsYXN0QWN0aXZlQ2hhbm5lbFRva2VuKTtcclxuICAgICAgICAgICAgaWYgKGxhc3RBY3RpdmVDaGFubmVsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEFjdGl2ZUNoYW5uZWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdENoYW5uZWwgPSB1c2VyQ2hhbm5lbHMuZmluZChjID0+IGMuY29kZSA9PT0gREVGQVVMVF9DSEFOTkVMX0NPREUpO1xyXG4gICAgICAgIHJldHVybiBkZWZhdWx0Q2hhbm5lbCB8fCB1c2VyQ2hhbm5lbHNbMF07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRDaGFubmVsVG9rZW4odXNlckNoYW5uZWxzOiBDdXJyZW50VXNlckZyYWdtZW50WydjaGFubmVscyddKSB7XHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgnYWN0aXZlQ2hhbm5lbFRva2VuJywgdGhpcy5nZXRBY3RpdmVDaGFubmVsKHVzZXJDaGFubmVscykudG9rZW4pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
127
+ }], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: i2.DataService }, { type: i3.ServerConfigService }, { type: i4.PermissionsService }, { type: i5.AlertsService }] });
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvYXV0aC9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFTM0U7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQUNwQixZQUNZLG1CQUF3QyxFQUN4QyxXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsa0JBQXNDLEVBQ3RDLFlBQTJCO1FBSjNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGlCQUFZLEdBQVosWUFBWSxDQUFlO0lBQ3BDLENBQUM7SUFFSjs7O09BR0c7SUFDSCxLQUFLLENBQ0QsUUFBZ0IsRUFDaEIsUUFBZ0IsRUFDaEIsVUFBbUI7UUFFbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNqQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FB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SSxDQUFDLEVBQ2YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQy9CLENBQUM7SUFDTixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsWUFBNkM7UUFDbEUsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEYsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQ3pCLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssc0JBQXNCLENBQUMsQ0FBQztZQUNyRixJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLE9BQU8saUJBQWlCLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sY0FBYyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sZUFBZSxDQUFDLFlBQTZDO1FBQ2pFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xHLENBQUM7OEdBeklRLFdBQVc7a0hBQVgsV0FBVyxjQUZSLE1BQU07OzJGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBERUZBVUxUX0NIQU5ORUxfQ09ERSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXR0ZW1wdExvZ2luTXV0YXRpb24sIEN1cnJlbnRVc2VyRnJhZ21lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2ZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9zZXJ2ZXItY29uZmlnJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0c1NlcnZpY2UgfSBmcm9tICcuLi9hbGVydHMvYWxlcnRzLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc2VydmljZSBoYW5kbGVzIGxvZ2ljIHJlbGF0aW5nIHRvIGF1dGhlbnRpY2F0aW9uIG9mIHRoZSBjdXJyZW50IHVzZXIuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBzZXJ2ZXJDb25maWdTZXJ2aWNlOiBTZXJ2ZXJDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcGVybWlzc2lvbnNTZXJ2aWNlOiBQZXJtaXNzaW9uc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBdHRlbXB0cyB0byBsb2cgaW4gdmlhIHRoZSBSRVNUIGxvZ2luIGVuZHBvaW50IGFuZCB1cGRhdGVzIHRoZSBhcHBcclxuICAgICAqIHN0YXRlIG9uIHN1Y2Nlc3MuXHJcbiAgICAgKi9cclxuICAgIGxvZ0luKFxyXG4gICAgICAgIHVzZXJuYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcGFzc3dvcmQ6IHN0cmluZyxcclxuICAgICAgICByZW1lbWJlck1lOiBib29sZWFuLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxBdHRlbXB0TG9naW5NdXRhdGlvblsnbG9naW4nXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmF1dGguYXR0ZW1wdExvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCwgcmVtZW1iZXJNZSkucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5sb2dpbi5fX3R5cGVuYW1lID09PSAnQ3VycmVudFVzZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDaGFubmVsVG9rZW4ocmVzcG9uc2UubG9naW4uY2hhbm5lbHMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVyQ29uZmlnU2VydmljZS5nZXRTZXJ2ZXJDb25maWcoKS50aGVuKCgpID0+IHJlc3BvbnNlLmxvZ2luKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChsb2dpbiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobG9naW4uX190eXBlbmFtZSA9PT0gJ0N1cnJlbnRVc2VyJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNoYW5uZWwgPSB0aGlzLmdldEFjdGl2ZUNoYW5uZWwobG9naW4uY2hhbm5lbHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLnNldEN1cnJlbnRVc2VyUGVybWlzc2lvbnMoYWN0aXZlQ2hhbm5lbC5wZXJtaXNzaW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYWRtaW5pc3RyYXRvci5nZXRBY3RpdmVBZG1pbmlzdHJhdG9yKCkuc2luZ2xlJC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgYWN0aXZlQWRtaW5pc3RyYXRvciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlQWRtaW5pc3RyYXRvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubG9naW5TdWNjZXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQWRtaW5pc3RyYXRvci5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2FjdGl2ZUFkbWluaXN0cmF0b3IuZmlyc3ROYW1lfSAke2FjdGl2ZUFkbWluaXN0cmF0b3IubGFzdE5hbWV9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNoYW5uZWwuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpbi5jaGFubmVscyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gbG9naW4pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGxvZ2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihsb2dpbik7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGUgdGhlIHVzZXIgc3RhdHVzIHRvIGJlaW5nIGxvZ2dlZCBvdXQuXHJcbiAgICAgKi9cclxuICAgIGxvZ091dCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jbGllbnQudXNlclN0YXR1cygpLnNpbmdsZSQucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKHN0YXR1cyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHVzLnVzZXJTdGF0dXMuaXNMb2dnZWRJbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubG9nT3V0KClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWVyZ2VNYXAoKCkgPT4gdGhpcy5kYXRhU2VydmljZS5hdXRoLmxvZ091dCgpKSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5jbGVhckFsZXJ0cygpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwKCgpID0+IHRydWUpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgdGhlIGFwcCBzdGF0ZSB0byBzZWUgaWYgdGhlIHVzZXIgaXMgYWxyZWFkeSBsb2dnZWQgaW4sXHJcbiAgICAgKiBhbmQgaWYgbm90LCBhdHRlbXB0cyB0byB2YWxpZGF0ZSBhbnkgYXV0aCB0b2tlbiBmb3VuZC5cclxuICAgICAqL1xyXG4gICAgY2hlY2tBdXRoZW50aWNhdGVkU3RhdHVzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC51c2VyU3RhdHVzKCkuc2luZ2xlJC5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghZGF0YS51c2VyU3RhdHVzLmlzTG9nZ2VkSW4pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUF1dGhUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgZm9yIGFuIGF1dGggdG9rZW4gYW5kIGlmIGZvdW5kLCBhdHRlbXB0cyB0byB2YWxpZGF0ZVxyXG4gICAgICogdGhhdCB0b2tlbiBhZ2FpbnN0IHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIHZhbGlkYXRlQXV0aFRva2VuKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmF1dGguY3VycmVudFVzZXIoKS5zaW5nbGUkLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKCh7IG1lIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpIGFzIGFueTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q2hhbm5lbFRva2VuKG1lLmNoYW5uZWxzKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNoYW5uZWwgPSB0aGlzLmdldEFjdGl2ZUNoYW5uZWwobWUuY2hhbm5lbHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2Uuc2V0Q3VycmVudFVzZXJQZXJtaXNzaW9ucyhhY3RpdmVDaGFubmVsLnBlcm1pc3Npb25zKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmFkbWluaXN0cmF0b3IuZ2V0QWN0aXZlQWRtaW5pc3RyYXRvcigpLnNpbmdsZSQucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgYWN0aXZlQWRtaW5pc3RyYXRvciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVBZG1pbmlzdHJhdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jbGllbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubG9naW5TdWNjZXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVBZG1pbmlzdHJhdG9yLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHthY3RpdmVBZG1pbmlzdHJhdG9yLmZpcnN0TmFtZX0gJHthY3RpdmVBZG1pbmlzdHJhdG9yLmxhc3ROYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNoYW5uZWwuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lLmNoYW5uZWxzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXAoKCkgPT4gdHJ1ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0cnVlKSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4gb2YoZmFsc2UpKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0QWN0aXZlQ2hhbm5lbCh1c2VyQ2hhbm5lbHM6IEN1cnJlbnRVc2VyRnJhZ21lbnRbJ2NoYW5uZWxzJ10pIHtcclxuICAgICAgICBjb25zdCBsYXN0QWN0aXZlQ2hhbm5lbFRva2VuID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgnYWN0aXZlQ2hhbm5lbFRva2VuJyk7XHJcbiAgICAgICAgaWYgKGxhc3RBY3RpdmVDaGFubmVsVG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgbGFzdEFjdGl2ZUNoYW5uZWwgPSB1c2VyQ2hhbm5lbHMuZmluZChjID0+IGMudG9rZW4gPT09IGxhc3RBY3RpdmVDaGFubmVsVG9rZW4pO1xyXG4gICAgICAgICAgICBpZiAobGFzdEFjdGl2ZUNoYW5uZWwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBsYXN0QWN0aXZlQ2hhbm5lbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkZWZhdWx0Q2hhbm5lbCA9IHVzZXJDaGFubmVscy5maW5kKGMgPT4gYy5jb2RlID09PSBERUZBVUxUX0NIQU5ORUxfQ09ERSk7XHJcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRDaGFubmVsIHx8IHVzZXJDaGFubmVsc1swXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldENoYW5uZWxUb2tlbih1c2VyQ2hhbm5lbHM6IEN1cnJlbnRVc2VyRnJhZ21lbnRbJ2NoYW5uZWxzJ10pIHtcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCdhY3RpdmVDaGFubmVsVG9rZW4nLCB0aGlzLmdldEFjdGl2ZUNoYW5uZWwodXNlckNoYW5uZWxzKS50b2tlbik7XHJcbiAgICB9XHJcbn1cclxuIl19