@netgrif/components
Version:
Netgrif Application Engine frontend Angular components
83 lines • 16.9 kB
JavaScript
import { Component, Optional } from '@angular/core';
import { AbstractSingleTaskViewComponent, AllowedNetsService, AllowedNetsServiceFactory, BaseAllowedNetsService, ChangedFieldsService, FilterExtractionService, FinishTaskService, FrontActionService, NAE_BASE_FILTER, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_TASK_OPERATIONS, NAE_VIEW_ID_SEGMENT, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskFilterFactory, RedirectService, SearchService, SubjectTaskOperations, TaskDataService, TaskEventService, TaskRequestStateService, TaskViewService, ViewIdService } from "@netgrif/components-core";
import { ActivatedRoute } from "@angular/router";
import { AsyncPipe } from "@angular/common";
import * as i0 from "@angular/core";
import * as i1 from "@netgrif/components-core";
import * as i2 from "@angular/router";
import * as i3 from "@angular/common";
import * as i4 from "@ngbracket/ngx-layout";
import * as i5 from "@angular/material/button";
import * as i6 from "../../../../../panel/task-panel-single/single-task.component";
import * as i7 from "@ngx-translate/core";
export class DefaultSingleTaskViewComponent extends AbstractSingleTaskViewComponent {
hidePanelHeader = true;
hideActionRow = false;
showPageHeader = true;
showPageFooter = false;
actionRowJustifyContent = "center";
showFinishButton = true;
constructor(taskViewService, activatedRoute) {
super(taskViewService, activatedRoute);
}
getFinishTitle() {
return (this.finishTitle === '' || this.finishTitle) ? this.finishTitle : 'tasks.view.finish';
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultSingleTaskViewComponent, deps: [{ token: i1.TaskViewService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultSingleTaskViewComponent, selector: "nc-default-single-task-view", providers: [
TaskViewService,
SearchService,
RedirectService,
ChangedFieldsService,
{
provide: NAE_BASE_FILTER,
useFactory: navigationItemTaskFilterFactory,
deps: [FilterExtractionService, ActivatedRoute, [new Optional(), NAE_NAVIGATION_ITEM_TASK_DATA]]
},
{ provide: NAE_VIEW_ID_SEGMENT, useValue: 'publicTaskView' },
{ provide: AllowedNetsServiceFactory, useClass: AllowedNetsServiceFactory },
{
provide: AllowedNetsService,
useFactory: navigationItemTaskAllowedNetsServiceFactory,
deps: [AllowedNetsServiceFactory, BaseAllowedNetsService, NAE_NAVIGATION_ITEM_TASK_DATA]
},
ViewIdService,
TaskDataService,
FrontActionService,
FinishTaskService,
TaskRequestStateService,
TaskEventService,
{ provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
AsyncPipe
], usesInheritance: true, ngImport: i0, template: "<div class=\"task-tab-background full-height\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <nc-single-task [task$]=\"task$\" [loading$]=\"loading$\" [selectedHeaders$]=\"selectedHeaders$\"\n [actionRowJustifyContent]=\"actionRowJustifyContent\" [hideActionRow]=\"hideActionRow\" [hidePanelHeader]=\"hidePanelHeader\"\n [showPageHeader]=\"showPageHeader\" [showPageFooter]=\"showPageFooter\" [actionButtonTemplates]='[finishButton]' fxFlex></nc-single-task>\n </div>\n</div>\n\n<ng-template #finishButton let-finish=\"finish\">\n <button *ngIf=\"showFinishButton\" (click)=\"finish()\" mat-stroked-button color=\"primary\" >\n {{ getFinishTitle() | translate | uppercase }}</button>\n</ng-template>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.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: i4.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: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.SingleTaskComponent, selector: "nc-single-task" }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultSingleTaskViewComponent, decorators: [{
type: Component,
args: [{ selector: 'nc-default-single-task-view', providers: [
TaskViewService,
SearchService,
RedirectService,
ChangedFieldsService,
{
provide: NAE_BASE_FILTER,
useFactory: navigationItemTaskFilterFactory,
deps: [FilterExtractionService, ActivatedRoute, [new Optional(), NAE_NAVIGATION_ITEM_TASK_DATA]]
},
{ provide: NAE_VIEW_ID_SEGMENT, useValue: 'publicTaskView' },
{ provide: AllowedNetsServiceFactory, useClass: AllowedNetsServiceFactory },
{
provide: AllowedNetsService,
useFactory: navigationItemTaskAllowedNetsServiceFactory,
deps: [AllowedNetsServiceFactory, BaseAllowedNetsService, NAE_NAVIGATION_ITEM_TASK_DATA]
},
ViewIdService,
TaskDataService,
FrontActionService,
FinishTaskService,
TaskRequestStateService,
TaskEventService,
{ provide: NAE_TASK_OPERATIONS, useClass: SubjectTaskOperations },
AsyncPipe
], template: "<div class=\"task-tab-background full-height\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <nc-single-task [task$]=\"task$\" [loading$]=\"loading$\" [selectedHeaders$]=\"selectedHeaders$\"\n [actionRowJustifyContent]=\"actionRowJustifyContent\" [hideActionRow]=\"hideActionRow\" [hidePanelHeader]=\"hidePanelHeader\"\n [showPageHeader]=\"showPageHeader\" [showPageFooter]=\"showPageFooter\" [actionButtonTemplates]='[finishButton]' fxFlex></nc-single-task>\n </div>\n</div>\n\n<ng-template #finishButton let-finish=\"finish\">\n <button *ngIf=\"showFinishButton\" (click)=\"finish()\" mat-stroked-button color=\"primary\" >\n {{ getFinishTitle() | translate | uppercase }}</button>\n</ng-template>\n\n" }]
}], ctorParameters: () => [{ type: i1.TaskViewService }, { type: i2.ActivatedRoute }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zaW5nbGUtdGFzay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3NpbXBsZS12aWV3cy9kZWZhdWx0LXNpbmdsZS10YXNrLXZpZXcvZGVmYXVsdC1zaW5nbGUtdGFzay12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3NpbXBsZS12aWV3cy9kZWZhdWx0LXNpbmdsZS10YXNrLXZpZXcvZGVmYXVsdC1zaW5nbGUtdGFzay12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFDSCwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUFFLHNCQUFzQixFQUNqRCxvQkFBb0IsRUFBRSx1QkFBdUIsRUFDN0MsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixlQUFlLEVBQUUsNkJBQTZCLEVBQzlDLG1CQUFtQixFQUNuQixtQkFBbUIsRUFBRSwyQ0FBMkMsRUFBRSwrQkFBK0IsRUFDakcsZUFBZSxFQUNmLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLGFBQWEsRUFDaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFpQzFDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwrQkFBK0I7SUFFL0UsZUFBZSxHQUFHLElBQUksQ0FBQztJQUN2QixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLGNBQWMsR0FBWSxJQUFJLENBQUM7SUFDL0IsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyx1QkFBdUIsR0FBYSxRQUFRLENBQUM7SUFDN0MsZ0JBQWdCLEdBQVksSUFBSSxDQUFDO0lBRWpDLFlBQVksZUFBZ0MsRUFDaEMsY0FBOEI7UUFDdEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sY0FBYztRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztJQUNsRyxDQUFDO3dHQWhCUSw4QkFBOEI7NEZBQTlCLDhCQUE4QixzREEzQjVCO1lBQ1AsZUFBZTtZQUNmLGFBQWE7WUFDYixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCO2dCQUNJLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixVQUFVLEVBQUUsK0JBQStCO2dCQUMzQyxJQUFJLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLDZCQUE2QixDQUFDLENBQUM7YUFDbkc7WUFDRCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUM7WUFDMUQsRUFBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFDO1lBQ3pFO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFVBQVUsRUFBRSwyQ0FBMkM7Z0JBQ3ZELElBQUksRUFBRSxDQUFDLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLDZCQUE2QixDQUFDO2FBQzNGO1lBQ0QsYUFBYTtZQUNiLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFDO1lBQy9ELFNBQVM7U0FDWixpRENwREwsOHpCQWFBOzs0RkR5Q2EsOEJBQThCO2tCQS9CMUMsU0FBUzsrQkFDSSw2QkFBNkIsYUFHNUI7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQjs0QkFDSSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLCtCQUErQjs0QkFDM0MsSUFBSSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO3lCQUNuRzt3QkFDRCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUM7d0JBQzFELEVBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBQzt3QkFDekU7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLDJDQUEyQzs0QkFDdkQsSUFBSSxFQUFFLENBQUMseUJBQXlCLEVBQUUsc0JBQXNCLEVBQUUsNkJBQTZCLENBQUM7eUJBQzNGO3dCQUNELGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBQzt3QkFDL0QsU0FBUztxQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0U2luZ2xlVGFza1ZpZXdDb21wb25lbnQsXG4gICAgQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgIEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksIEJhc2VBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgQ2hhbmdlZEZpZWxkc1NlcnZpY2UsIEZpbHRlckV4dHJhY3Rpb25TZXJ2aWNlLFxuICAgIEZpbmlzaFRhc2tTZXJ2aWNlLFxuICAgIEZyb250QWN0aW9uU2VydmljZSxcbiAgICBOQUVfQkFTRV9GSUxURVIsIE5BRV9OQVZJR0FUSU9OX0lURU1fVEFTS19EQVRBLFxuICAgIE5BRV9UQVNLX09QRVJBVElPTlMsXG4gICAgTkFFX1ZJRVdfSURfU0VHTUVOVCwgbmF2aWdhdGlvbkl0ZW1UYXNrQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSwgbmF2aWdhdGlvbkl0ZW1UYXNrRmlsdGVyRmFjdG9yeSxcbiAgICBSZWRpcmVjdFNlcnZpY2UsXG4gICAgU2VhcmNoU2VydmljZSxcbiAgICBTdWJqZWN0VGFza09wZXJhdGlvbnMsXG4gICAgVGFza0RhdGFTZXJ2aWNlLFxuICAgIFRhc2tFdmVudFNlcnZpY2UsXG4gICAgVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgVGFza1ZpZXdTZXJ2aWNlLFxuICAgIFZpZXdJZFNlcnZpY2Vcbn0gZnJvbSBcIkBuZXRncmlmL2NvbXBvbmVudHMtY29yZVwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1kZWZhdWx0LXNpbmdsZS10YXNrLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXNpbmdsZS10YXNrLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlZmF1bHQtc2luZ2xlLXRhc2stdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgICAgIFJlZGlyZWN0U2VydmljZSxcbiAgICAgICAgQ2hhbmdlZEZpZWxkc1NlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5BRV9CQVNFX0ZJTFRFUixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG5hdmlnYXRpb25JdGVtVGFza0ZpbHRlckZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbRmlsdGVyRXh0cmFjdGlvblNlcnZpY2UsIEFjdGl2YXRlZFJvdXRlLCBbbmV3IE9wdGlvbmFsKCksIE5BRV9OQVZJR0FUSU9OX0lURU1fVEFTS19EQVRBXV1cbiAgICAgICAgfSxcbiAgICAgICAge3Byb3ZpZGU6IE5BRV9WSUVXX0lEX1NFR01FTlQsIHVzZVZhbHVlOiAncHVibGljVGFza1ZpZXcnfSxcbiAgICAgICAge3Byb3ZpZGU6IEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksIHVzZUNsYXNzOiBBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5fSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogbmF2aWdhdGlvbkl0ZW1UYXNrQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LCBCYXNlQWxsb3dlZE5ldHNTZXJ2aWNlLCBOQUVfTkFWSUdBVElPTl9JVEVNX1RBU0tfREFUQV1cbiAgICAgICAgfSxcbiAgICAgICAgVmlld0lkU2VydmljZSxcbiAgICAgICAgVGFza0RhdGFTZXJ2aWNlLFxuICAgICAgICBGcm9udEFjdGlvblNlcnZpY2UsXG4gICAgICAgIEZpbmlzaFRhc2tTZXJ2aWNlLFxuICAgICAgICBUYXNrUmVxdWVzdFN0YXRlU2VydmljZSxcbiAgICAgICAgVGFza0V2ZW50U2VydmljZSxcbiAgICAgICAge3Byb3ZpZGU6IE5BRV9UQVNLX09QRVJBVElPTlMsIHVzZUNsYXNzOiBTdWJqZWN0VGFza09wZXJhdGlvbnN9LFxuICAgICAgICBBc3luY1BpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRTaW5nbGVUYXNrVmlld0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0U2luZ2xlVGFza1ZpZXdDb21wb25lbnQge1xuXG4gICAgaGlkZVBhbmVsSGVhZGVyID0gdHJ1ZTtcbiAgICBoaWRlQWN0aW9uUm93ID0gZmFsc2U7XG4gICAgc2hvd1BhZ2VIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHNob3dQYWdlRm9vdGVyOiBib29sZWFuID0gZmFsc2U7XG4gICAgYWN0aW9uUm93SnVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIgPSBcImNlbnRlclwiO1xuICAgIHNob3dGaW5pc2hCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IodGFza1ZpZXdTZXJ2aWNlOiBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKHRhc2tWaWV3U2VydmljZSwgYWN0aXZhdGVkUm91dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaW5pc2hUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMuZmluaXNoVGl0bGUgPT09ICcnIHx8IHRoaXMuZmluaXNoVGl0bGUpID8gdGhpcy5maW5pc2hUaXRsZSA6ICd0YXNrcy52aWV3LmZpbmlzaCc7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhc2stdGFiLWJhY2tncm91bmQgZnVsbC1oZWlnaHRcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIiBjbGFzcz1cImNvbnRlbnQtbWFyZ2luIGZ1bGwtaGVpZ2h0XCIgPlxuICAgICAgICA8bmMtc2luZ2xlLXRhc2sgW3Rhc2skXT1cInRhc2skXCIgW2xvYWRpbmckXT1cImxvYWRpbmckXCIgW3NlbGVjdGVkSGVhZGVycyRdPVwic2VsZWN0ZWRIZWFkZXJzJFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWN0aW9uUm93SnVzdGlmeUNvbnRlbnRdPVwiYWN0aW9uUm93SnVzdGlmeUNvbnRlbnRcIiAgW2hpZGVBY3Rpb25Sb3ddPVwiaGlkZUFjdGlvblJvd1wiIFtoaWRlUGFuZWxIZWFkZXJdPVwiaGlkZVBhbmVsSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UGFnZUhlYWRlcl09XCJzaG93UGFnZUhlYWRlclwiIFtzaG93UGFnZUZvb3Rlcl09XCJzaG93UGFnZUZvb3RlclwiIFthY3Rpb25CdXR0b25UZW1wbGF0ZXNdPSdbZmluaXNoQnV0dG9uXScgZnhGbGV4PjwvbmMtc2luZ2xlLXRhc2s+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNmaW5pc2hCdXR0b24gbGV0LWZpbmlzaD1cImZpbmlzaFwiPlxuICAgIDxidXR0b24gKm5nSWY9XCJzaG93RmluaXNoQnV0dG9uXCIgKGNsaWNrKT1cImZpbmlzaCgpXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiID5cbiAgICAgICAge3sgZ2V0RmluaXNoVGl0bGUoKSB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19