UNPKG

ng-zorro-antd

Version:

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

109 lines 14.8 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 { ChangeDetectionStrategy, Component, Input, Optional, SkipSelf, ViewEncapsulation } from '@angular/core'; import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; import { InputBoolean, toBoolean } from 'ng-zorro-antd/core/util'; import { DefaultTooltipIcon } from './form.directive'; import * as i0 from "@angular/core"; import * as i1 from "./form.directive"; import * as i2 from "@angular/common"; import * as i3 from "ng-zorro-antd/icon"; import * as i4 from "ng-zorro-antd/tooltip"; import * as i5 from "ng-zorro-antd/core/outlet"; function toTooltipIcon(value) { const icon = typeof value === 'string' ? { type: value } : value; return { ...DefaultTooltipIcon, ...icon }; } export class NzFormLabelComponent { constructor(elementRef, renderer, cdr, nzFormDirective) { this.cdr = cdr; this.nzFormDirective = nzFormDirective; this.nzRequired = false; this.noColon = 'default'; this._tooltipIcon = 'default'; this.destroy$ = new Subject(); renderer.addClass(elementRef.nativeElement, 'ant-form-item-label'); 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()); } } 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); } ngOnDestroy() { this.destroy$.next(); this.destroy$.complete(); } } NzFormLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NzFormLabelComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.NzFormDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); NzFormLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: NzFormLabelComponent, selector: "nz-form-label", inputs: { nzFor: "nzFor", nzRequired: "nzRequired", nzNoColon: "nzNoColon", nzTooltipTitle: "nzTooltipTitle", nzTooltipIcon: "nzTooltipIcon" }, 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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i4.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "directive", type: i5.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); __decorate([ InputBoolean() ], NzFormLabelComponent.prototype, "nzRequired", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", 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> ` }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { 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 }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL2Zvcm0vZm9ybS1sYWJlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUNSLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFPdkUsU0FBUyxhQUFhLENBQUMsS0FBaUM7SUFDdEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pFLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQW1CRCxNQUFNLE9BQU8sb0JBQW9CO0lBK0IvQixZQUNFLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ1gsR0FBc0IsRUFDRSxlQUFnQztRQUR4RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNFLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQTlCekMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVNwQyxZQUFPLEdBQXdCLFNBQVMsQ0FBQztRQWF6QyxpQkFBWSxHQUFrQyxTQUFTLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFRL0IsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlO2lCQUNqQixrQkFBa0IsQ0FBQyxXQUFXLENBQUM7aUJBQy9CLElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsRUFDeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsZUFBZTtpQkFDakIsa0JBQWtCLENBQUMsZUFBZSxDQUFDO2lCQUNuQyxJQUFJLENBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDLEVBQzdDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBbERELElBQ0ksU0FBUyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDO0lBQ3JGLENBQUM7SUFLRCxJQUNJLGFBQWEsQ0FBQyxLQUFpQztRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsOEZBQThGO0lBQzlGLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTO1lBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNuQixDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxJQUFJLGtCQUFrQixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQWdDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2tIQTdEVSxvQkFBb0I7c0dBQXBCLG9CQUFvQixnT0FYckI7Ozs7Ozs7OztHQVNUOztJQU9TLFlBQVksRUFBRTt3REFBb0I7NEZBTGpDLG9CQUFvQjtrQkFqQmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixtQkFBbUIsRUFBRSxLQUFLO29CQUMxQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7O0dBU1Q7aUJBQ0Y7OzBCQW9DSSxRQUFROzswQkFBSSxRQUFROzRDQS9CZCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ21CLFVBQVU7c0JBQWxDLEtBQUs7Z0JBRUYsU0FBUztzQkFEWixLQUFLO2dCQVVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUYsYUFBYTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBTa2lwU2VsZixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgVGhlbWVUeXBlIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMtYW5ndWxhcic7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnpUU1R5cGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuLCB0b0Jvb2xlYW4gfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdXRpbCc7XG5cbmltcG9ydCB7IERlZmF1bHRUb29sdGlwSWNvbiwgTnpGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTnpGb3JtVG9vbHRpcEljb24ge1xuICB0eXBlOiBOelRTVHlwZTtcbiAgdGhlbWU6IFRoZW1lVHlwZTtcbn1cblxuZnVuY3Rpb24gdG9Ub29sdGlwSWNvbih2YWx1ZTogc3RyaW5nIHwgTnpGb3JtVG9vbHRpcEljb24pOiBSZXF1aXJlZDxOekZvcm1Ub29sdGlwSWNvbj4ge1xuICBjb25zdCBpY29uID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHsgdHlwZTogdmFsdWUgfSA6IHZhbHVlO1xuICByZXR1cm4geyAuLi5EZWZhdWx0VG9vbHRpcEljb24sIC4uLmljb24gfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnotZm9ybS1sYWJlbCcsXG4gIGV4cG9ydEFzOiAnbnpGb3JtTGFiZWwnLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJuekZvclwiIFtjbGFzcy5hbnQtZm9ybS1pdGVtLW5vLWNvbG9uXT1cIm56Tm9Db2xvblwiIFtjbGFzcy5hbnQtZm9ybS1pdGVtLXJlcXVpcmVkXT1cIm56UmVxdWlyZWRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDxzcGFuICpuZ0lmPVwibnpUb29sdGlwVGl0bGVcIiBjbGFzcz1cImFudC1mb3JtLWl0ZW0tdG9vbHRpcFwiIG56LXRvb2x0aXAgW256VG9vbHRpcFRpdGxlXT1cIm56VG9vbHRpcFRpdGxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm56U3RyaW5nVGVtcGxhdGVPdXRsZXQ9XCJ0b29sdGlwSWNvbi50eXBlOyBsZXQgdG9vbHRpcEljb25UeXBlXCI+XG4gICAgICAgICAgPHNwYW4gbnotaWNvbiBbbnpUeXBlXT1cInRvb2x0aXBJY29uVHlwZVwiIFtuelRoZW1lXT1cInRvb2x0aXBJY29uLnRoZW1lXCI+PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIE56Rm9ybUxhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX256UmVxdWlyZWQ6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX256Tm9Db2xvbjogQm9vbGVhbklucHV0O1xuXG4gIEBJbnB1dCgpIG56Rm9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgbnpSZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBzZXQgbnpOb0NvbG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5ub0NvbG9uID0gdG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuICBnZXQgbnpOb0NvbG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5vQ29sb24gIT09ICdkZWZhdWx0JyA/IHRoaXMubm9Db2xvbiA6IHRoaXMubnpGb3JtRGlyZWN0aXZlPy5uek5vQ29sb247XG4gIH1cblxuICBwcml2YXRlIG5vQ29sb246IGJvb2xlYW4gfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KCkgbnpUb29sdGlwVGl0bGU/OiBOelRTVHlwZTtcbiAgQElucHV0KClcbiAgc2V0IG56VG9vbHRpcEljb24odmFsdWU6IHN0cmluZyB8IE56Rm9ybVRvb2x0aXBJY29uKSB7XG4gICAgdGhpcy5fdG9vbHRpcEljb24gPSB0b1Rvb2x0aXBJY29uKHZhbHVlKTtcbiAgfVxuICAvLyBkdWUgdG8gJ2dldCcgYW5kICdzZXQnIGFjY2Vzc29yIG11c3QgaGF2ZSB0aGUgc2FtZSB0eXBlLCBzbyBpdCB3YXMgcmVuYW1lZCB0byBgdG9vbHRpcEljb25gXG4gIGdldCB0b29sdGlwSWNvbigpOiBOekZvcm1Ub29sdGlwSWNvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBJY29uICE9PSAnZGVmYXVsdCdcbiAgICAgID8gdGhpcy5fdG9vbHRpcEljb25cbiAgICAgIDogdG9Ub29sdGlwSWNvbih0aGlzLm56Rm9ybURpcmVjdGl2ZT8ubnpUb29sdGlwSWNvbiB8fCBEZWZhdWx0VG9vbHRpcEljb24pO1xuICB9XG4gIHByaXZhdGUgX3Rvb2x0aXBJY29uOiBOekZvcm1Ub29sdGlwSWNvbiB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHByaXZhdGUgbnpGb3JtRGlyZWN0aXZlOiBOekZvcm1EaXJlY3RpdmVcbiAgKSB7XG4gICAgcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYW50LWZvcm0taXRlbS1sYWJlbCcpO1xuXG4gICAgaWYgKHRoaXMubnpGb3JtRGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLm56Rm9ybURpcmVjdGl2ZVxuICAgICAgICAuZ2V0SW5wdXRPYnNlcnZhYmxlKCduek5vQ29sb24nKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5ub0NvbG9uID09PSAnZGVmYXVsdCcpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXG4gICAgICB0aGlzLm56Rm9ybURpcmVjdGl2ZVxuICAgICAgICAuZ2V0SW5wdXRPYnNlcnZhYmxlKCduelRvb2x0aXBJY29uJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX3Rvb2x0aXBJY29uID09PSAnZGVmYXVsdCcpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19