@netgrif/components
Version:
Netgrif Application Engine frontend Angular components
94 lines • 19 kB
JavaScript
import { Component, Inject, ViewChild } from '@angular/core';
import { AllowedNetsService, AllowedNetsServiceFactory, NAE_BASE_FILTER, SearchService, SimpleFilter, TaskViewService, AbstractSingleTaskViewComponent, TaskEvent } from '@netgrif/components-core';
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
import { localAllowedNetsFactory } from "../../side-menu/content-components/save-filter/save-filter.component";
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/dialog";
import * as i2 from "@netgrif/components-core";
import * as i3 from "@angular/router";
import * as i4 from "@ngbracket/ngx-layout";
import * as i5 from "../../header/header.component";
import * as i6 from "../../panel/task-panel-single/single-task.component";
import * as i7 from "@angular/common";
export function taskViewFilterFactory(dialogControl) {
if (!dialogControl) {
throw new Error('NewFilterCaseId was not provided in the sidemenu injectio data');
}
const injectedData = dialogControl;
return {
filter: SimpleFilter.fromTaskQuery({
stringId: injectedData.taskIds
})
};
}
export class TaskViewDialogComponent extends AbstractSingleTaskViewComponent {
_dialogRef;
_data;
_userFilterService;
_log;
taskHeaderComponent;
_injectedData;
constructor(_dialogRef, _data, _userFilterService, _log, taskViewService, _activatedRoute) {
super(taskViewService, _activatedRoute);
this._dialogRef = _dialogRef;
this._data = _data;
this._userFilterService = _userFilterService;
this._log = _log;
if (this._data) {
this._injectedData = this._data;
}
}
ngAfterViewInit() {
this.initializeHeader(this.taskHeaderComponent);
}
processTaskEvents(notification) {
if (!notification.success) {
return;
}
if (notification.event === TaskEvent.FINISH) {
this._dialogRef.close({ opened: false, message: 'Task finished' });
}
if (notification.event === TaskEvent.CANCEL) {
this._dialogRef.close({ opened: false, message: 'Task canceled' });
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskViewDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.UserFiltersService }, { token: i2.LoggerService }, { token: i2.TaskViewService }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskViewDialogComponent, selector: "nc-task-view-dialog", providers: [
TaskViewService,
SearchService,
{
provide: NAE_BASE_FILTER,
useFactory: taskViewFilterFactory,
deps: [MAT_DIALOG_DATA]
},
{
provide: AllowedNetsService,
useFactory: localAllowedNetsFactory,
deps: [AllowedNetsServiceFactory]
}
], viewQueries: [{ propertyName: "taskHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\" *nccLet=\"(task$ | async) as taskPanelData\">\n {{!!taskPanelData?.task?.title ? taskPanelData?.task?.title : taskPanelData?.task?.transitionId}}\n</div>\n<div mat-dialog-content class=\"task-view-container side-menu-root\">\n <nc-header [hidden]='true' #header type=\"task\" class=\"task-panel-padding-mini\"></nc-header>\n <nc-single-task class=\"virtual-scroll-padding\" [task$]=\"task$\"\n [loading$]=\"loading$\"\n [selectedHeaders$]=\"selectedHeaders$\"\n (taskEvent)=\"processTaskEvents($event)\"\n [actionRowJustifyContent]='\"center\"'\n [preventCollapse]=\"preventCollapse\"\n [showPageHeader]=\"false\"\n [showPageFooter]=\"false\"\n fxFlex>\n </nc-single-task>\n</div>\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:8px}.content-margin{margin:0 8px}.task-panel-padding-mini{padding-bottom:8px;padding-top:8px}.search-width{width:100%}.full-height{height:100%}.public-button{height:36px;width:200px}.public-button-padding{padding:16px;flex-direction:column;display:flex;align-items:center}.single-page-task{width:85%!important;padding-bottom:25px}.logoimg{height:120px;outline:none!important;cursor:pointer}.upper-card{margin-bottom:10px}.upper-card-title{display:flex;align-items:center;flex-direction:column}.upper-divider{border-top-width:20px;border-top-color:#023b7e;border-radius:4px;margin-bottom:10px}.footer-custom{border-radius:4px;margin-bottom:10px}.task-view-container{height:calc(100% - 64px)!important;padding-left:8px!important;padding-right:8px!important;margin:0}.virtual-scroll-padding{padding-right:4px}\n"], dependencies: [{ 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: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.HeaderComponent, selector: "nc-header" }, { kind: "component", type: i6.SingleTaskComponent, selector: "nc-single-task" }, { kind: "directive", type: i2.LetDirective, selector: "[nccLet]", inputs: ["nccLet"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskViewDialogComponent, decorators: [{
type: Component,
args: [{ selector: 'nc-task-view-dialog', providers: [
TaskViewService,
SearchService,
{
provide: NAE_BASE_FILTER,
useFactory: taskViewFilterFactory,
deps: [MAT_DIALOG_DATA]
},
{
provide: AllowedNetsService,
useFactory: localAllowedNetsFactory,
deps: [AllowedNetsServiceFactory]
}
], template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\" *nccLet=\"(task$ | async) as taskPanelData\">\n {{!!taskPanelData?.task?.title ? taskPanelData?.task?.title : taskPanelData?.task?.transitionId}}\n</div>\n<div mat-dialog-content class=\"task-view-container side-menu-root\">\n <nc-header [hidden]='true' #header type=\"task\" class=\"task-panel-padding-mini\"></nc-header>\n <nc-single-task class=\"virtual-scroll-padding\" [task$]=\"task$\"\n [loading$]=\"loading$\"\n [selectedHeaders$]=\"selectedHeaders$\"\n (taskEvent)=\"processTaskEvents($event)\"\n [actionRowJustifyContent]='\"center\"'\n [preventCollapse]=\"preventCollapse\"\n [showPageHeader]=\"false\"\n [showPageFooter]=\"false\"\n fxFlex>\n </nc-single-task>\n</div>\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:8px}.content-margin{margin:0 8px}.task-panel-padding-mini{padding-bottom:8px;padding-top:8px}.search-width{width:100%}.full-height{height:100%}.public-button{height:36px;width:200px}.public-button-padding{padding:16px;flex-direction:column;display:flex;align-items:center}.single-page-task{width:85%!important;padding-bottom:25px}.logoimg{height:120px;outline:none!important;cursor:pointer}.upper-card{margin-bottom:10px}.upper-card-title{display:flex;align-items:center;flex-direction:column}.upper-divider{border-top-width:20px;border-top-color:#023b7e;border-radius:4px;margin-bottom:10px}.footer-custom{border-radius:4px;margin-bottom:10px}.task-view-container{height:calc(100% - 64px)!important;padding-left:8px!important;padding-right:8px!important;margin:0}.virtual-scroll-padding{padding-right:4px}\n"] }]
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
type: Inject,
args: [MAT_DIALOG_DATA]
}] }, { type: i2.UserFiltersService }, { type: i2.LoggerService }, { type: i2.TaskViewService }, { type: i3.ActivatedRoute }], propDecorators: { taskHeaderComponent: [{
type: ViewChild,
args: ['header']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay12aWV3LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9kaWFsb2cvdGFzay12aWV3LWRpYWxvZy90YXNrLXZpZXctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy90YXNrLXZpZXctZGlhbG9nL3Rhc2stdmlldy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUd6QixlQUFlLEVBQ2YsYUFBYSxFQUNiLFlBQVksRUFFWixlQUFlLEVBR2YsK0JBQStCLEVBQy9CLFNBQVMsRUFDWixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQzs7Ozs7Ozs7O0FBSTdHLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxhQUFvQztJQUN0RSxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztLQUNyRjtJQUNELE1BQU0sWUFBWSxHQUFHLGFBQXNDLENBQUM7SUFFNUQsT0FBTztRQUNILE1BQU0sRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDO1lBQy9CLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTztTQUNqQyxDQUFDO0tBQ0wsQ0FBQztBQUNOLENBQUM7QUFxQkQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLCtCQUErQjtJQUtsRDtJQUN5QjtJQUN6QjtJQUNBO0lBTk0sbUJBQW1CLENBQWtCO0lBQ3ZELGFBQWEsQ0FBd0I7SUFFL0MsWUFBc0IsVUFBaUQsRUFDeEIsS0FBNEIsRUFDckQsa0JBQXNDLEVBQ3RDLElBQW1CLEVBQzdCLGVBQWdDLEVBQ2hDLGVBQWdDO1FBQ3hDLEtBQUssQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFOdEIsZUFBVSxHQUFWLFVBQVUsQ0FBdUM7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDckQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxTQUFJLEdBQUosSUFBSSxDQUFlO1FBSXJDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQThCLENBQUM7U0FDNUQ7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0saUJBQWlCLENBQUMsWUFBbUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBRUQsSUFBSSxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0wsQ0FBQzt3R0FqQ1EsdUJBQXVCLDhDQU1aLGVBQWU7NEZBTjFCLHVCQUF1Qiw4Q0FmckI7WUFDUCxlQUFlO1lBQ2YsYUFBYTtZQUNiO2dCQUNJLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixVQUFVLEVBQUUscUJBQXFCO2dCQUNqQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDMUI7WUFDRDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixVQUFVLEVBQUUsdUJBQXVCO2dCQUNuQyxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQzthQUNwQztTQUNKLGdLQ25ETCw4OEJBZ0JBOzs0RkRxQ2EsdUJBQXVCO2tCQW5CbkMsU0FBUzsrQkFDSSxxQkFBcUIsYUFHcEI7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiOzRCQUNJLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUscUJBQXFCOzRCQUNqQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7eUJBQzFCO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDO3lCQUNwQztxQkFDSjs7MEJBUVksTUFBTTsyQkFBQyxlQUFlO2lLQUpQLG1CQUFtQjtzQkFBOUMsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgIEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksXG4gICAgQmFzZUZpbHRlcixcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIE5BRV9CQVNFX0ZJTFRFUixcbiAgICBTZWFyY2hTZXJ2aWNlLFxuICAgIFNpbXBsZUZpbHRlcixcbiAgICBUYXNrRXZlbnROb3RpZmljYXRpb24sXG4gICAgVGFza1ZpZXdTZXJ2aWNlLFxuICAgIFRhc2tWaWV3SW5qZWN0aW9uRGF0YSxcbiAgICBVc2VyRmlsdGVyc1NlcnZpY2UsXG4gICAgQWJzdHJhY3RTaW5nbGVUYXNrVmlld0NvbXBvbmVudCxcbiAgICBUYXNrRXZlbnRcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWZ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7bG9jYWxBbGxvd2VkTmV0c0ZhY3Rvcnl9IGZyb20gXCIuLi8uLi9zaWRlLW1lbnUvY29udGVudC1jb21wb25lbnRzL3NhdmUtZmlsdGVyL3NhdmUtZmlsdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtIZWFkZXJDb21wb25lbnR9IGZyb20gXCIuLi8uLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFza1ZpZXdGaWx0ZXJGYWN0b3J5KGRpYWxvZ0NvbnRyb2w6IFRhc2tWaWV3SW5qZWN0aW9uRGF0YSk6IEJhc2VGaWx0ZXIge1xuICAgIGlmICghZGlhbG9nQ29udHJvbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ld0ZpbHRlckNhc2VJZCB3YXMgbm90IHByb3ZpZGVkIGluIHRoZSBzaWRlbWVudSBpbmplY3RpbyBkYXRhJyk7XG4gICAgfVxuICAgIGNvbnN0IGluamVjdGVkRGF0YSA9IGRpYWxvZ0NvbnRyb2wgYXMgVGFza1ZpZXdJbmplY3Rpb25EYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZmlsdGVyOiBTaW1wbGVGaWx0ZXIuZnJvbVRhc2tRdWVyeSh7XG4gICAgICAgICAgICBzdHJpbmdJZDogaW5qZWN0ZWREYXRhLnRhc2tJZHNcbiAgICAgICAgfSlcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLXRhc2stdmlldy1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YXNrLXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLXZpZXctZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFRhc2tWaWV3U2VydmljZSxcbiAgICAgICAgU2VhcmNoU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX0JBU0VfRklMVEVSLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogdGFza1ZpZXdGaWx0ZXJGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW01BVF9ESUFMT0dfREFUQV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogbG9jYWxBbGxvd2VkTmV0c0ZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeV1cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFza1ZpZXdEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFNpbmdsZVRhc2tWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBAVmlld0NoaWxkKCdoZWFkZXInKSBwdWJsaWMgdGFza0hlYWRlckNvbXBvbmVudDogSGVhZGVyQ29tcG9uZW50O1xuICAgIHByb3RlY3RlZCBfaW5qZWN0ZWREYXRhOiBUYXNrVmlld0luamVjdGlvbkRhdGE7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRhc2tWaWV3RGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJvdGVjdGVkIF9kYXRhOiBUYXNrVmlld0luamVjdGlvbkRhdGEsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyRmlsdGVyU2VydmljZTogVXNlckZpbHRlcnNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHRhc2tWaWV3U2VydmljZTogVGFza1ZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9hY3RpdmF0ZWRSb3V0ZT86IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKHRhc2tWaWV3U2VydmljZSwgX2FjdGl2YXRlZFJvdXRlKTtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuX2luamVjdGVkRGF0YSA9IHRoaXMuX2RhdGEgYXMgVGFza1ZpZXdJbmplY3Rpb25EYXRhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVIZWFkZXIodGhpcy50YXNrSGVhZGVyQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvY2Vzc1Rhc2tFdmVudHMobm90aWZpY2F0aW9uOiBUYXNrRXZlbnROb3RpZmljYXRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFub3RpZmljYXRpb24uc3VjY2Vzcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi5ldmVudCA9PT0gVGFza0V2ZW50LkZJTklTSCkge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHtvcGVuZWQ6IGZhbHNlLCBtZXNzYWdlOiAnVGFzayBmaW5pc2hlZCd9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub3RpZmljYXRpb24uZXZlbnQgPT09IFRhc2tFdmVudC5DQU5DRUwpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh7b3BlbmVkOiBmYWxzZSwgbWVzc2FnZTogJ1Rhc2sgY2FuY2VsZWQnfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWF0LWRpYWxvZy10aXRsZVwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBub25lXCIgKm5jY0xldD1cIih0YXNrJCB8IGFzeW5jKSBhcyB0YXNrUGFuZWxEYXRhXCI+XG4gICAge3shIXRhc2tQYW5lbERhdGE/LnRhc2s/LnRpdGxlID8gdGFza1BhbmVsRGF0YT8udGFzaz8udGl0bGUgOiB0YXNrUGFuZWxEYXRhPy50YXNrPy50cmFuc2l0aW9uSWR9fVxuPC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cInRhc2stdmlldy1jb250YWluZXIgc2lkZS1tZW51LXJvb3RcIj5cbiAgICAgICAgPG5jLWhlYWRlciBbaGlkZGVuXT0ndHJ1ZScgI2hlYWRlciB0eXBlPVwidGFza1wiIGNsYXNzPVwidGFzay1wYW5lbC1wYWRkaW5nLW1pbmlcIj48L25jLWhlYWRlcj5cbiAgICAgICAgPG5jLXNpbmdsZS10YXNrIGNsYXNzPVwidmlydHVhbC1zY3JvbGwtcGFkZGluZ1wiIFt0YXNrJF09XCJ0YXNrJFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbG9hZGluZyRdPVwibG9hZGluZyRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkSGVhZGVycyRdPVwic2VsZWN0ZWRIZWFkZXJzJFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAodGFza0V2ZW50KT1cInByb2Nlc3NUYXNrRXZlbnRzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGlvblJvd0p1c3RpZnlDb250ZW50XT0nXCJjZW50ZXJcIidcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcmV2ZW50Q29sbGFwc2VdPVwicHJldmVudENvbGxhcHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UGFnZUhlYWRlcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1BhZ2VGb290ZXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZnhGbGV4PlxuICAgICAgICA8L25jLXNpbmdsZS10YXNrPlxuPC9kaXY+XG4iXX0=