UNPKG

ng-zorro-antd

Version:

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

124 lines 15.1 kB
/** * @fileoverview added by tsickle * Generated from: page-header.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __decorate, __metadata } from "tslib"; /** * @license * Copyright Alibaba.com All Rights Reserved. * * 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, ContentChild, ElementRef, EventEmitter, Input, Optional, Output, TemplateRef, ViewEncapsulation } from '@angular/core'; import { Location } from '@angular/common'; import { NzConfigService, WithConfig } from 'ng-zorro-antd/core/config'; import { PREFIX } from 'ng-zorro-antd/core/logger'; import { NzPageHeaderBreadcrumbDirective, NzPageHeaderFooterDirective } from './page-header-cells'; /** @type {?} */ var NZ_CONFIG_COMPONENT_NAME = 'pageHeader'; var NzPageHeaderComponent = /** @class */ (function () { function NzPageHeaderComponent(location, nzConfigService) { this.location = location; this.nzConfigService = nzConfigService; this.isTemplateRefBackIcon = false; this.isStringBackIcon = false; this.nzBackIcon = null; this.nzBack = new EventEmitter(); } /** * @param {?} changes * @return {?} */ NzPageHeaderComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes.hasOwnProperty('nzBackIcon')) { this.isTemplateRefBackIcon = changes.nzBackIcon.currentValue instanceof TemplateRef; this.isStringBackIcon = typeof changes.nzBackIcon.currentValue === 'string'; } }; /** * @return {?} */ NzPageHeaderComponent.prototype.onBack = /** * @return {?} */ function () { if (this.nzBack.observers.length) { this.nzBack.emit(); } else { if (!this.location) { throw new Error(PREFIX + " you should import 'RouterModule' or register 'Location' if you want to use 'nzBack' default event!"); } this.location.back(); } }; NzPageHeaderComponent.decorators = [ { type: Component, args: [{ selector: 'nz-page-header', exportAs: 'nzPageHeader', template: "\n <ng-content select=\"nz-breadcrumb[nz-page-header-breadcrumb]\"></ng-content>\n\n <div class=\"ant-page-header-heading\">\n <div class=\"ant-page-header-heading-left\">\n <!--back-->\n <div *ngIf=\"nzBackIcon !== null\" (click)=\"onBack()\" class=\"ant-page-header-back\">\n <div role=\"button\" tabindex=\"0\" class=\"ant-page-header-back-button\">\n <i *ngIf=\"isStringBackIcon\" nz-icon [nzType]=\"nzBackIcon ? nzBackIcon : 'arrow-left'\" nzTheme=\"outline\"></i>\n <ng-container *ngIf=\"isTemplateRefBackIcon\" [ngTemplateOutlet]=\"nzBackIcon\"></ng-container>\n </div>\n </div>\n <!--avatar-->\n <ng-content select=\"nz-avatar[nz-page-header-avatar]\"></ng-content>\n <!--title-->\n <span class=\"ant-page-header-heading-title\" *ngIf=\"nzTitle\">\n <ng-container *nzStringTemplateOutlet=\"nzTitle\">{{ nzTitle }}</ng-container>\n </span>\n <ng-content *ngIf=\"!nzTitle\" select=\"nz-page-header-title, [nz-page-header-title]\"></ng-content>\n <!--subtitle-->\n <span class=\"ant-page-header-heading-sub-title\" *ngIf=\"nzSubtitle\">\n <ng-container *nzStringTemplateOutlet=\"nzSubtitle\">{{ nzSubtitle }}</ng-container>\n </span>\n <ng-content *ngIf=\"!nzSubtitle\" select=\"nz-page-header-subtitle, [nz-page-header-subtitle]\"></ng-content>\n <ng-content select=\"nz-page-header-tags, [nz-page-header-tags]\"></ng-content>\n </div>\n\n <ng-content select=\"nz-page-header-extra, [nz-page-header-extra]\"></ng-content>\n </div>\n\n <ng-content select=\"nz-page-header-content, [nz-page-header-content]\"></ng-content>\n <ng-content select=\"nz-page-header-footer, [nz-page-header-footer]\"></ng-content>\n ", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ant-page-header', '[class.has-footer]': 'nzPageHeaderFooter', '[class.ant-page-header-ghost]': 'nzGhost', '[class.has-breadcrumb]': 'nzPageHeaderBreadcrumb' } }] } ]; /** @nocollapse */ NzPageHeaderComponent.ctorParameters = function () { return [ { type: Location, decorators: [{ type: Optional }] }, { type: NzConfigService } ]; }; NzPageHeaderComponent.propDecorators = { nzBackIcon: [{ type: Input }], nzTitle: [{ type: Input }], nzSubtitle: [{ type: Input }], nzGhost: [{ type: Input }], nzBack: [{ type: Output }], nzPageHeaderFooter: [{ type: ContentChild, args: [NzPageHeaderFooterDirective, { static: false },] }], nzPageHeaderBreadcrumb: [{ type: ContentChild, args: [NzPageHeaderBreadcrumbDirective, { static: false },] }] }; __decorate([ WithConfig(NZ_CONFIG_COMPONENT_NAME, true), __metadata("design:type", Boolean) ], NzPageHeaderComponent.prototype, "nzGhost", void 0); return NzPageHeaderComponent; }()); export { NzPageHeaderComponent }; if (false) { /** @type {?} */ NzPageHeaderComponent.prototype.isTemplateRefBackIcon; /** @type {?} */ NzPageHeaderComponent.prototype.isStringBackIcon; /** @type {?} */ NzPageHeaderComponent.prototype.nzBackIcon; /** @type {?} */ NzPageHeaderComponent.prototype.nzTitle; /** @type {?} */ NzPageHeaderComponent.prototype.nzSubtitle; /** @type {?} */ NzPageHeaderComponent.prototype.nzGhost; /** @type {?} */ NzPageHeaderComponent.prototype.nzBack; /** @type {?} */ NzPageHeaderComponent.prototype.nzPageHeaderFooter; /** @type {?} */ NzPageHeaderComponent.prototype.nzPageHeaderBreadcrumb; /** * @type {?} * @private */ NzPageHeaderComponent.prototype.location; /** @type {?} */ NzPageHeaderComponent.prototype.nzConfigService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC9wYWdlLWhlYWRlci8iLCJzb3VyY2VzIjpbInBhZ2UtaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0lBRTdGLHdCQUF3QixHQUFHLFlBQVk7QUFFN0M7SUEyREUsK0JBQWdDLFFBQWtCLEVBQVMsZUFBZ0M7UUFBM0QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWIzRiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGVBQVUsR0FBc0MsSUFBSSxDQUFDO1FBSTNDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBTXlDLENBQUM7Ozs7O0lBRS9GLDJDQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxZQUFZLFdBQVcsQ0FBQztZQUNwRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksS0FBSyxRQUFRLENBQUM7U0FDN0U7SUFDSCxDQUFDOzs7O0lBRUQsc0NBQU07OztJQUFOO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUksTUFBTSx3R0FBcUcsQ0FBQyxDQUFDO2FBQ2pJO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7O2dCQTdFRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRSw0d0RBZ0NUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLG9CQUFvQixFQUFFLG9CQUFvQjt3QkFDMUMsK0JBQStCLEVBQUUsU0FBUzt3QkFDMUMsd0JBQXdCLEVBQUUsd0JBQXdCO3FCQUNuRDtpQkFDRjs7OztnQkFuRFEsUUFBUSx1QkFrRUYsUUFBUTtnQkFqRWQsZUFBZTs7OzZCQXVEckIsS0FBSzswQkFDTCxLQUFLOzZCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFDTCxNQUFNO3FDQUVOLFlBQVksU0FBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7eUNBRTNELFlBQVksU0FBQywrQkFBK0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O0lBTFg7UUFBM0MsVUFBVSxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQzs7MERBQWtCO0lBMEJ4RSw0QkFBQztDQUFBLEFBOUVELElBOEVDO1NBakNZLHFCQUFxQjs7O0lBQ2hDLHNEQUE4Qjs7SUFDOUIsaURBQXlCOztJQUV6QiwyQ0FBOEQ7O0lBQzlELHdDQUE2Qzs7SUFDN0MsMkNBQWdEOztJQUNoRCx3Q0FBc0U7O0lBQ3RFLHVDQUFxRDs7SUFFckQsbURBQTBIOztJQUUxSCx1REFBc0k7Ozs7O0lBRTFILHlDQUFzQzs7SUFBRSxnREFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTnpDb25maWdTZXJ2aWNlLCBXaXRoQ29uZmlnIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL2NvbmZpZyc7XG5pbXBvcnQgeyBQUkVGSVggfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvbG9nZ2VyJztcbmltcG9ydCB7IE56UGFnZUhlYWRlckJyZWFkY3J1bWJEaXJlY3RpdmUsIE56UGFnZUhlYWRlckZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vcGFnZS1oZWFkZXItY2VsbHMnO1xuXG5jb25zdCBOWl9DT05GSUdfQ09NUE9ORU5UX05BTUUgPSAncGFnZUhlYWRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ256LXBhZ2UtaGVhZGVyJyxcbiAgZXhwb3J0QXM6ICduelBhZ2VIZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm56LWJyZWFkY3J1bWJbbnotcGFnZS1oZWFkZXItYnJlYWRjcnVtYl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYW50LXBhZ2UtaGVhZGVyLWhlYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhbnQtcGFnZS1oZWFkZXItaGVhZGluZy1sZWZ0XCI+XG4gICAgICAgIDwhLS1iYWNrLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJuekJhY2tJY29uICE9PSBudWxsXCIgKGNsaWNrKT1cIm9uQmFjaygpXCIgY2xhc3M9XCJhbnQtcGFnZS1oZWFkZXItYmFja1wiPlxuICAgICAgICAgIDxkaXYgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwiYW50LXBhZ2UtaGVhZGVyLWJhY2stYnV0dG9uXCI+XG4gICAgICAgICAgICA8aSAqbmdJZj1cImlzU3RyaW5nQmFja0ljb25cIiBuei1pY29uIFtuelR5cGVdPVwibnpCYWNrSWNvbiA/IG56QmFja0ljb24gOiAnYXJyb3ctbGVmdCdcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvaT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmQmFja0ljb25cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJuekJhY2tJY29uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tYXZhdGFyLS0+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm56LWF2YXRhcltuei1wYWdlLWhlYWRlci1hdmF0YXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8IS0tdGl0bGUtLT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhbnQtcGFnZS1oZWFkZXItaGVhZGluZy10aXRsZVwiICpuZ0lmPVwibnpUaXRsZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm56U3RyaW5nVGVtcGxhdGVPdXRsZXQ9XCJuelRpdGxlXCI+e3sgbnpUaXRsZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiIW56VGl0bGVcIiBzZWxlY3Q9XCJuei1wYWdlLWhlYWRlci10aXRsZSwgW256LXBhZ2UtaGVhZGVyLXRpdGxlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPCEtLXN1YnRpdGxlLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYW50LXBhZ2UtaGVhZGVyLWhlYWRpbmctc3ViLXRpdGxlXCIgKm5nSWY9XCJuelN1YnRpdGxlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbnpTdHJpbmdUZW1wbGF0ZU91dGxldD1cIm56U3VidGl0bGVcIj57eyBuelN1YnRpdGxlIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhbnpTdWJ0aXRsZVwiIHNlbGVjdD1cIm56LXBhZ2UtaGVhZGVyLXN1YnRpdGxlLCBbbnotcGFnZS1oZWFkZXItc3VidGl0bGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuei1wYWdlLWhlYWRlci10YWdzLCBbbnotcGFnZS1oZWFkZXItdGFnc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnotcGFnZS1oZWFkZXItZXh0cmEsIFtuei1wYWdlLWhlYWRlci1leHRyYV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuei1wYWdlLWhlYWRlci1jb250ZW50LCBbbnotcGFnZS1oZWFkZXItY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnotcGFnZS1oZWFkZXItZm9vdGVyLCBbbnotcGFnZS1oZWFkZXItZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2FudC1wYWdlLWhlYWRlcicsXG4gICAgJ1tjbGFzcy5oYXMtZm9vdGVyXSc6ICduelBhZ2VIZWFkZXJGb290ZXInLFxuICAgICdbY2xhc3MuYW50LXBhZ2UtaGVhZGVyLWdob3N0XSc6ICduekdob3N0JyxcbiAgICAnW2NsYXNzLmhhcy1icmVhZGNydW1iXSc6ICduelBhZ2VIZWFkZXJCcmVhZGNydW1iJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE56UGFnZUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIGlzVGVtcGxhdGVSZWZCYWNrSWNvbiA9IGZhbHNlO1xuICBpc1N0cmluZ0JhY2tJY29uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbnpCYWNrSWNvbjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpUaXRsZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG4gIEBJbnB1dCgpIG56U3VidGl0bGU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBASW5wdXQoKSBAV2l0aENvbmZpZyhOWl9DT05GSUdfQ09NUE9ORU5UX05BTUUsIHRydWUpIG56R2hvc3Q6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSByZWFkb25seSBuekJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChOelBhZ2VIZWFkZXJGb290ZXJEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSBuelBhZ2VIZWFkZXJGb290ZXI6IEVsZW1lbnRSZWY8TnpQYWdlSGVhZGVyRm9vdGVyRGlyZWN0aXZlPjtcblxuICBAQ29udGVudENoaWxkKE56UGFnZUhlYWRlckJyZWFkY3J1bWJEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSBuelBhZ2VIZWFkZXJCcmVhZGNydW1iOiBFbGVtZW50UmVmPE56UGFnZUhlYWRlckJyZWFkY3J1bWJEaXJlY3RpdmU+O1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwdWJsaWMgbnpDb25maWdTZXJ2aWNlOiBOekNvbmZpZ1NlcnZpY2UpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCduekJhY2tJY29uJykpIHtcbiAgICAgIHRoaXMuaXNUZW1wbGF0ZVJlZkJhY2tJY29uID0gY2hhbmdlcy5uekJhY2tJY29uLmN1cnJlbnRWYWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgICAgdGhpcy5pc1N0cmluZ0JhY2tJY29uID0gdHlwZW9mIGNoYW5nZXMubnpCYWNrSWNvbi5jdXJyZW50VmFsdWUgPT09ICdzdHJpbmcnO1xuICAgIH1cbiAgfVxuXG4gIG9uQmFjaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uekJhY2sub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5uekJhY2suZW1pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMubG9jYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke1BSRUZJWH0geW91IHNob3VsZCBpbXBvcnQgJ1JvdXRlck1vZHVsZScgb3IgcmVnaXN0ZXIgJ0xvY2F0aW9uJyBpZiB5b3Ugd2FudCB0byB1c2UgJ256QmFjaycgZGVmYXVsdCBldmVudCFgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgIH1cbiAgfVxufVxuIl19