@netgrif/components
Version:
Netgrif Application Engine frontend Angular components
34 lines • 17.5 kB
JavaScript
import { Component } from '@angular/core';
import { AbstractEditModeComponent } from '@netgrif/components-core';
import * as i0 from "@angular/core";
import * as i1 from "@ngx-translate/core";
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 "@angular/material/autocomplete";
import * as i7 from "@angular/material/core";
import * as i8 from "@angular/material/checkbox";
import * as i9 from "@angular/material/icon";
import * as i10 from "@angular/material/input";
import * as i11 from "@angular/material/form-field";
import * as i12 from "@angular/forms";
export class EditModeComponent extends AbstractEditModeComponent {
_translate;
loggerService;
constructor(_translate, loggerService) {
super(_translate, loggerService);
this._translate = _translate;
this.loggerService = loggerService;
}
setValue() {
this.approvalFormControl.setValue(true);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditModeComponent, deps: [{ token: i1.TranslateService }, { token: i2.LoggerService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditModeComponent, selector: "nc-edit-mode", usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"start center\" class=\"netgrif-input netgrif-header-input netgrif-input-fix netgrif-zero-field-wrapper\">\n <mat-checkbox *ngIf=\"approval && typeApproval === 'multichoice'\" [formControl]=\"approvalFormControl\" [indeterminate]=\"indeterminate\"\n (click)=\"$event.stopPropagation();\" color='primary' class=\"checkbox-padding\"></mat-checkbox>\n <mat-icon *ngIf=\"approval && typeApproval === 'enumeration'\" color=\"warn\" (click)=\"setValue();$event.stopPropagation();\" class=\"checkbox-padding cursor-fix\">close</mat-icon>\n <mat-form-field *ngFor=\"let header of this.headerService.selectedHeaders$ | async; let i = index\" fxLayout=\"row\"\n fxLayoutAlign=\" center\" fxFlex [ngStyle]=\"{'min-width': getMinWidth()}\" appearance=\"outline\"\n [fxHide.lt-xl]=\"i >= 4 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\">\n <mat-label *ngIf=\"!header\">{{ 'headers.newHeader' | translate}}</mat-label>\n <input type=\"text\"\n aria-label=\"Autocomplete\"\n matInput\n [formControl]=\"formControls[i]\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"renderSelection\"\n (optionSelected)=\"headerColumnSelected(i, $event.option.value)\" fxFlex>\n <mat-optgroup *ngFor=\"let group of this.filterOptions[i] | async\" [label]=\"group.groupTitle\">\n <mat-option *ngFor=\"let field of group.fields\" [value]=\"field\">\n {{field.title | translate}}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".checkbox-padding{padding-right:12px}.cursor-fix{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.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: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i7.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLabel, selector: "mat-label" }, { kind: "directive", type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditModeComponent, decorators: [{
type: Component,
args: [{ selector: 'nc-edit-mode', template: "<div fxLayout=\"row\" fxFlex=\"100\" fxLayoutAlign=\"start center\" class=\"netgrif-input netgrif-header-input netgrif-input-fix netgrif-zero-field-wrapper\">\n <mat-checkbox *ngIf=\"approval && typeApproval === 'multichoice'\" [formControl]=\"approvalFormControl\" [indeterminate]=\"indeterminate\"\n (click)=\"$event.stopPropagation();\" color='primary' class=\"checkbox-padding\"></mat-checkbox>\n <mat-icon *ngIf=\"approval && typeApproval === 'enumeration'\" color=\"warn\" (click)=\"setValue();$event.stopPropagation();\" class=\"checkbox-padding cursor-fix\">close</mat-icon>\n <mat-form-field *ngFor=\"let header of this.headerService.selectedHeaders$ | async; let i = index\" fxLayout=\"row\"\n fxLayoutAlign=\" center\" fxFlex [ngStyle]=\"{'min-width': getMinWidth()}\" appearance=\"outline\"\n [fxHide.lt-xl]=\"i >= 4 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\"\n [fxHide.lt-lg]=\"i >= 3 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\"\n [fxHide.lt-md]=\"i >= 2 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\"\n [fxHide.lt-sm]=\"i >= 1 && this.headerService.responsiveHeaders && !this.headerService.overflowMode\">\n <mat-label *ngIf=\"!header\">{{ 'headers.newHeader' | translate}}</mat-label>\n <input type=\"text\"\n aria-label=\"Autocomplete\"\n matInput\n [formControl]=\"formControls[i]\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"renderSelection\"\n (optionSelected)=\"headerColumnSelected(i, $event.option.value)\" fxFlex>\n <mat-optgroup *ngFor=\"let group of this.filterOptions[i] | async\" [label]=\"group.groupTitle\">\n <mat-option *ngFor=\"let field of group.fields\" [value]=\"field\">\n {{field.title | translate}}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n</div>\n", styles: [".checkbox-padding{padding-right:12px}.cursor-fix{cursor:pointer}\n"] }]
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.LoggerService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1tb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2hlYWRlci9oZWFkZXItbW9kZXMvZWRpdC1tb2RlL2VkaXQtbW9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLW1vZGVzL2VkaXQtbW9kZS9lZGl0LW1vZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4QyxPQUFPLEVBQUMseUJBQXlCLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBT2xGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx5QkFBeUI7SUFDdEM7SUFDQTtJQUR0QixZQUFzQixVQUE0QixFQUM1QixhQUE0QjtRQUM5QyxLQUFLLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRmYsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFFbEQsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBUlEsaUJBQWlCOzRGQUFqQixpQkFBaUIsMkVDVDlCLHVwRUEwQkE7OzRGRGpCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0RWRpdE1vZGVDb21wb25lbnQsIExvZ2dlclNlcnZpY2V9IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmMtZWRpdC1tb2RlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1tb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0LW1vZGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0TW9kZUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RWRpdE1vZGVDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKF90cmFuc2xhdGUsIGxvZ2dlclNlcnZpY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRWYWx1ZSgpIHtcbiAgICAgICAgdGhpcy5hcHByb3ZhbEZvcm1Db250cm9sLnNldFZhbHVlKHRydWUpO1xuICAgIH1cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeEZsZXg9XCIxMDBcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgY2xhc3M9XCJuZXRncmlmLWlucHV0IG5ldGdyaWYtaGVhZGVyLWlucHV0IG5ldGdyaWYtaW5wdXQtZml4IG5ldGdyaWYtemVyby1maWVsZC13cmFwcGVyXCI+XG4gICAgPG1hdC1jaGVja2JveCAqbmdJZj1cImFwcHJvdmFsICYmIHR5cGVBcHByb3ZhbCA9PT0gJ211bHRpY2hvaWNlJ1wiIFtmb3JtQ29udHJvbF09XCJhcHByb3ZhbEZvcm1Db250cm9sXCIgW2luZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiIGNvbG9yPSdwcmltYXJ5JyBjbGFzcz1cImNoZWNrYm94LXBhZGRpbmdcIj48L21hdC1jaGVja2JveD5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJhcHByb3ZhbCAmJiB0eXBlQXBwcm92YWwgPT09ICdlbnVtZXJhdGlvbidcIiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwic2V0VmFsdWUoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgY2xhc3M9XCJjaGVja2JveC1wYWRkaW5nIGN1cnNvci1maXhcIj5jbG9zZTwvbWF0LWljb24+XG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGhpcy5oZWFkZXJTZXJ2aWNlLnNlbGVjdGVkSGVhZGVycyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cIiBjZW50ZXJcIiBmeEZsZXggW25nU3R5bGVdPVwieydtaW4td2lkdGgnOiBnZXRNaW5XaWR0aCgpfVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC14bF09XCJpID49IDQgJiYgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzICYmICF0aGlzLmhlYWRlclNlcnZpY2Uub3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1sZ109XCJpID49IDMgJiYgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzICYmICF0aGlzLmhlYWRlclNlcnZpY2Uub3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1tZF09XCJpID49IDIgJiYgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzICYmICF0aGlzLmhlYWRlclNlcnZpY2Uub3ZlcmZsb3dNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Z4SGlkZS5sdC1zbV09XCJpID49IDEgJiYgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzICYmICF0aGlzLmhlYWRlclNlcnZpY2Uub3ZlcmZsb3dNb2RlXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCIhaGVhZGVyXCI+e3sgJ2hlYWRlcnMubmV3SGVhZGVyJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xzW2ldXCJcbiAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiPlxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwicmVuZGVyU2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImhlYWRlckNvbHVtblNlbGVjdGVkKGksICRldmVudC5vcHRpb24udmFsdWUpXCIgZnhGbGV4PlxuICAgICAgICAgICAgPG1hdC1vcHRncm91cCAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgdGhpcy5maWx0ZXJPcHRpb25zW2ldIHwgYXN5bmNcIiBbbGFiZWxdPVwiZ3JvdXAuZ3JvdXBUaXRsZVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBncm91cC5maWVsZHNcIiBbdmFsdWVdPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAge3tmaWVsZC50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=