UNPKG

angular-admin-lte-teliqo

Version:
219 lines (218 loc) 18.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Component, ContentChild, ElementRef, Input, NgZone, Renderer2, TemplateRef, ViewChild } from '@angular/core'; import { LayoutStore } from '../layout.store'; import { HeaderService } from './header.service'; import { removeListeners, removeSubscriptions } from '../../helpers'; /** * Header Logo */ var HeaderLogoComponent = /** @class */ (function () { function HeaderLogoComponent() { } HeaderLogoComponent.decorators = [ { type: Component, args: [{ selector: 'mk-layout-header-logo', template: '<ng-template #templateRef><ng-content></ng-content></ng-template>' },] }, ]; /** @nocollapse */ HeaderLogoComponent.propDecorators = { "templateRef": [{ type: ViewChild, args: ['templateRef',] },], }; return HeaderLogoComponent; }()); export { HeaderLogoComponent }; function HeaderLogoComponent_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ HeaderLogoComponent.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ HeaderLogoComponent.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ HeaderLogoComponent.propDecorators; /** @type {?} */ HeaderLogoComponent.prototype.templateRef; } /** * Header Logo Mini */ var HeaderLogoMiniComponent = /** @class */ (function () { function HeaderLogoMiniComponent() { } HeaderLogoMiniComponent.decorators = [ { type: Component, args: [{ selector: 'mk-layout-header-logo-mini', template: '<ng-template #templateRef><ng-content></ng-content></ng-template>' },] }, ]; /** @nocollapse */ HeaderLogoMiniComponent.propDecorators = { "templateRef": [{ type: ViewChild, args: ['templateRef',] },], }; return HeaderLogoMiniComponent; }()); export { HeaderLogoMiniComponent }; function HeaderLogoMiniComponent_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ HeaderLogoMiniComponent.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ HeaderLogoMiniComponent.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ HeaderLogoMiniComponent.propDecorators; /** @type {?} */ HeaderLogoMiniComponent.prototype.templateRef; } /** * Header */ var HeaderComponent = /** @class */ (function () { /** * @method constructor * @param layoutStore [description] * @param ngZone [description] * @param renderer2 [description] * @param elementRef [description] * @param headerService [description] */ function HeaderComponent(layoutStore, ngZone, renderer2, elementRef, headerService) { this.layoutStore = layoutStore; this.ngZone = ngZone; this.renderer2 = renderer2; this.elementRef = elementRef; this.headerService = headerService; this.listeners = []; this.subscriptions = []; this.isSidebarLeftToggle = true; this.isSidebarRightToggle = true; } /** * @method ngAfterViewInit */ /** * \@method ngAfterViewInit * @return {?} */ HeaderComponent.prototype.ngAfterViewInit = /** * \@method ngAfterViewInit * @return {?} */ function () { var _this = this; this.headerService.elementRef = this.headerElement; if (this.sidebarLeftToggleElement) { this.subscriptions.push(this.layoutStore.isSidebarLeftCollapsed.subscribe(function (value) { _this.isSidebarLeftCollapsed = value; })); this.ngZone.runOutsideAngular(function () { _this.listeners.push(_this.renderer2.listen(_this.sidebarLeftToggleElement.nativeElement, 'click', function (event) { event.preventDefault(); _this.layoutStore.sidebarLeftCollapsed(!_this.isSidebarLeftCollapsed); })); }); } if (this.sidebarRightToggleElement) { this.subscriptions.push(this.layoutStore.isSidebarRightCollapsed.subscribe(function (value) { _this.isSidebarRightCollapsed = value; })); this.ngZone.runOutsideAngular(function () { _this.listeners.push(_this.renderer2.listen(_this.sidebarRightToggleElement.nativeElement, 'click', function (event) { event.preventDefault(); _this.layoutStore.sidebarRightCollapsed(!_this.isSidebarRightCollapsed); })); }); } }; /** * @method ngOnDestroy */ /** * \@method ngOnDestroy * @return {?} */ HeaderComponent.prototype.ngOnDestroy = /** * \@method ngOnDestroy * @return {?} */ function () { this.listeners = removeListeners(this.listeners); this.subscriptions = removeSubscriptions(this.subscriptions); }; HeaderComponent.decorators = [ { type: Component, args: [{ selector: 'mk-layout-header', template: "<header #headerElement class=\"main-header\">\n <a href=\"/\" class=\"logo\">\n <span class=\"logo-mini\"><ng-template [ngTemplateOutlet]=\"headerLogoMiniComponent?.templateRef\"></ng-template></span>\n <span class=\"logo-lg\"><ng-template [ngTemplateOutlet]=\"headerLogoComponent?.templateRef\"></ng-template></span>\n </a>\n <nav class=\"navbar navbar-static-top\">\n <a *ngIf=\"isSidebarLeftToggle\" #sidebarLeftToggleElement href=\"#\" class=\"sidebar-toggle\">\n <span class=\"sr-only\">Toggle navigation</span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </a>\n <div *ngIf=\"isSidebarRightToggle\" class=\"sidebar-right-toggle\">\n <a #sidebarRightToggleElement href=\"#\"><i class=\"fa fa-gears\"></i></a>\n </div>\n <ng-content></ng-content>\n </nav>\n</header>\n", styles: [":host{display:block}.sidebar-right-toggle{float:right}.sidebar-right-toggle a{padding:15px;display:block;line-height:20px;cursor:pointer}"] },] }, ]; /** @nocollapse */ HeaderComponent.ctorParameters = function () { return [ { type: LayoutStore, }, { type: NgZone, }, { type: Renderer2, }, { type: ElementRef, }, { type: HeaderService, }, ]; }; HeaderComponent.propDecorators = { "isSidebarLeftToggle": [{ type: Input },], "isSidebarRightToggle": [{ type: Input },], "headerLogoComponent": [{ type: ContentChild, args: [HeaderLogoComponent,] },], "headerLogoMiniComponent": [{ type: ContentChild, args: [HeaderLogoMiniComponent,] },], "headerElement": [{ type: ViewChild, args: ['headerElement',] },], "sidebarLeftToggleElement": [{ type: ViewChild, args: ['sidebarLeftToggleElement',] },], "sidebarRightToggleElement": [{ type: ViewChild, args: ['sidebarRightToggleElement',] },], }; return HeaderComponent; }()); export { HeaderComponent }; function HeaderComponent_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ HeaderComponent.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ HeaderComponent.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ HeaderComponent.propDecorators; /** @type {?} */ HeaderComponent.prototype.isSidebarLeftCollapsed; /** @type {?} */ HeaderComponent.prototype.isSidebarRightCollapsed; /** @type {?} */ HeaderComponent.prototype.listeners; /** @type {?} */ HeaderComponent.prototype.subscriptions; /** @type {?} */ HeaderComponent.prototype.isSidebarLeftToggle; /** @type {?} */ HeaderComponent.prototype.isSidebarRightToggle; /** @type {?} */ HeaderComponent.prototype.headerLogoComponent; /** @type {?} */ HeaderComponent.prototype.headerLogoMiniComponent; /** @type {?} */ HeaderComponent.prototype.headerElement; /** @type {?} */ HeaderComponent.prototype.sidebarLeftToggleElement; /** @type {?} */ HeaderComponent.prototype.sidebarRightToggleElement; /** @type {?} */ HeaderComponent.prototype.layoutStore; /** @type {?} */ HeaderComponent.prototype.ngZone; /** @type {?} */ HeaderComponent.prototype.renderer2; /** @type {?} */ HeaderComponent.prototype.elementRef; /** @type {?} */ HeaderComponent.prototype.headerService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItYWRtaW4tbHRlLXRlbGlxby8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsT0FBTyxFQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Z0JBS2xFLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsbUVBQW1FO2lCQUM5RTs7OztnQ0FFRSxTQUFTLFNBQUMsYUFBYTs7OEJBM0IxQjs7U0EwQmEsbUJBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBTy9CLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxRQUFRLEVBQUUsbUVBQW1FO2lCQUM5RTs7OztnQ0FFRSxTQUFTLFNBQUMsYUFBYTs7a0NBdEMxQjs7U0FxQ2EsdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE4Q2xDOzs7Ozs7O09BT0c7SUFDSCx5QkFDVSxhQUNBLFFBQ0EsV0FDQSxZQUNBO1FBSkEsZ0JBQVcsR0FBWCxXQUFXO1FBQ1gsV0FBTSxHQUFOLE1BQU07UUFDTixjQUFTLEdBQVQsU0FBUztRQUNULGVBQVUsR0FBVixVQUFVO1FBQ1Ysa0JBQWEsR0FBYixhQUFhO3lCQTFCSCxFQUFFOzZCQUNFLEVBQUU7bUNBRUssSUFBSTtvQ0FDSCxJQUFJO0tBdUJoQztJQUVKOztPQUVHOzs7OztJQUNILHlDQUFlOzs7O0lBQWY7UUFBQSxpQkF5QkM7UUF4QkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUVuRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFVBQUMsS0FBYztnQkFDdkYsS0FBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQzthQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7Z0JBQzVCLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFVBQUMsS0FBWTtvQkFDM0csS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixLQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7aUJBQ3JFLENBQUMsQ0FBQyxDQUFDO2FBQ0wsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLFVBQUMsS0FBYztnQkFDeEYsS0FBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQzthQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7Z0JBQzVCLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFVBQUMsS0FBWTtvQkFDNUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixLQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsS0FBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7aUJBQ3ZFLENBQUMsQ0FBQyxDQUFDO2FBQ0wsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUVEOztPQUVHOzs7OztJQUNILHFDQUFXOzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDOUQ7O2dCQTNGRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLHMzQkFrQlg7b0JBQ0MsTUFBTSxFQUFFLENBQUMsMklBQTJJLENBQUM7aUJBQ3RKOzs7O2dCQXJETyxXQUFXO2dCQVBqQixNQUFNO2dCQUVOLFNBQVM7Z0JBSlQsVUFBVTtnQkFXSixhQUFhOzs7d0NBMERsQixLQUFLO3lDQUNMLEtBQUs7d0NBRUwsWUFBWSxTQUFDLG1CQUFtQjs0Q0FDaEMsWUFBWSxTQUFDLHVCQUF1QjtrQ0FFcEMsU0FBUyxTQUFDLGVBQWU7NkNBQ3pCLFNBQVMsU0FBQywwQkFBMEI7OENBQ3BDLFNBQVMsU0FBQywyQkFBMkI7OzBCQWpGeEM7O1NBbUVhLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7TGF5b3V0U3RvcmV9IGZyb20gJy4uL2xheW91dC5zdG9yZSc7XG5cbmltcG9ydCB7SGVhZGVyU2VydmljZX0gZnJvbSAnLi9oZWFkZXIuc2VydmljZSc7XG5cbmltcG9ydCB7cmVtb3ZlTGlzdGVuZXJzLCByZW1vdmVTdWJzY3JpcHRpb25zfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcblxuLyoqXG4gKiBIZWFkZXIgTG9nb1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtay1sYXlvdXQtaGVhZGVyLWxvZ28nLFxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWY+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+J1xufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJMb2dvQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVSZWYnKSBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbi8qKlxuICogSGVhZGVyIExvZ28gTWluaVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtay1sYXlvdXQtaGVhZGVyLWxvZ28tbWluaScsXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT4nXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckxvZ29NaW5pQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVSZWYnKSBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbi8qKlxuICogSGVhZGVyXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21rLWxheW91dC1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYDxoZWFkZXIgI2hlYWRlckVsZW1lbnQgY2xhc3M9XCJtYWluLWhlYWRlclwiPlxuICA8YSBocmVmPVwiL1wiIGNsYXNzPVwibG9nb1wiPlxuICAgIDxzcGFuIGNsYXNzPVwibG9nby1taW5pXCI+PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlckxvZ29NaW5pQ29tcG9uZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwibG9nby1sZ1wiPjxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJMb2dvQ29tcG9uZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+PC9zcGFuPlxuICA8L2E+XG4gIDxuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLXN0YXRpYy10b3BcIj5cbiAgICA8YSAqbmdJZj1cImlzU2lkZWJhckxlZnRUb2dnbGVcIiAjc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50IGhyZWY9XCIjXCIgY2xhc3M9XCJzaWRlYmFyLXRvZ2dsZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImljb24tYmFyXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWJhclwiPjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1iYXJcIj48L3NwYW4+XG4gICAgPC9hPlxuICAgIDxkaXYgKm5nSWY9XCJpc1NpZGViYXJSaWdodFRvZ2dsZVwiIGNsYXNzPVwic2lkZWJhci1yaWdodC10b2dnbGVcIj5cbiAgICAgIDxhICNzaWRlYmFyUmlnaHRUb2dnbGVFbGVtZW50IGhyZWY9XCIjXCI+PGkgY2xhc3M9XCJmYSBmYS1nZWFyc1wiPjwvaT48L2E+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25hdj5cbjwvaGVhZGVyPlxuYCxcbiAgc3R5bGVzOiBbYDpob3N0e2Rpc3BsYXk6YmxvY2t9LnNpZGViYXItcmlnaHQtdG9nZ2xle2Zsb2F0OnJpZ2h0fS5zaWRlYmFyLXJpZ2h0LXRvZ2dsZSBhe3BhZGRpbmc6MTVweDtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjIwcHg7Y3Vyc29yOnBvaW50ZXJ9YF1cbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBpc1NpZGViYXJMZWZ0Q29sbGFwc2VkOiBib29sZWFuO1xuICBwcml2YXRlIGlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkOiBib29sZWFuO1xuICBwcml2YXRlIGxpc3RlbmVycyA9IFtdO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBbXTtcblxuICBASW5wdXQoKSBpc1NpZGViYXJMZWZ0VG9nZ2xlID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNTaWRlYmFyUmlnaHRUb2dnbGUgPSB0cnVlO1xuXG4gIEBDb250ZW50Q2hpbGQoSGVhZGVyTG9nb0NvbXBvbmVudCkgcHVibGljIGhlYWRlckxvZ29Db21wb25lbnQ6IEhlYWRlckxvZ29Db21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGQoSGVhZGVyTG9nb01pbmlDb21wb25lbnQpIHB1YmxpYyBoZWFkZXJMb2dvTWluaUNvbXBvbmVudDogSGVhZGVyTG9nb01pbmlDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnaGVhZGVyRWxlbWVudCcpIHByaXZhdGUgaGVhZGVyRWxlbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50JykgcHJpdmF0ZSBzaWRlYmFyTGVmdFRvZ2dsZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQnKSBwcml2YXRlIHNpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEBtZXRob2QgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIGxheW91dFN0b3JlIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtIG5nWm9uZSAgICAgIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtIHJlbmRlcmVyMiAgIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgICBbZGVzY3JpcHRpb25dXG4gICAqIEBwYXJhbSBoZWFkZXJTZXJ2aWNlICAgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYXlvdXRTdG9yZTogTGF5b3V0U3RvcmUsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGhlYWRlclNlcnZpY2U6IEhlYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAbWV0aG9kIG5nQWZ0ZXJWaWV3SW5pdFxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaGVhZGVyU2VydmljZS5lbGVtZW50UmVmID0gdGhpcy5oZWFkZXJFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50KSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxheW91dFN0b3JlLmlzU2lkZWJhckxlZnRDb2xsYXBzZWQuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmlzU2lkZWJhckxlZnRDb2xsYXBzZWQgPSB2YWx1ZTtcbiAgICAgIH0pKTtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyMi5saXN0ZW4odGhpcy5zaWRlYmFyTGVmdFRvZ2dsZUVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5sYXlvdXRTdG9yZS5zaWRlYmFyTGVmdENvbGxhcHNlZCghdGhpcy5pc1NpZGViYXJMZWZ0Q29sbGFwc2VkKTtcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGF5b3V0U3RvcmUuaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkID0gdmFsdWU7XG4gICAgICB9KSk7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMuc2lkZWJhclJpZ2h0VG9nZ2xlRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLmxheW91dFN0b3JlLnNpZGViYXJSaWdodENvbGxhcHNlZCghdGhpcy5pc1NpZGViYXJSaWdodENvbGxhcHNlZCk7XG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAbWV0aG9kIG5nT25EZXN0cm95XG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxpc3RlbmVycyA9IHJlbW92ZUxpc3RlbmVycyh0aGlzLmxpc3RlbmVycyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gcmVtb3ZlU3Vic2NyaXB0aW9ucyh0aGlzLnN1YnNjcmlwdGlvbnMpO1xuICB9XG59XG4iXX0=