UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

143 lines 20.4 kB
import { __decorate } from "tslib"; /** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { NgIf } from '@angular/common'; import { ChangeDetectionStrategy, Component, Input, Optional, SkipSelf, ViewEncapsulation } from '@angular/core'; import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; import { NzOutletModule } from 'ng-zorro-antd/core/outlet'; import { InputBoolean, toBoolean } from 'ng-zorro-antd/core/util'; import { NzIconModule } from 'ng-zorro-antd/icon'; import { NzTooltipDirective } from 'ng-zorro-antd/tooltip'; import { DefaultTooltipIcon } from './form.directive'; import * as i0 from "@angular/core"; import * as i1 from "./form.directive"; import * as i2 from "ng-zorro-antd/core/outlet"; import * as i3 from "ng-zorro-antd/icon"; function toTooltipIcon(value) { const icon = typeof value === 'string' ? { type: value } : value; return { ...DefaultTooltipIcon, ...icon }; } export class NzFormLabelComponent { set nzNoColon(value) { this.noColon = toBoolean(value); } get nzNoColon() { return this.noColon !== 'default' ? this.noColon : this.nzFormDirective?.nzNoColon; } set nzTooltipIcon(value) { this._tooltipIcon = toTooltipIcon(value); } // due to 'get' and 'set' accessor must have the same type, so it was renamed to `tooltipIcon` get tooltipIcon() { return this._tooltipIcon !== 'default' ? this._tooltipIcon : toTooltipIcon(this.nzFormDirective?.nzTooltipIcon || DefaultTooltipIcon); } set nzLabelAlign(value) { this.labelAlign = value; } get nzLabelAlign() { return this.labelAlign !== 'default' ? this.labelAlign : this.nzFormDirective?.nzLabelAlign || 'right'; } set nzLabelWrap(value) { this.labelWrap = toBoolean(value); } get nzLabelWrap() { return this.labelWrap !== 'default' ? this.labelWrap : this.nzFormDirective?.nzLabelWrap; } constructor(cdr, nzFormDirective) { this.cdr = cdr; this.nzFormDirective = nzFormDirective; this.nzRequired = false; this.noColon = 'default'; this._tooltipIcon = 'default'; this.labelAlign = 'default'; this.labelWrap = 'default'; this.destroy$ = new Subject(); if (this.nzFormDirective) { this.nzFormDirective .getInputObservable('nzNoColon') .pipe(filter(() => this.noColon === 'default'), takeUntil(this.destroy$)) .subscribe(() => this.cdr.markForCheck()); this.nzFormDirective .getInputObservable('nzTooltipIcon') .pipe(filter(() => this._tooltipIcon === 'default'), takeUntil(this.destroy$)) .subscribe(() => this.cdr.markForCheck()); this.nzFormDirective .getInputObservable('nzLabelAlign') .pipe(filter(() => this.labelAlign === 'default'), takeUntil(this.destroy$)) .subscribe(() => this.cdr.markForCheck()); this.nzFormDirective .getInputObservable('nzLabelWrap') .pipe(filter(() => this.labelWrap === 'default'), takeUntil(this.destroy$)) .subscribe(() => this.cdr.markForCheck()); } } ngOnDestroy() { this.destroy$.next(true); this.destroy$.complete(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NzFormLabelComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NzFormDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: NzFormLabelComponent, isStandalone: true, selector: "nz-form-label", inputs: { nzFor: "nzFor", nzRequired: "nzRequired", nzNoColon: "nzNoColon", nzTooltipTitle: "nzTooltipTitle", nzTooltipIcon: "nzTooltipIcon", nzLabelAlign: "nzLabelAlign", nzLabelWrap: "nzLabelWrap" }, host: { properties: { "class.ant-form-item-label-left": "nzLabelAlign === 'left'", "class.ant-form-item-label-wrap": "nzLabelWrap" }, classAttribute: "ant-form-item-label" }, exportAs: ["nzFormLabel"], ngImport: i0, template: ` <label [attr.for]="nzFor" [class.ant-form-item-no-colon]="nzNoColon" [class.ant-form-item-required]="nzRequired"> <ng-content></ng-content> <span *ngIf="nzTooltipTitle" class="ant-form-item-tooltip" nz-tooltip [nzTooltipTitle]="nzTooltipTitle"> <ng-container *nzStringTemplateOutlet="tooltipIcon.type; let tooltipIconType"> <span nz-icon [nzType]="tooltipIconType" [nzTheme]="tooltipIcon.theme"></span> </ng-container> </span> </label> `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NzOutletModule }, { kind: "directive", type: i2.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "directive", type: NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } } __decorate([ InputBoolean() ], NzFormLabelComponent.prototype, "nzRequired", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NzFormLabelComponent, decorators: [{ type: Component, args: [{ selector: 'nz-form-label', exportAs: 'nzFormLabel', preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: ` <label [attr.for]="nzFor" [class.ant-form-item-no-colon]="nzNoColon" [class.ant-form-item-required]="nzRequired"> <ng-content></ng-content> <span *ngIf="nzTooltipTitle" class="ant-form-item-tooltip" nz-tooltip [nzTooltipTitle]="nzTooltipTitle"> <ng-container *nzStringTemplateOutlet="tooltipIcon.type; let tooltipIconType"> <span nz-icon [nzType]="tooltipIconType" [nzTheme]="tooltipIcon.theme"></span> </ng-container> </span> </label> `, host: { class: 'ant-form-item-label', '[class.ant-form-item-label-left]': `nzLabelAlign === 'left'`, '[class.ant-form-item-label-wrap]': `nzLabelWrap` }, imports: [NgIf, NzOutletModule, NzTooltipDirective, NzIconModule], standalone: true }] }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.NzFormDirective, decorators: [{ type: Optional }, { type: SkipSelf }] }], propDecorators: { nzFor: [{ type: Input }], nzRequired: [{ type: Input }], nzNoColon: [{ type: Input }], nzTooltipTitle: [{ type: Input }], nzTooltipIcon: [{ type: Input }], nzLabelAlign: [{ type: Input }], nzLabelWrap: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL2Zvcm0vZm9ybS1sYWJlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxFQUNSLFFBQVEsRUFDUixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQXFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBT3pGLFNBQVMsYUFBYSxDQUFDLEtBQWlDO0lBQ3RELE1BQU0sSUFBSSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRSxPQUFPLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0FBQzVDLENBQUM7QUEwQkQsTUFBTSxPQUFPLG9CQUFvQjtJQU8vQixJQUNJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcs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QUUsWUFBWSxDQUFDO29CQUNqRSxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQXlESSxRQUFROzswQkFBSSxRQUFRO3lDQW5EZCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ21CLFVBQVU7c0JBQWxDLEtBQUs7Z0JBRUYsU0FBUztzQkFEWixLQUFLO2dCQVVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUYsYUFBYTtzQkFEaEIsS0FBSztnQkFhRixZQUFZO3NCQURmLEtBQUs7Z0JBWUYsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBUaGVtZVR5cGUgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucy1hbmd1bGFyJztcblxuaW1wb3J0IHsgTnpPdXRsZXRNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvb3V0bGV0JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnpUU1R5cGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuLCB0b0Jvb2xlYW4gfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdXRpbCc7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuaW1wb3J0IHsgTnpUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnbmctem9ycm8tYW50ZC90b29sdGlwJztcblxuaW1wb3J0IHsgRGVmYXVsdFRvb2x0aXBJY29uLCBOekZvcm1EaXJlY3RpdmUsIE56TGFiZWxBbGlnblR5cGUgfSBmcm9tICcuL2Zvcm0uZGlyZWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBOekZvcm1Ub29sdGlwSWNvbiB7XG4gIHR5cGU6IE56VFNUeXBlO1xuICB0aGVtZTogVGhlbWVUeXBlO1xufVxuXG5mdW5jdGlvbiB0b1Rvb2x0aXBJY29uKHZhbHVlOiBzdHJpbmcgfCBOekZvcm1Ub29sdGlwSWNvbik6IFJlcXVpcmVkPE56Rm9ybVRvb2x0aXBJY29uPiB7XG4gIGNvbnN0IGljb24gPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8geyB0eXBlOiB2YWx1ZSB9IDogdmFsdWU7XG4gIHJldHVybiB7IC4uLkRlZmF1bHRUb29sdGlwSWNvbiwgLi4uaWNvbiB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduei1mb3JtLWxhYmVsJyxcbiAgZXhwb3J0QXM6ICduekZvcm1MYWJlbCcsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cIm56Rm9yXCIgW2NsYXNzLmFudC1mb3JtLWl0ZW0tbm8tY29sb25dPVwibnpOb0NvbG9uXCIgW2NsYXNzLmFudC1mb3JtLWl0ZW0tcmVxdWlyZWRdPVwibnpSZXF1aXJlZFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPHNwYW4gKm5nSWY9XCJuelRvb2x0aXBUaXRsZVwiIGNsYXNzPVwiYW50LWZvcm0taXRlbS10b29sdGlwXCIgbnotdG9vbHRpcCBbbnpUb29sdGlwVGl0bGVdPVwibnpUb29sdGlwVGl0bGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbnpTdHJpbmdUZW1wbGF0ZU91dGxldD1cInRvb2x0aXBJY29uLnR5cGU7IGxldCB0b29sdGlwSWNvblR5cGVcIj5cbiAgICAgICAgICA8c3BhbiBuei1pY29uIFtuelR5cGVdPVwidG9vbHRpcEljb25UeXBlXCIgW256VGhlbWVdPVwidG9vbHRpcEljb24udGhlbWVcIj48L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2FudC1mb3JtLWl0ZW0tbGFiZWwnLFxuICAgICdbY2xhc3MuYW50LWZvcm0taXRlbS1sYWJlbC1sZWZ0XSc6IGBuekxhYmVsQWxpZ24gPT09ICdsZWZ0J2AsXG4gICAgJ1tjbGFzcy5hbnQtZm9ybS1pdGVtLWxhYmVsLXdyYXBdJzogYG56TGFiZWxXcmFwYFxuICB9LFxuICBpbXBvcnRzOiBbTmdJZiwgTnpPdXRsZXRNb2R1bGUsIE56VG9vbHRpcERpcmVjdGl2ZSwgTnpJY29uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOekZvcm1MYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9uelJlcXVpcmVkOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9uek5vQ29sb246IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX256TGFiZWxXcmFwOiBCb29sZWFuSW5wdXQ7XG5cbiAgQElucHV0KCkgbnpGb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBuelJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHNldCBuek5vQ29sb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm5vQ29sb24gPSB0b0Jvb2xlYW4odmFsdWUpO1xuICB9XG4gIGdldCBuek5vQ29sb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubm9Db2xvbiAhPT0gJ2RlZmF1bHQnID8gdGhpcy5ub0NvbG9uIDogdGhpcy5uekZvcm1EaXJlY3RpdmU/Lm56Tm9Db2xvbjtcbiAgfVxuXG4gIHByaXZhdGUgbm9Db2xvbjogYm9vbGVhbiB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSBuelRvb2x0aXBUaXRsZT86IE56VFNUeXBlO1xuICBASW5wdXQoKVxuICBzZXQgbnpUb29sdGlwSWNvbih2YWx1ZTogc3RyaW5nIHwgTnpGb3JtVG9vbHRpcEljb24pIHtcbiAgICB0aGlzLl90b29sdGlwSWNvbiA9IHRvVG9vbHRpcEljb24odmFsdWUpO1xuICB9XG4gIC8vIGR1ZSB0byAnZ2V0JyBhbmQgJ3NldCcgYWNjZXNzb3IgbXVzdCBoYXZlIHRoZSBzYW1lIHR5cGUsIHNvIGl0IHdhcyByZW5hbWVkIHRvIGB0b29sdGlwSWNvbmBcbiAgZ2V0IHRvb2x0aXBJY29uKCk6IE56Rm9ybVRvb2x0aXBJY29uIHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbHRpcEljb24gIT09ICdkZWZhdWx0J1xuICAgICAgPyB0aGlzLl90b29sdGlwSWNvblxuICAgICAgOiB0b1Rvb2x0aXBJY29uKHRoaXMubnpGb3JtRGlyZWN0aXZlPy5uelRvb2x0aXBJY29uIHx8IERlZmF1bHRUb29sdGlwSWNvbik7XG4gIH1cbiAgcHJpdmF0ZSBfdG9vbHRpcEljb246IE56Rm9ybVRvb2x0aXBJY29uIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBuekxhYmVsQWxpZ24odmFsdWU6IE56TGFiZWxBbGlnblR5cGUpIHtcbiAgICB0aGlzLmxhYmVsQWxpZ24gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBuekxhYmVsQWxpZ24oKTogTnpMYWJlbEFsaWduVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWxBbGlnbiAhPT0gJ2RlZmF1bHQnID8gdGhpcy5sYWJlbEFsaWduIDogdGhpcy5uekZvcm1EaXJlY3RpdmU/Lm56TGFiZWxBbGlnbiB8fCAncmlnaHQnO1xuICB9XG5cbiAgcHJpdmF0ZSBsYWJlbEFsaWduOiBOekxhYmVsQWxpZ25UeXBlIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBuekxhYmVsV3JhcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubGFiZWxXcmFwID0gdG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBuekxhYmVsV3JhcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbFdyYXAgIT09ICdkZWZhdWx0JyA/IHRoaXMubGFiZWxXcmFwIDogdGhpcy5uekZvcm1EaXJlY3RpdmU/Lm56TGFiZWxXcmFwO1xuICB9XG5cbiAgcHJpdmF0ZSBsYWJlbFdyYXA6IGJvb2xlYW4gfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHByaXZhdGUgbnpGb3JtRGlyZWN0aXZlOiBOekZvcm1EaXJlY3RpdmVcbiAgKSB7XG4gICAgaWYgKHRoaXMubnpGb3JtRGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLm56Rm9ybURpcmVjdGl2ZVxuICAgICAgICAuZ2V0SW5wdXRPYnNlcnZhYmxlKCduek5vQ29sb24nKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5ub0NvbG9uID09PSAnZGVmYXVsdCcpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXG4gICAgICB0aGlzLm56Rm9ybURpcmVjdGl2ZVxuICAgICAgICAuZ2V0SW5wdXRPYnNlcnZhYmxlKCduelRvb2x0aXBJY29uJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX3Rvb2x0aXBJY29uID09PSAnZGVmYXVsdCcpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXG4gICAgICB0aGlzLm56Rm9ybURpcmVjdGl2ZVxuICAgICAgICAuZ2V0SW5wdXRPYnNlcnZhYmxlKCduekxhYmVsQWxpZ24nKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5sYWJlbEFsaWduID09PSAnZGVmYXVsdCcpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXG4gICAgICB0aGlzLm56Rm9ybURpcmVjdGl2ZVxuICAgICAgICAuZ2V0SW5wdXRPYnNlcnZhYmxlKCduekxhYmVsV3JhcCcpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmxhYmVsV3JhcCA9PT0gJ2RlZmF1bHQnKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=