@netgrif/components
Version:
Netgrif Application Engine frontend Angular components
76 lines • 16.7 kB
JavaScript
import { Component, Inject, ViewChild } from '@angular/core';
import { NAE_SIDE_MENU_CONTROL, AbstractUserImpersonateComponent, CaseViewService, AllowedNetsServiceFactory, AllowedNetsService, SearchService, NAE_BASE_FILTER, NAE_DEFAULT_HEADERS, UserImpersonationConstants } from '@netgrif/components-core';
import * as i0 from "@angular/core";
import * as i1 from "@netgrif/components-core";
import * as i2 from "@angular/common";
import * as i3 from "@ngbracket/ngx-layout";
import * as i4 from "@ngbracket/ngx-layout/extended";
import * as i5 from "@angular/material/toolbar";
import * as i6 from "../../../view/case-view/components/case-list/case-list.component";
import * as i7 from "../../../header/header.component";
import * as i8 from "@ngx-translate/core";
function baseFilterFactory(sideMenuControl) {
if (!sideMenuControl.data) {
throw new Error('NewFilterCaseId was not provided in the side menu injection data');
}
const injectedData = sideMenuControl.data;
return { filter: injectedData.filter };
}
function localAllowedNetsFactory(factory) {
return factory.createFromArray([UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER]);
}
/**
* @deprecated
* */
export class UserImpersonateComponent extends AbstractUserImpersonateComponent {
caseHeaderComponent;
constructor(sideMenuControl, log, caseViewService) {
super(sideMenuControl, caseViewService);
}
ngAfterViewInit() {
this.initializeHeader(this.caseHeaderComponent);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserImpersonateComponent, deps: [{ token: NAE_SIDE_MENU_CONTROL }, { token: i1.LoggerService }, { token: i1.CaseViewService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: UserImpersonateComponent, selector: "nc-user-impersonate", providers: [
CaseViewService,
SearchService,
{ provide: NAE_BASE_FILTER,
useFactory: baseFilterFactory,
deps: [NAE_SIDE_MENU_CONTROL] },
{ provide: AllowedNetsService,
useFactory: localAllowedNetsFactory,
deps: [AllowedNetsServiceFactory] },
{ provide: NAE_DEFAULT_HEADERS,
useValue: [
`${UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER}-${UserImpersonationConstants.IMPERSONATION_CONFIG_FIELD_IMPERSONATED}`,
`${UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER}-${UserImpersonationConstants.IMPERSONATION_CONFIG_FIELD_ROLES}`,
`${UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER}-${UserImpersonationConstants.IMPERSONATION_CONFIG_FIELD_AUTHS}`,
] }
], viewQueries: [{ propertyName: "caseHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar color=\"primary\">{{'side-menu.impersonation.title' | translate}}</mat-toolbar>\n<div class=\"load-filter-container side-menu-root\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"3\" [responsiveHeaders]=\"true\" [hideHeaderMenu]=\"true\" class=\"case-header-padding\" [ngStyle]=\"{'width': getWidth()}\"></nc-header>\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [showDeleteMenu]=\"false\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex [textEllipsis]=\"true\" class=\"virtual-scroll-list-padding\"></nc-case-list>\n</div>\n", styles: [".load-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px}.case-header-padding{padding-bottom:16px;padding-top:4px}.virtual-scroll-list-padding{padding-right:4px}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.CaseListComponent, selector: "nc-case-list" }, { kind: "component", type: i7.HeaderComponent, selector: "nc-header" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserImpersonateComponent, decorators: [{
type: Component,
args: [{ selector: 'nc-user-impersonate', providers: [
CaseViewService,
SearchService,
{ provide: NAE_BASE_FILTER,
useFactory: baseFilterFactory,
deps: [NAE_SIDE_MENU_CONTROL] },
{ provide: AllowedNetsService,
useFactory: localAllowedNetsFactory,
deps: [AllowedNetsServiceFactory] },
{ provide: NAE_DEFAULT_HEADERS,
useValue: [
`${UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER}-${UserImpersonationConstants.IMPERSONATION_CONFIG_FIELD_IMPERSONATED}`,
`${UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER}-${UserImpersonationConstants.IMPERSONATION_CONFIG_FIELD_ROLES}`,
`${UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER}-${UserImpersonationConstants.IMPERSONATION_CONFIG_FIELD_AUTHS}`,
] }
], template: "<mat-toolbar color=\"primary\">{{'side-menu.impersonation.title' | translate}}</mat-toolbar>\n<div class=\"load-filter-container side-menu-root\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"3\" [responsiveHeaders]=\"true\" [hideHeaderMenu]=\"true\" class=\"case-header-padding\" [ngStyle]=\"{'width': getWidth()}\"></nc-header>\n <nc-case-list [selectedHeaders$]=\"selectedHeaders$\" [showDeleteMenu]=\"false\" [width]=\"getWidth()\"\n (caseClick)=\"handleCaseClick($event)\" [responsiveBody]=\"true\" fxFlex [textEllipsis]=\"true\" class=\"virtual-scroll-list-padding\"></nc-case-list>\n</div>\n", styles: [".load-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px}.case-header-padding{padding-bottom:16px;padding-top:4px}.virtual-scroll-list-padding{padding-right:4px}\n"] }]
}], ctorParameters: () => [{ type: i1.SideMenuControl, decorators: [{
type: Inject,
args: [NAE_SIDE_MENU_CONTROL]
}] }, { type: i1.LoggerService }, { type: i1.CaseViewService }], propDecorators: { caseHeaderComponent: [{
type: ViewChild,
args: ['header']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbXBlcnNvbmF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL3VzZXItaW1wZXJzb25hdGUvdXNlci1pbXBlcnNvbmF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL3VzZXItaW1wZXJzb25hdGUvdXNlci1pbXBlcnNvbmF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsZ0NBQWdDLEVBR2hDLGVBQWUsRUFFZix5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUU3QixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBR2xDLFNBQVMsaUJBQWlCLENBQUMsZUFBZ0M7SUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0tBQ3ZGO0lBQ0QsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQW9DLENBQUM7SUFFMUUsT0FBTyxFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsT0FBa0M7SUFDL0QsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsMEJBQTBCLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO0FBQ3JHLENBQUM7QUFFRDs7S0FFSztBQXNCTCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0NBQWdDO0lBRTlDLG1CQUFtQixDQUFrQjtJQUVqRSxZQUEyQyxlQUFnQyxFQUMvRCxHQUFrQixFQUNsQixlQUFnQztRQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7d0dBWlEsd0JBQXdCLGtCQUliLHFCQUFxQjs0RkFKaEMsd0JBQXdCLDhDQWpCdEI7WUFDUCxlQUFlO1lBQ2YsYUFBYTtZQUNiLEVBQUksT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7Z0JBQzdCLElBQUksRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUM7WUFDbEMsRUFBSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixVQUFVLEVBQUUsdUJBQXVCO2dCQUNuQyxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFDO1lBQ3RDLEVBQUksT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsUUFBUSxFQUFFO29CQUNOLEdBQUcsMEJBQTBCLENBQUMsbUNBQW1DLElBQUksMEJBQTBCLENBQUMsdUNBQXVDLEVBQUU7b0JBQ3pJLEdBQUcsMEJBQTBCLENBQUMsbUNBQW1DLElBQUksMEJBQTBCLENBQUMsZ0NBQWdDLEVBQUU7b0JBQ2xJLEdBQUcsMEJBQTBCLENBQUMsbUNBQW1DLElBQUksMEJBQTBCLENBQUMsZ0NBQWdDLEVBQUU7aUJBQ3JJLEVBQUM7U0FDVCxnS0NyREwsc3JCQU1BOzs0RkRpRGEsd0JBQXdCO2tCQXJCcEMsU0FBUzsrQkFDSSxxQkFBcUIsYUFHcEI7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiLEVBQUksT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7NEJBQzdCLElBQUksRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUM7d0JBQ2xDLEVBQUksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLHVCQUF1Qjs0QkFDbkMsSUFBSSxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBQzt3QkFDdEMsRUFBSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixRQUFRLEVBQUU7Z0NBQ04sR0FBRywwQkFBMEIsQ0FBQyxtQ0FBbUMsSUFBSSwwQkFBMEIsQ0FBQyx1Q0FBdUMsRUFBRTtnQ0FDekksR0FBRywwQkFBMEIsQ0FBQyxtQ0FBbUMsSUFBSSwwQkFBMEIsQ0FBQyxnQ0FBZ0MsRUFBRTtnQ0FDbEksR0FBRywwQkFBMEIsQ0FBQyxtQ0FBbUMsSUFBSSwwQkFBMEIsQ0FBQyxnQ0FBZ0MsRUFBRTs2QkFDckksRUFBQztxQkFDVDs7MEJBTVksTUFBTTsyQkFBQyxxQkFBcUI7bUdBRmIsbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBOQUVfU0lERV9NRU5VX0NPTlRST0wsXG4gICAgQWJzdHJhY3RVc2VySW1wZXJzb25hdGVDb21wb25lbnQsXG4gICAgU2lkZU1lbnVDb250cm9sLFxuICAgIExvZ2dlclNlcnZpY2UsXG4gICAgQ2FzZVZpZXdTZXJ2aWNlLFxuICAgIEJhc2VGaWx0ZXIsXG4gICAgQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgU2VhcmNoU2VydmljZSxcbiAgICBOQUVfQkFTRV9GSUxURVIsXG4gICAgTkFFX0RFRkFVTFRfSEVBREVSUyxcbiAgICBVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cyxcbiAgICBVc2VySW1wZXJzb25hdGVJbmplY3Rpb25EYXRhXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge0hlYWRlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuXG5mdW5jdGlvbiBiYXNlRmlsdGVyRmFjdG9yeShzaWRlTWVudUNvbnRyb2w6IFNpZGVNZW51Q29udHJvbCk6IEJhc2VGaWx0ZXIge1xuICAgIGlmICghc2lkZU1lbnVDb250cm9sLmRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZXdGaWx0ZXJDYXNlSWQgd2FzIG5vdCBwcm92aWRlZCBpbiB0aGUgc2lkZSBtZW51IGluamVjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIGNvbnN0IGluamVjdGVkRGF0YSA9IHNpZGVNZW51Q29udHJvbC5kYXRhIGFzIFVzZXJJbXBlcnNvbmF0ZUluamVjdGlvbkRhdGE7XG5cbiAgICByZXR1cm4ge2ZpbHRlcjogaW5qZWN0ZWREYXRhLmZpbHRlcn07XG59XG5cbmZ1bmN0aW9uIGxvY2FsQWxsb3dlZE5ldHNGYWN0b3J5KGZhY3Rvcnk6IEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnkpOiBBbGxvd2VkTmV0c1NlcnZpY2Uge1xuICAgIHJldHVybiBmYWN0b3J5LmNyZWF0ZUZyb21BcnJheShbVXNlckltcGVyc29uYXRpb25Db25zdGFudHMuSU1QRVJTT05BVElPTl9DT05GSUdfTkVUX0lERU5USUZJRVJdKTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtdXNlci1pbXBlcnNvbmF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItaW1wZXJzb25hdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VzZXItaW1wZXJzb25hdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ2FzZVZpZXdTZXJ2aWNlLFxuICAgICAgICBTZWFyY2hTZXJ2aWNlLFxuICAgICAgICB7ICAgcHJvdmlkZTogTkFFX0JBU0VfRklMVEVSLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogYmFzZUZpbHRlckZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbTkFFX1NJREVfTUVOVV9DT05UUk9MXX0sXG4gICAgICAgIHsgICBwcm92aWRlOiBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBsb2NhbEFsbG93ZWROZXRzRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5XX0sXG4gICAgICAgIHsgICBwcm92aWRlOiBOQUVfREVGQVVMVF9IRUFERVJTLFxuICAgICAgICAgICAgdXNlVmFsdWU6IFtcbiAgICAgICAgICAgICAgICBgJHtVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cy5JTVBFUlNPTkFUSU9OX0NPTkZJR19ORVRfSURFTlRJRklFUn0tJHtVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cy5JTVBFUlNPTkFUSU9OX0NPTkZJR19GSUVMRF9JTVBFUlNPTkFURUR9YCxcbiAgICAgICAgICAgICAgICBgJHtVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cy5JTVBFUlNPTkFUSU9OX0NPTkZJR19ORVRfSURFTlRJRklFUn0tJHtVc2VySW1wZXJzb25hdGlvbkNvbnN0YW50cy5JTVBFUlNPTkFUSU9OX0NPTkZJR19GSUVMRF9ST0xFU31gLFxuICAgICAgICAgICAgICAgIGAke1VzZXJJbXBlcnNvbmF0aW9uQ29uc3RhbnRzLklNUEVSU09OQVRJT05fQ09ORklHX05FVF9JREVOVElGSUVSfS0ke1VzZXJJbXBlcnNvbmF0aW9uQ29uc3RhbnRzLklNUEVSU09OQVRJT05fQ09ORklHX0ZJRUxEX0FVVEhTfWAsXG4gICAgICAgICAgICBdfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVXNlckltcGVyc29uYXRlQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RVc2VySW1wZXJzb25hdGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIHB1YmxpYyBjYXNlSGVhZGVyQ29tcG9uZW50OiBIZWFkZXJDb21wb25lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5BRV9TSURFX01FTlVfQ09OVFJPTCkgc2lkZU1lbnVDb250cm9sOiBTaWRlTWVudUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGNhc2VWaWV3U2VydmljZTogQ2FzZVZpZXdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKHNpZGVNZW51Q29udHJvbCwgY2FzZVZpZXdTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUhlYWRlcih0aGlzLmNhc2VIZWFkZXJDb21wb25lbnQpO1xuICAgIH1cbn1cbiIsIjxtYXQtdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj57eydzaWRlLW1lbnUuaW1wZXJzb25hdGlvbi50aXRsZScgfCB0cmFuc2xhdGV9fTwvbWF0LXRvb2xiYXI+XG48ZGl2IGNsYXNzPVwibG9hZC1maWx0ZXItY29udGFpbmVyIHNpZGUtbWVudS1yb290XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiPlxuICAgIDxuYy1oZWFkZXIgI2hlYWRlciBbdHlwZV09XCJoZWFkZXJUeXBlXCIgW21heEhlYWRlckNvbHVtbnNdPVwiM1wiIFtyZXNwb25zaXZlSGVhZGVyc109XCJ0cnVlXCIgW2hpZGVIZWFkZXJNZW51XT1cInRydWVcIiBjbGFzcz1cImNhc2UtaGVhZGVyLXBhZGRpbmdcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogZ2V0V2lkdGgoKX1cIj48L25jLWhlYWRlcj5cbiAgICA8bmMtY2FzZS1saXN0IFtzZWxlY3RlZEhlYWRlcnMkXT1cInNlbGVjdGVkSGVhZGVycyRcIiBbc2hvd0RlbGV0ZU1lbnVdPVwiZmFsc2VcIiBbd2lkdGhdPVwiZ2V0V2lkdGgoKVwiXG4gICAgICAgICAgICAgICAgICAoY2FzZUNsaWNrKT1cImhhbmRsZUNhc2VDbGljaygkZXZlbnQpXCIgW3Jlc3BvbnNpdmVCb2R5XT1cInRydWVcIiBmeEZsZXggW3RleHRFbGxpcHNpc109XCJ0cnVlXCIgY2xhc3M9XCJ2aXJ0dWFsLXNjcm9sbC1saXN0LXBhZGRpbmdcIj48L25jLWNhc2UtbGlzdD5cbjwvZGl2PlxuIl19