UNPKG

@netgrif/components

Version:

Netgrif Application Engine frontend Angular components

120 lines 22.2 kB
import { Component, Inject, Optional, ViewChild } from '@angular/core'; import { NAE_TAB_DATA, TaskViewService, AbstractTabbedTaskViewComponent, CategoryFactory, SearchService, NAE_BASE_FILTER, AllowedNetsService, AllowedNetsServiceFactory, ViewIdService, NAE_TASK_VIEW_CONFIGURATION, ChangedFieldsService, navigationItemTaskViewDefaultHeadersFactory, tabbedTaskViewConfigurationFactory, tabbedAllowedNetsServiceFactory, HeaderMode, NAE_DEFAULT_HEADERS, NAE_NAVIGATION_ITEM_TASK_DATA, OverflowService, } 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 "../../../../../search/search-component/search.component"; import * as i5 from "../../../../../header/header.component"; import * as i6 from "../../../../../view/task-view/task-panel-list/task-list.component"; export function baseFilterFactory(injectedTabData) { return { filter: injectedTabData.baseFilter }; } export class DefaultTabbedTaskViewComponent extends AbstractTabbedTaskViewComponent { taskHeaderComponent; initialSearchMode; showToggleButton; enableSearch; headersChangeable; headersMode; allowTableMode; defaultHeadersMode; showMoreMenu; constructor(taskViewService, injectedTabData) { super(taskViewService, injectedTabData); this.initialSearchMode = injectedTabData.searchTypeConfiguration.initialSearchMode; this.showToggleButton = injectedTabData.searchTypeConfiguration.showSearchToggleButton; this.enableSearch = injectedTabData.searchTypeConfiguration.initialSearchMode !== undefined; this.headersChangeable = injectedTabData.headersChangeable; this.headersMode = injectedTabData.headersMode ? injectedTabData.headersMode : []; this.allowTableMode = injectedTabData.allowTableMode; this.defaultHeadersMode = this.resolveHeaderMode(injectedTabData.defaultHeadersMode); this.showMoreMenu = injectedTabData.showMoreMenu; } ngAfterViewInit() { this.initializeHeader(this.taskHeaderComponent); this.taskHeaderComponent.changeHeadersMode(this.defaultHeadersMode, false); } isMenuOptionEnabled(option) { return this.headersMode.some(e => e === option); } resolveHeaderMode(mode) { switch (mode) { case 'sort': return HeaderMode.SORT; case 'edit': return HeaderMode.EDIT; default: return undefined; } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultTabbedTaskViewComponent, deps: [{ token: i1.TaskViewService }, { token: NAE_TAB_DATA }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultTabbedTaskViewComponent, selector: "nc-default-tabbed-task-view", providers: [ CategoryFactory, TaskViewService, SearchService, ViewIdService, ChangedFieldsService, OverflowService, { provide: NAE_BASE_FILTER, useFactory: baseFilterFactory, deps: [NAE_TAB_DATA] }, { provide: AllowedNetsService, useFactory: tabbedAllowedNetsServiceFactory, deps: [AllowedNetsServiceFactory, NAE_TAB_DATA] }, { provide: NAE_TASK_VIEW_CONFIGURATION, useFactory: tabbedTaskViewConfigurationFactory, deps: [NAE_TAB_DATA] }, { provide: NAE_DEFAULT_HEADERS, useFactory: navigationItemTaskViewDefaultHeadersFactory, deps: [[new Optional(), NAE_NAVIGATION_ITEM_TASK_DATA]] } ], viewQueries: [{ propertyName: "taskHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"task-tab-background full-height min-height-task-custom\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <div class=\"search-panel\" *ngIf=\"(enableSearch)\">\n <nc-search class=\"search-width\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\"></nc-search>\n </div>\n <nc-header #header type=\"task\" [hideHeaderMenu]=\"!headersChangeable\"\n [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showTableSection]=\"allowTableMode\" class=\"task-panel-padding-mini\"></nc-header>\n\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [allowMultiOpen]=\"false\"\n [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showMoreMenu]=\"showMoreMenu\"\n fxFlex></nc-task-list>\n </div>\n</div>\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:16px;padding:8px 0}.content-margin{margin:8px 24px 0}.task-panel-padding-mini{padding-top:16px;padding-left:1px;padding-right:1px}.full-height{height:calc(100% - 8px)}.search-width{width:100%}.min-height-task-custom{min-height:400px}@media screen and (max-width: 599.99px){.content-margin{margin:8px 12px 0}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i4.SearchComponent, selector: "nc-search" }, { kind: "component", type: i5.HeaderComponent, selector: "nc-header" }, { kind: "component", type: i6.TaskListComponent, selector: "nc-task-list" }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultTabbedTaskViewComponent, decorators: [{ type: Component, args: [{ selector: 'nc-default-tabbed-task-view', providers: [ CategoryFactory, TaskViewService, SearchService, ViewIdService, ChangedFieldsService, OverflowService, { provide: NAE_BASE_FILTER, useFactory: baseFilterFactory, deps: [NAE_TAB_DATA] }, { provide: AllowedNetsService, useFactory: tabbedAllowedNetsServiceFactory, deps: [AllowedNetsServiceFactory, NAE_TAB_DATA] }, { provide: NAE_TASK_VIEW_CONFIGURATION, useFactory: tabbedTaskViewConfigurationFactory, deps: [NAE_TAB_DATA] }, { provide: NAE_DEFAULT_HEADERS, useFactory: navigationItemTaskViewDefaultHeadersFactory, deps: [[new Optional(), NAE_NAVIGATION_ITEM_TASK_DATA]] } ], template: "<div class=\"task-tab-background full-height min-height-task-custom\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <div class=\"search-panel\" *ngIf=\"(enableSearch)\">\n <nc-search class=\"search-width\" [showSearchToggleButton]=\"showToggleButton\"\n [initialSearchMode]=\"initialSearchMode\"></nc-search>\n </div>\n <nc-header #header type=\"task\" [hideHeaderMenu]=\"!headersChangeable\"\n [showEditButton]=\"isMenuOptionEnabled('edit')\"\n [showSortButton]=\"isMenuOptionEnabled('sort')\" [showTableSection]=\"allowTableMode\" class=\"task-panel-padding-mini\"></nc-header>\n\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [allowMultiOpen]=\"false\"\n [selectedHeaders$]=\"selectedHeaders$\" [textEllipsis]=\"true\" [showMoreMenu]=\"showMoreMenu\"\n fxFlex></nc-task-list>\n </div>\n</div>\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.search-panel{margin-top:16px;padding:8px 0}.content-margin{margin:8px 24px 0}.task-panel-padding-mini{padding-top:16px;padding-left:1px;padding-right:1px}.full-height{height:calc(100% - 8px)}.search-width{width:100%}.min-height-task-custom{min-height:400px}@media screen and (max-width: 599.99px){.content-margin{margin:8px 12px 0}}\n"] }] }], ctorParameters: () => [{ type: i1.TaskViewService }, { type: undefined, decorators: [{ type: Inject, args: [NAE_TAB_DATA] }] }], propDecorators: { taskHeaderComponent: [{ type: ViewChild, args: ['header'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC10YWJiZWQtdGFzay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3RhYmJlZC9kZWZhdWx0LXRhYmJlZC10YXNrLXZpZXcvZGVmYXVsdC10YWJiZWQtdGFzay12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3RhYmJlZC9kZWZhdWx0LXRhYmJlZC10YXNrLXZpZXcvZGVmYXVsdC10YWJiZWQtdGFzay12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFDSCxZQUFZLEVBQ1osZUFBZSxFQUNmLCtCQUErQixFQUMvQixlQUFlLEVBQ2YsYUFBYSxFQUNiLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLDJDQUEyQyxFQUMzQyxrQ0FBa0MsRUFDbEMsK0JBQStCLEVBRS9CLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsNkJBQTZCLEVBQzdCLGVBQWUsR0FDbEIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFNbEMsTUFBTSxVQUFVLGlCQUFpQixDQUFDLGVBQXFFO0lBQ25HLE9BQU87UUFDSCxNQUFNLEVBQUUsZUFB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YSw4QkFBOEI7a0JBakMxQyxTQUFTOytCQUNJLDZCQUE2QixhQUc1Qjt3QkFDUCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZjs0QkFDSSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLGlCQUFpQjs0QkFDN0IsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO3lCQUN2Qjt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixVQUFVLEVBQUUsK0JBQStCOzRCQUMzQyxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUM7eUJBQ2xEO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFVBQVUsRUFBRSxrQ0FBa0M7NEJBQzlDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsVUFBVSxFQUFFLDJDQUEyQzs0QkFDdkQsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLDZCQUE2QixDQUFDLENBQUM7eUJBQzFEO3FCQUNKOzswQkFlOEMsTUFBTTsyQkFBQyxZQUFZO3lDQVh0QyxtQkFBbUI7c0JBQTlDLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBOQUVfVEFCX0RBVEEsXG4gICAgVGFza1ZpZXdTZXJ2aWNlLFxuICAgIEFic3RyYWN0VGFiYmVkVGFza1ZpZXdDb21wb25lbnQsXG4gICAgQ2F0ZWdvcnlGYWN0b3J5LFxuICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgTkFFX0JBU0VfRklMVEVSLFxuICAgIEFsbG93ZWROZXRzU2VydmljZSxcbiAgICBBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgIFZpZXdJZFNlcnZpY2UsXG4gICAgTkFFX1RBU0tfVklFV19DT05GSUdVUkFUSU9OLFxuICAgIENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgIG5hdmlnYXRpb25JdGVtVGFza1ZpZXdEZWZhdWx0SGVhZGVyc0ZhY3RvcnksXG4gICAgdGFiYmVkVGFza1ZpZXdDb25maWd1cmF0aW9uRmFjdG9yeSxcbiAgICB0YWJiZWRBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgIFNlYXJjaE1vZGUsXG4gICAgSGVhZGVyTW9kZSxcbiAgICBOQUVfREVGQVVMVF9IRUFERVJTLFxuICAgIE5BRV9OQVZJR0FUSU9OX0lURU1fVEFTS19EQVRBLFxuICAgIE92ZXJmbG93U2VydmljZSxcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7SGVhZGVyQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi8uLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEluamVjdGVkVGFiYmVkVGFza1ZpZXdEYXRhV2l0aE5hdmlnYXRpb25JdGVtVGFza0RhdGFcbn0gZnJvbSBcIi4uLy4uL21vZGVsL2luamVjdGVkLXRhYmJlZC10YXNrLXZpZXctZGF0YS13aXRoLW5hdmlnYXRpb24taXRlbS10YXNrLWRhdGFcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VGaWx0ZXJGYWN0b3J5KGluamVjdGVkVGFiRGF0YTogSW5qZWN0ZWRUYWJiZWRUYXNrVmlld0RhdGFXaXRoTmF2aWdhdGlvbkl0ZW1UYXNrRGF0YSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGZpbHRlcjogaW5qZWN0ZWRUYWJEYXRhLmJhc2VGaWx0ZXJcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLWRlZmF1bHQtdGFiYmVkLXRhc2stdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtdGFiYmVkLXRhc2stdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC10YWJiZWQtdGFzay12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIENhdGVnb3J5RmFjdG9yeSxcbiAgICAgICAgVGFza1ZpZXdTZXJ2aWNlLFxuICAgICAgICBTZWFyY2hTZXJ2aWNlLFxuICAgICAgICBWaWV3SWRTZXJ2aWNlLFxuICAgICAgICBDaGFuZ2VkRmllbGRzU2VydmljZSxcbiAgICAgICAgT3ZlcmZsb3dTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOQUVfQkFTRV9GSUxURVIsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBiYXNlRmlsdGVyRmFjdG9yeSxcbiAgICAgICAgICAgIGRlcHM6IFtOQUVfVEFCX0RBVEFdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFsbG93ZWROZXRzU2VydmljZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IHRhYmJlZEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSwgTkFFX1RBQl9EQVRBXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOQUVfVEFTS19WSUVXX0NPTkZJR1VSQVRJT04sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiB0YWJiZWRUYXNrVmlld0NvbmZpZ3VyYXRpb25GYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW05BRV9UQUJfREFUQV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX0RFRkFVTFRfSEVBREVSUyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IG5hdmlnYXRpb25JdGVtVGFza1ZpZXdEZWZhdWx0SGVhZGVyc0ZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBOQUVfTkFWSUdBVElPTl9JVEVNX1RBU0tfREFUQV1dXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRUYWJiZWRUYXNrVmlld0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VGFiYmVkVGFza1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIHB1YmxpYyB0YXNrSGVhZGVyQ29tcG9uZW50OiBIZWFkZXJDb21wb25lbnQ7XG5cbiAgICBpbml0aWFsU2VhcmNoTW9kZTogU2VhcmNoTW9kZTtcbiAgICBzaG93VG9nZ2xlQnV0dG9uOiBib29sZWFuO1xuICAgIGVuYWJsZVNlYXJjaDogYm9vbGVhbjtcbiAgICBoZWFkZXJzQ2hhbmdlYWJsZTogYm9vbGVhbjtcbiAgICBoZWFkZXJzTW9kZTogc3RyaW5nW107XG4gICAgYWxsb3dUYWJsZU1vZGU6IGJvb2xlYW47XG4gICAgZGVmYXVsdEhlYWRlcnNNb2RlOiBIZWFkZXJNb2RlO1xuICAgIHNob3dNb3JlTWVudTogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHRhc2tWaWV3U2VydmljZTogVGFza1ZpZXdTZXJ2aWNlLCBASW5qZWN0KE5BRV9UQUJfREFUQSkgaW5qZWN0ZWRUYWJEYXRhOiBJbmplY3RlZFRhYmJlZFRhc2tWaWV3RGF0YVdpdGhOYXZpZ2F0aW9uSXRlbVRhc2tEYXRhKSB7XG4gICAgICAgIHN1cGVyKHRhc2tWaWV3U2VydmljZSwgaW5qZWN0ZWRUYWJEYXRhKTtcblxuICAgICAgICB0aGlzLmluaXRpYWxTZWFyY2hNb2RlID0gaW5qZWN0ZWRUYWJEYXRhLnNlYXJjaFR5cGVDb25maWd1cmF0aW9uLmluaXRpYWxTZWFyY2hNb2RlO1xuICAgICAgICB0aGlzLnNob3dUb2dnbGVCdXR0b24gPSBpbmplY3RlZFRhYkRhdGEuc2VhcmNoVHlwZUNvbmZpZ3VyYXRpb24uc2hvd1NlYXJjaFRvZ2dsZUJ1dHRvbjtcbiAgICAgICAgdGhpcy5lbmFibGVTZWFyY2ggPSBpbmplY3RlZFRhYkRhdGEuc2VhcmNoVHlwZUNvbmZpZ3VyYXRpb24uaW5pdGlhbFNlYXJjaE1vZGUgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5oZWFkZXJzQ2hhbmdlYWJsZSA9IGluamVjdGVkVGFiRGF0YS5oZWFkZXJzQ2hhbmdlYWJsZTtcbiAgICAgICAgdGhpcy5oZWFkZXJzTW9kZSA9IGluamVjdGVkVGFiRGF0YS5oZWFkZXJzTW9kZSA/IGluamVjdGVkVGFiRGF0YS5oZWFkZXJzTW9kZSA6IFtdO1xuICAgICAgICB0aGlzLmFsbG93VGFibGVNb2RlID0gaW5qZWN0ZWRUYWJEYXRhLmFsbG93VGFibGVNb2RlO1xuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzTW9kZSA9IHRoaXMucmVzb2x2ZUhlYWRlck1vZGUoaW5qZWN0ZWRUYWJEYXRhLmRlZmF1bHRIZWFkZXJzTW9kZSk7XG4gICAgICAgIHRoaXMuc2hvd01vcmVNZW51ID0gaW5qZWN0ZWRUYWJEYXRhLnNob3dNb3JlTWVudTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUhlYWRlcih0aGlzLnRhc2tIZWFkZXJDb21wb25lbnQpO1xuICAgICAgICB0aGlzLnRhc2tIZWFkZXJDb21wb25lbnQuY2hhbmdlSGVhZGVyc01vZGUodGhpcy5kZWZhdWx0SGVhZGVyc01vZGUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc01lbnVPcHRpb25FbmFibGVkKG9wdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhlYWRlcnNNb2RlLnNvbWUoZSA9PiBlID09PSBvcHRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZUhlYWRlck1vZGUobW9kZTogc3RyaW5nKTogSGVhZGVyTW9kZSB7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhlYWRlck1vZGUuU09SVDtcbiAgICAgICAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBIZWFkZXJNb2RlLkVESVQ7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFzay10YWItYmFja2dyb3VuZCBmdWxsLWhlaWdodCBtaW4taGVpZ2h0LXRhc2stY3VzdG9tXCI+XG4gICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBzdHJldGNoXCIgY2xhc3M9XCJjb250ZW50LW1hcmdpbiBmdWxsLWhlaWdodFwiID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1wYW5lbFwiICpuZ0lmPVwiKGVuYWJsZVNlYXJjaClcIj5cbiAgICAgICAgICAgIDxuYy1zZWFyY2ggY2xhc3M9XCJzZWFyY2gtd2lkdGhcIiBbc2hvd1NlYXJjaFRvZ2dsZUJ1dHRvbl09XCJzaG93VG9nZ2xlQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2luaXRpYWxTZWFyY2hNb2RlXT1cImluaXRpYWxTZWFyY2hNb2RlXCI+PC9uYy1zZWFyY2g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmMtaGVhZGVyICNoZWFkZXIgdHlwZT1cInRhc2tcIiBbaGlkZUhlYWRlck1lbnVdPVwiIWhlYWRlcnNDaGFuZ2VhYmxlXCJcbiAgICAgICAgICAgICAgICAgICBbc2hvd0VkaXRCdXR0b25dPVwiaXNNZW51T3B0aW9uRW5hYmxlZCgnZWRpdCcpXCJcbiAgICAgICAgICAgICAgICAgICBbc2hvd1NvcnRCdXR0b25dPVwiaXNNZW51T3B0aW9uRW5hYmxlZCgnc29ydCcpXCIgW3Nob3dUYWJsZVNlY3Rpb25dPVwiYWxsb3dUYWJsZU1vZGVcIiBjbGFzcz1cInRhc2stcGFuZWwtcGFkZGluZy1taW5pXCI+PC9uYy1oZWFkZXI+XG5cbiAgICAgICAgPG5jLXRhc2stbGlzdCBbdGFza3MkXT1cInRhc2tzJFwiIFtsb2FkaW5nJF09XCJsb2FkaW5nJFwiIFthbGxvd011bHRpT3Blbl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkSGVhZGVycyRdPVwic2VsZWN0ZWRIZWFkZXJzJFwiIFt0ZXh0RWxsaXBzaXNdPVwidHJ1ZVwiIFtzaG93TW9yZU1lbnVdPVwic2hvd01vcmVNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICBmeEZsZXg+PC9uYy10YXNrLWxpc3Q+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==