UNPKG

@netgrif/components

Version:

Netgrif Application Engine frontend Angular components

103 lines 18.9 kB
import { Component, Inject, ViewChild } from '@angular/core'; import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { AbstractCaseViewComponent, AllowedNetsService, AllowedNetsServiceFactory, CaseViewService, getImmediateData, NAE_BASE_FILTER, NAE_DEFAULT_HEADERS, SearchService, SimpleFilter, UserFilterConstants } from '@netgrif/components-core'; import { localAllowedNetsFactory } from '../../side-menu/content-components/load-filter/load-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/common"; import * as i4 from "@ngbracket/ngx-layout"; import * as i5 from "@ngbracket/ngx-layout/extended"; 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"; export function loadBaseFilterFactory(dialogControl) { if (!dialogControl) { throw new Error('NewFilterCaseId was not provided in the side menu injection data'); } const injectedData = dialogControl; return { filter: injectedData.filter }; } export class LoadFilterDialogComponent extends AbstractCaseViewComponent { _dialogRef; _data; _log; _injectedData; caseHeaderComponent; constructor(_dialogRef, _data, _log, caseViewService) { super(caseViewService); this._dialogRef = _dialogRef; this._data = _data; this._log = _log; if (this._data) { this._injectedData = this._data; } } handleCaseClick(clickedCase) { const immediate = getImmediateData(clickedCase, UserFilterConstants.FILTER_FIELD_ID); this._dialogRef.close({ opened: false, message: 'Filter selected', data: { allowedNets: immediate.allowedNets, filterMetadata: immediate.filterMetadata, originViewId: getImmediateData(clickedCase, UserFilterConstants.ORIGIN_VIEW_ID_FIELD_ID).value, filterCase: clickedCase, filterCaseId: clickedCase.stringId, filter: new SimpleFilter(clickedCase.stringId, immediate.filterMetadata.filterType, { query: immediate.value }, clickedCase.title) } }); } ngAfterViewInit() { this.initializeHeader(this.caseHeaderComponent); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LoadFilterDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.LoggerService }, { token: i2.CaseViewService }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LoadFilterDialogComponent, selector: "nc-load-filter-dialog", providers: [ CaseViewService, SearchService, { provide: NAE_BASE_FILTER, useFactory: loadBaseFilterFactory, deps: [MAT_DIALOG_DATA] }, { provide: AllowedNetsService, useFactory: localAllowedNetsFactory, deps: [AllowedNetsServiceFactory] }, { provide: NAE_DEFAULT_HEADERS, useValue: ['meta-title', `${UserFilterConstants.FILTER_NET_IDENTIFIER}-${UserFilterConstants.FILTER_FIELD_ID}`] } ], viewQueries: [{ propertyName: "caseHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'search.tooltip.load' | translate }}\n</div>\n<div mat-dialog-content class=\"load-filter-container side-menu-root\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"2\" [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\n", styles: [".load-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px;margin:0}.case-header-padding{padding-top:4px}.virtual-scroll-list-padding{padding-right:1px;margin-left:-1px}\n"], dependencies: [{ kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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: i5.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: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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: LoadFilterDialogComponent, decorators: [{ type: Component, args: [{ selector: 'nc-load-filter-dialog', providers: [ CaseViewService, SearchService, { provide: NAE_BASE_FILTER, useFactory: loadBaseFilterFactory, deps: [MAT_DIALOG_DATA] }, { provide: AllowedNetsService, useFactory: localAllowedNetsFactory, deps: [AllowedNetsServiceFactory] }, { provide: NAE_DEFAULT_HEADERS, useValue: ['meta-title', `${UserFilterConstants.FILTER_NET_IDENTIFIER}-${UserFilterConstants.FILTER_FIELD_ID}`] } ], template: "<div class=\"mat-dialog-title\" fxLayout=\"column\" fxLayoutAlign=\"center none\">\n {{ 'search.tooltip.load' | translate }}\n</div>\n<div mat-dialog-content class=\"load-filter-container side-menu-root\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <nc-header #header [type]=\"headerType\" [maxHeaderColumns]=\"2\" [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\n", styles: [".load-filter-container{height:calc(100% - 64px);padding-left:8px;padding-right:8px;margin:0}.case-header-padding{padding-top:4px}.virtual-scroll-list-padding{padding-right:1px;margin-left:-1px}\n"] }] }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA] }] }, { type: i2.LoggerService }, { type: i2.CaseViewService }], propDecorators: { caseHeaderComponent: [{ type: ViewChild, args: ['header'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9sb2FkLWZpbHRlci1kaWFsb2cvbG9hZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RpYWxvZy9sb2FkLWZpbHRlci1kaWFsb2cvbG9hZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFDSCx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFFeEUsZUFBZSxFQUNmLGdCQUFnQixFQUdoQixlQUFlLEVBQUUsbUJBQW1CLEVBRXBDLGFBQWEsRUFDYixZQUFZLEVBQ1osbUJBQW1CLEVBQ3RCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0VBQXNFLENBQUM7Ozs7Ozs7Ozs7QUFJN0csTUFBTSxVQUFVLHFCQUFxQixDQUFDLGFBQXNDO0lBQ3hFLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0tBQ3ZGO0lBQ0QsTUFBTSxZQUFZLEdBQUcsYUFBd0MsQ0FBQztJQUU5RCxPQUFPLEVBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUMsQ0FBQztBQUN6QyxDQUFDO0FBeUJELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx5QkFBeUI7SUFLOUM7SUFDeUI7SUFDekI7SUFM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IEluamVjdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q2FzZVZpZXdDb21wb25lbnQsIEFsbG93ZWROZXRzU2VydmljZSwgQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSwgQmFzZUZpbHRlcixcbiAgICBDYXNlLFxuICAgIENhc2VWaWV3U2VydmljZSxcbiAgICBnZXRJbW1lZGlhdGVEYXRhLFxuICAgIExvYWRGaWx0ZXJJbmplY3Rpb25EYXRhLFxuICAgIExvZ2dlclNlcnZpY2UsXG4gICAgTkFFX0JBU0VfRklMVEVSLCBOQUVfREVGQVVMVF9IRUFERVJTLFxuICAgIFNhdmVkRmlsdGVyTWV0YWRhdGEsXG4gICAgU2VhcmNoU2VydmljZSxcbiAgICBTaW1wbGVGaWx0ZXIsXG4gICAgVXNlckZpbHRlckNvbnN0YW50c1xufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtsb2NhbEFsbG93ZWROZXRzRmFjdG9yeX0gZnJvbSAnLi4vLi4vc2lkZS1tZW51L2NvbnRlbnQtY29tcG9uZW50cy9sb2FkLWZpbHRlci9sb2FkLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtIZWFkZXJDb21wb25lbnR9IGZyb20gJy4uLy4uL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcblxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEJhc2VGaWx0ZXJGYWN0b3J5KGRpYWxvZ0NvbnRyb2w6IExvYWRGaWx0ZXJJbmplY3Rpb25EYXRhKTogQmFzZUZpbHRlciB7XG4gICAgaWYgKCFkaWFsb2dDb250cm9sKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTmV3RmlsdGVyQ2FzZUlkIHdhcyBub3QgcHJvdmlkZWQgaW4gdGhlIHNpZGUgbWVudSBpbmplY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCBpbmplY3RlZERhdGEgPSBkaWFsb2dDb250cm9sIGFzIExvYWRGaWx0ZXJJbmplY3Rpb25EYXRhO1xuXG4gICAgcmV0dXJuIHtmaWx0ZXI6IGluamVjdGVkRGF0YS5maWx0ZXJ9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jLWxvYWQtZmlsdGVyLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvYWQtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9hZC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIENhc2VWaWV3U2VydmljZSxcbiAgICAgICAgU2VhcmNoU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX0JBU0VfRklMVEVSLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogbG9hZEJhc2VGaWx0ZXJGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW01BVF9ESUFMT0dfREFUQV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQWxsb3dlZE5ldHNTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogbG9jYWxBbGxvd2VkTmV0c0ZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkFFX0RFRkFVTFRfSEVBREVSUyxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBbJ21ldGEtdGl0bGUnLCBgJHtVc2VyRmlsdGVyQ29uc3RhbnRzLkZJTFRFUl9ORVRfSURFTlRJRklFUn0tJHtVc2VyRmlsdGVyQ29uc3RhbnRzLkZJTFRFUl9GSUVMRF9JRH1gXVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkRmlsdGVyRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDYXNlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gICAgcHJvdGVjdGVkIF9pbmplY3RlZERhdGE6IExvYWRGaWx0ZXJJbmplY3Rpb25EYXRhO1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIHB1YmxpYyBjYXNlSGVhZGVyQ29tcG9uZW50OiBIZWFkZXJDb21wb25lbnQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPExvYWRGaWx0ZXJEaWFsb2dDb21wb25lbnQ+LFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcm90ZWN0ZWQgX2RhdGE6IExvYWRGaWx0ZXJJbmplY3Rpb25EYXRhLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGNhc2VWaWV3U2VydmljZTogQ2FzZVZpZXdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGNhc2VWaWV3U2VydmljZSk7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmplY3RlZERhdGEgPSB0aGlzLl9kYXRhIGFzIExvYWRGaWx0ZXJJbmplY3Rpb25EYXRhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQ2FzZUNsaWNrKGNsaWNrZWRDYXNlOiBDYXNlKSB7XG4gICAgICAgIGNvbnN0IGltbWVkaWF0ZSA9IGdldEltbWVkaWF0ZURhdGEoY2xpY2tlZENhc2UsIFVzZXJGaWx0ZXJDb25zdGFudHMuRklMVEVSX0ZJRUxEX0lEKTtcbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgICAgICAgIG9wZW5lZDogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiAnRmlsdGVyIHNlbGVjdGVkJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhbGxvd2VkTmV0czogaW1tZWRpYXRlLmFsbG93ZWROZXRzLFxuICAgICAgICAgICAgICAgIGZpbHRlck1ldGFkYXRhOiBpbW1lZGlhdGUuZmlsdGVyTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgb3JpZ2luVmlld0lkOiBnZXRJbW1lZGlhdGVEYXRhKGNsaWNrZWRDYXNlLCBVc2VyRmlsdGVyQ29uc3RhbnRzLk9SSUdJTl9WSUVXX0lEX0ZJRUxEX0lEKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJDYXNlOiBjbGlja2VkQ2FzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJDYXNlSWQ6IGNsaWNrZWRDYXNlLnN0cmluZ0lkLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogbmV3IFNpbXBsZUZpbHRlcihjbGlja2VkQ2FzZS5zdHJpbmdJZCwgaW1tZWRpYXRlLmZpbHRlck1ldGFkYXRhLmZpbHRlclR5cGUsIHtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IGltbWVkaWF0ZS52YWx1ZVxuICAgICAgICAgICAgICAgIH0sIGNsaWNrZWRDYXNlLnRpdGxlKVxuICAgICAgICAgICAgfSBhcyBTYXZlZEZpbHRlck1ldGFkYXRhXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplSGVhZGVyKHRoaXMuY2FzZUhlYWRlckNvbXBvbmVudCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGVcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgbm9uZVwiPlxuICAgIHt7ICdzZWFyY2gudG9vbHRpcC5sb2FkJyB8IHRyYW5zbGF0ZSAgfX1cbjwvZGl2PlxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJsb2FkLWZpbHRlci1jb250YWluZXIgc2lkZS1tZW51LXJvb3RcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBzdHJldGNoXCI+XG4gICAgPG5jLWhlYWRlciAjaGVhZGVyIFt0eXBlXT1cImhlYWRlclR5cGVcIiBbbWF4SGVhZGVyQ29sdW1uc109XCIyXCIgW3Jlc3BvbnNpdmVIZWFkZXJzXT1cInRydWVcIiBbaGlkZUhlYWRlck1lbnVdPVwidHJ1ZVwiIGNsYXNzPVwiY2FzZS1oZWFkZXItcGFkZGluZ1wiIFtuZ1N0eWxlXT1cInsnd2lkdGgnOiBnZXRXaWR0aCgpfVwiPjwvbmMtaGVhZGVyPlxuICAgIDxuYy1jYXNlLWxpc3QgW3NlbGVjdGVkSGVhZGVycyRdPVwic2VsZWN0ZWRIZWFkZXJzJFwiIFtzaG93RGVsZXRlTWVudV09XCJmYWxzZVwiIFt3aWR0aF09XCJnZXRXaWR0aCgpXCJcbiAgICAgICAgICAgICAgICAgIChjYXNlQ2xpY2spPVwiaGFuZGxlQ2FzZUNsaWNrKCRldmVudClcIiBbcmVzcG9uc2l2ZUJvZHldPVwidHJ1ZVwiIGZ4RmxleCBbdGV4dEVsbGlwc2lzXT1cInRydWVcIiBjbGFzcz1cInZpcnR1YWwtc2Nyb2xsLWxpc3QtcGFkZGluZ1wiPjwvbmMtY2FzZS1saXN0PlxuPC9kaXY+XG5cbiJdfQ==