UNPKG

@xmagic/nz-formly

Version:

基于ng-zorro-antd UI 扩展的ngx-formly组件库

164 lines 16.1 kB
import { Component, Optional, ViewChild } from '@angular/core'; import { FieldType } from '@ngx-formly/core'; import { resolveTplName } from '@xmagic/nz-formly/common'; import * as i0 from "@angular/core"; import * as i1 from "@xmagic/nz-formly/common"; import * as i2 from "@angular/common"; import * as i3 from "ng-zorro-antd/modal"; import * as i4 from "@xmagic/nzx-antd/modal"; import * as i5 from "ng-zorro-antd/core/outlet"; import * as i6 from "@ngx-formly/core"; export class FormlyFieldModalComponent extends FieldType { fieldTemplates; instance; defaultOptions = { props: { nzOkType: 'primary', nzCloseOnNavigation: true, nzMaskClosable: false, nzKeyboard: false, nzClosable: true, nzMask: true, nzIconType: 'question-circle', nzAutofocus: 'auto', nzWidth: 520, nzVisible: false, nzCloseIcon: 'close', nzOnCancel: (field, instance) => (field.props.nzVisible = false), nzOnOk: (field, instance) => (field.props.nzVisible = false) } }; constructor(fieldTemplates) { super(); this.fieldTemplates = fieldTemplates; } ngOnInit() { this.props.instance = this.instance; this.props.init?.(this.instance, this); } get nzTitle() { return resolveTplName(this.props, this.fieldTemplates, 'nzTitle'); } get nzFooter() { return resolveTplName(this.props, this.fieldTemplates, 'nzFooter'); } get nzCloseIcon() { return resolveTplName(this.props, this.fieldTemplates, 'nzCloseIcon'); } get nzContent() { return resolveTplName(this.props, this.fieldTemplates, 'nzContent'); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormlyFieldModalComponent, deps: [{ token: i1.FormlyBoxTemplates, optional: true }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormlyFieldModalComponent, selector: "nz-formly-modal", viewQueries: [{ propertyName: "instance", first: true, predicate: ["nzModal"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: ` <nz-modal *ngIf="props.nzVisible" #nzModal nzxModalDrag [nzVisible]="true" [nzTitle]="props.label || nzTitle" [formlyAttributes]="field" [nzAutofocus]="props.nzAutofocus" [nzBodyStyle]="props.nzBodyStyle" [nzCancelDisabled]="props.nzCancelDisabled" [nzCancelLoading]="props.nzCancelLoading" [nzCancelText]="props.nzCancelText" [nzCentered]="props.nzCentered" [nzClassName]="props.nzClassName" [nzClosable]="props.nzClosable" [nzCloseIcon]="nzCloseIcon" [nzCloseOnNavigation]="props.nzCloseOnNavigation" [nzComponentParams]="props.nzComponentParams" [nzFooter]="nzFooter" [nzIconType]="props.nzIconType" [nzKeyboard]="props.nzKeyboard" [nzMask]="props.nzMask" [nzMaskClosable]="props.nzMaskClosable" [nzMaskStyle]="props.nzMaskStyle" [nzModalType]="props.nzModalType" [nzNoAnimation]="props.nzNoAnimation" [nzOkDanger]="props.nzOkDanger" [nzOkDisabled]="props.nzOkDisabled" [nzOkLoading]="props.nzOkLoading" [nzOkText]="props.nzOkText" [nzOkType]="props.nzOkType" [nzStyle]="props.nzStyle" [nzWidth]="props.nzWidth" [nzWrapClassName]="props.nzWrapClassName" [nzZIndex]="props.nzZIndex" (nzAfterClose)="props.onAfterClose?.(field, instance)" (nzAfterOpen)="props.nzAfterOpen?.(field, instance)" (nzOnCancel)="props.nzOnCancel(field, instance)" (nzOnOk)="props.nzOnOk(field, instance)" (nzVisibleChange)="props.nzVisibleChange?.($event, field)" > <ng-container *nzModalContent> <formly-field [field]="item" *ngFor="let item of field.fieldGroup"></formly-field> <ng-container *nzStringTemplateOutlet="nzContent; context: { $implicit: field, options: props }"> {{ nzContent }} </ng-container> </ng-container> </nz-modal> `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i3.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "directive", type: i4.NzxModalDragDirective, selector: "nz-modal[nzxModalDrag]" }, { kind: "directive", type: i5.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "component", type: i6.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "directive", type: i6.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormlyFieldModalComponent, decorators: [{ type: Component, args: [{ selector: 'nz-formly-modal', template: ` <nz-modal *ngIf="props.nzVisible" #nzModal nzxModalDrag [nzVisible]="true" [nzTitle]="props.label || nzTitle" [formlyAttributes]="field" [nzAutofocus]="props.nzAutofocus" [nzBodyStyle]="props.nzBodyStyle" [nzCancelDisabled]="props.nzCancelDisabled" [nzCancelLoading]="props.nzCancelLoading" [nzCancelText]="props.nzCancelText" [nzCentered]="props.nzCentered" [nzClassName]="props.nzClassName" [nzClosable]="props.nzClosable" [nzCloseIcon]="nzCloseIcon" [nzCloseOnNavigation]="props.nzCloseOnNavigation" [nzComponentParams]="props.nzComponentParams" [nzFooter]="nzFooter" [nzIconType]="props.nzIconType" [nzKeyboard]="props.nzKeyboard" [nzMask]="props.nzMask" [nzMaskClosable]="props.nzMaskClosable" [nzMaskStyle]="props.nzMaskStyle" [nzModalType]="props.nzModalType" [nzNoAnimation]="props.nzNoAnimation" [nzOkDanger]="props.nzOkDanger" [nzOkDisabled]="props.nzOkDisabled" [nzOkLoading]="props.nzOkLoading" [nzOkText]="props.nzOkText" [nzOkType]="props.nzOkType" [nzStyle]="props.nzStyle" [nzWidth]="props.nzWidth" [nzWrapClassName]="props.nzWrapClassName" [nzZIndex]="props.nzZIndex" (nzAfterClose)="props.onAfterClose?.(field, instance)" (nzAfterOpen)="props.nzAfterOpen?.(field, instance)" (nzOnCancel)="props.nzOnCancel(field, instance)" (nzOnOk)="props.nzOnOk(field, instance)" (nzVisibleChange)="props.nzVisibleChange?.($event, field)" > <ng-container *nzModalContent> <formly-field [field]="item" *ngFor="let item of field.fieldGroup"></formly-field> <ng-container *nzStringTemplateOutlet="nzContent; context: { $implicit: field, options: props }"> {{ nzContent }} </ng-container> </ng-container> </nz-modal> ` }] }], ctorParameters: () => [{ type: i1.FormlyBoxTemplates, decorators: [{ type: Optional }] }], propDecorators: { instance: [{ type: ViewChild, args: ['nzModal', { static: true }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzdDLE9BQU8sRUFBc0IsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBdUQ5RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsU0FBUztJQW1CdkI7SUFsQlMsUUFBUSxDQUFvQjtJQUMzRCxjQUFjLEdBQUc7UUFDeEIsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLFNBQVM7WUFDbkIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixjQUFjLEVBQUUsS0FBSztZQUNyQixVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUUsSUFBSTtZQUNoQixNQUFNLEVBQUUsSUFBSTtZQUNaLFVBQVUsRUFBRSxpQkFBaUI7WUFDN0IsV0FBVyxFQUFFLE1BQU07WUFDbkIsT0FBTyxFQUFFLEdBQUc7WUFDWixTQUFTLEVBQUUsS0FBSztZQUNoQixXQUFXLEVBQUUsT0FBTztZQUNwQixVQUFVLEVBQUUsQ0FBQyxLQUF3QixFQUFFLFFBQTBCLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RHLE1BQU0sRUFBRSxDQUFDLEtBQXdCLEVBQUUsUUFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDbkc7S0FDRixDQUFDO0lBQ0YsWUFBK0IsY0FBa0M7UUFDL0QsS0FBSyxFQUFFLENBQUM7UUFEcUIsbUJBQWMsR0FBZCxjQUFjLENBQW9CO0lBRWpFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RSxDQUFDO3dHQTFDVSx5QkFBeUI7NEZBQXpCLHlCQUF5QixpTUFuRDFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaURUOzs0RkFFVSx5QkFBeUI7a0JBckRyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVDtpQkFDRjs7MEJBb0JjLFFBQVE7eUNBbEJtQixRQUFRO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgTnpNb2RhbENvbXBvbmVudCB9IGZyb20gJ25nLXpvcnJvLWFudGQvbW9kYWwnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvbGliL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1seUJveFRlbXBsYXRlcywgcmVzb2x2ZVRwbE5hbWUgfSBmcm9tICdAeG1hZ2ljL256LWZvcm1seS9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduei1mb3JtbHktbW9kYWwnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bnotbW9kYWxcclxuICAgICAgKm5nSWY9XCJwcm9wcy5uelZpc2libGVcIlxyXG4gICAgICAjbnpNb2RhbFxyXG4gICAgICBuenhNb2RhbERyYWdcclxuICAgICAgW256VmlzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgW256VGl0bGVdPVwicHJvcHMubGFiZWwgfHwgbnpUaXRsZVwiXHJcbiAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcclxuICAgICAgW256QXV0b2ZvY3VzXT1cInByb3BzLm56QXV0b2ZvY3VzXCJcclxuICAgICAgW256Qm9keVN0eWxlXT1cInByb3BzLm56Qm9keVN0eWxlXCJcclxuICAgICAgW256Q2FuY2VsRGlzYWJsZWRdPVwicHJvcHMubnpDYW5jZWxEaXNhYmxlZFwiXHJcbiAgICAgIFtuekNhbmNlbExvYWRpbmddPVwicHJvcHMubnpDYW5jZWxMb2FkaW5nXCJcclxuICAgICAgW256Q2FuY2VsVGV4dF09XCJwcm9wcy5uekNhbmNlbFRleHRcIlxyXG4gICAgICBbbnpDZW50ZXJlZF09XCJwcm9wcy5uekNlbnRlcmVkXCJcclxuICAgICAgW256Q2xhc3NOYW1lXT1cInByb3BzLm56Q2xhc3NOYW1lXCJcclxuICAgICAgW256Q2xvc2FibGVdPVwicHJvcHMubnpDbG9zYWJsZVwiXHJcbiAgICAgIFtuekNsb3NlSWNvbl09XCJuekNsb3NlSWNvblwiXHJcbiAgICAgIFtuekNsb3NlT25OYXZpZ2F0aW9uXT1cInByb3BzLm56Q2xvc2VPbk5hdmlnYXRpb25cIlxyXG4gICAgICBbbnpDb21wb25lbnRQYXJhbXNdPVwicHJvcHMubnpDb21wb25lbnRQYXJhbXNcIlxyXG4gICAgICBbbnpGb290ZXJdPVwibnpGb290ZXJcIlxyXG4gICAgICBbbnpJY29uVHlwZV09XCJwcm9wcy5uekljb25UeXBlXCJcclxuICAgICAgW256S2V5Ym9hcmRdPVwicHJvcHMubnpLZXlib2FyZFwiXHJcbiAgICAgIFtuek1hc2tdPVwicHJvcHMubnpNYXNrXCJcclxuICAgICAgW256TWFza0Nsb3NhYmxlXT1cInByb3BzLm56TWFza0Nsb3NhYmxlXCJcclxuICAgICAgW256TWFza1N0eWxlXT1cInByb3BzLm56TWFza1N0eWxlXCJcclxuICAgICAgW256TW9kYWxUeXBlXT1cInByb3BzLm56TW9kYWxUeXBlXCJcclxuICAgICAgW256Tm9BbmltYXRpb25dPVwicHJvcHMubnpOb0FuaW1hdGlvblwiXHJcbiAgICAgIFtuek9rRGFuZ2VyXT1cInByb3BzLm56T2tEYW5nZXJcIlxyXG4gICAgICBbbnpPa0Rpc2FibGVkXT1cInByb3BzLm56T2tEaXNhYmxlZFwiXHJcbiAgICAgIFtuek9rTG9hZGluZ109XCJwcm9wcy5uek9rTG9hZGluZ1wiXHJcbiAgICAgIFtuek9rVGV4dF09XCJwcm9wcy5uek9rVGV4dFwiXHJcbiAgICAgIFtuek9rVHlwZV09XCJwcm9wcy5uek9rVHlwZVwiXHJcbiAgICAgIFtuelN0eWxlXT1cInByb3BzLm56U3R5bGVcIlxyXG4gICAgICBbbnpXaWR0aF09XCJwcm9wcy5ueldpZHRoXCJcclxuICAgICAgW256V3JhcENsYXNzTmFtZV09XCJwcm9wcy5ueldyYXBDbGFzc05hbWVcIlxyXG4gICAgICBbbnpaSW5kZXhdPVwicHJvcHMubnpaSW5kZXhcIlxyXG4gICAgICAobnpBZnRlckNsb3NlKT1cInByb3BzLm9uQWZ0ZXJDbG9zZT8uKGZpZWxkLCBpbnN0YW5jZSlcIlxyXG4gICAgICAobnpBZnRlck9wZW4pPVwicHJvcHMubnpBZnRlck9wZW4/LihmaWVsZCwgaW5zdGFuY2UpXCJcclxuICAgICAgKG56T25DYW5jZWwpPVwicHJvcHMubnpPbkNhbmNlbChmaWVsZCwgaW5zdGFuY2UpXCJcclxuICAgICAgKG56T25Payk9XCJwcm9wcy5uek9uT2soZmllbGQsIGluc3RhbmNlKVwiXHJcbiAgICAgIChuelZpc2libGVDaGFuZ2UpPVwicHJvcHMubnpWaXNpYmxlQ2hhbmdlPy4oJGV2ZW50LCBmaWVsZClcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuek1vZGFsQ29udGVudD5cclxuICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmllbGQuZmllbGRHcm91cFwiPjwvZm9ybWx5LWZpZWxkPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm56U3RyaW5nVGVtcGxhdGVPdXRsZXQ9XCJuekNvbnRlbnQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmaWVsZCwgb3B0aW9uczogcHJvcHMgfVwiPlxyXG4gICAgICAgICAge3sgbnpDb250ZW50IH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uei1tb2RhbD5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtbHlGaWVsZE1vZGFsQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCduek1vZGFsJywgeyBzdGF0aWM6IHRydWUgfSkgaW5zdGFuY2UhOiBOek1vZGFsQ29tcG9uZW50O1xyXG4gIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgcHJvcHM6IHtcclxuICAgICAgbnpPa1R5cGU6ICdwcmltYXJ5JyxcclxuICAgICAgbnpDbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgbnpNYXNrQ2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICBuektleWJvYXJkOiBmYWxzZSxcclxuICAgICAgbnpDbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgbnpNYXNrOiB0cnVlLFxyXG4gICAgICBuekljb25UeXBlOiAncXVlc3Rpb24tY2lyY2xlJyxcclxuICAgICAgbnpBdXRvZm9jdXM6ICdhdXRvJyxcclxuICAgICAgbnpXaWR0aDogNTIwLFxyXG4gICAgICBuelZpc2libGU6IGZhbHNlLFxyXG4gICAgICBuekNsb3NlSWNvbjogJ2Nsb3NlJyxcclxuICAgICAgbnpPbkNhbmNlbDogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgaW5zdGFuY2U6IE56TW9kYWxDb21wb25lbnQpID0+IChmaWVsZC5wcm9wcyEubnpWaXNpYmxlID0gZmFsc2UpLFxyXG4gICAgICBuek9uT2s6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcsIGluc3RhbmNlOiBOek1vZGFsQ29tcG9uZW50KSA9PiAoZmllbGQucHJvcHMhLm56VmlzaWJsZSA9IGZhbHNlKVxyXG4gICAgfVxyXG4gIH07XHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIGZpZWxkVGVtcGxhdGVzOiBGb3JtbHlCb3hUZW1wbGF0ZXMpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcHMuaW5zdGFuY2UgPSB0aGlzLmluc3RhbmNlO1xyXG4gICAgdGhpcy5wcm9wcy5pbml0Py4odGhpcy5pbnN0YW5jZSwgdGhpcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbnpUaXRsZSgpIHtcclxuICAgIHJldHVybiByZXNvbHZlVHBsTmFtZSh0aGlzLnByb3BzLCB0aGlzLmZpZWxkVGVtcGxhdGVzLCAnbnpUaXRsZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG56Rm9vdGVyKCkge1xyXG4gICAgcmV0dXJuIHJlc29sdmVUcGxOYW1lKHRoaXMucHJvcHMsIHRoaXMuZmllbGRUZW1wbGF0ZXMsICduekZvb3RlcicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG56Q2xvc2VJY29uKCkge1xyXG4gICAgcmV0dXJuIHJlc29sdmVUcGxOYW1lKHRoaXMucHJvcHMsIHRoaXMuZmllbGRUZW1wbGF0ZXMsICduekNsb3NlSWNvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG56Q29udGVudCgpIHtcclxuICAgIHJldHVybiByZXNvbHZlVHBsTmFtZSh0aGlzLnByb3BzLCB0aGlzLmZpZWxkVGVtcGxhdGVzLCAnbnpDb250ZW50Jyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==