angular-admin-lte-teliqo
Version:
npm# angular-admin-lte
212 lines (211 loc) • 17.7 kB
JavaScript
/**
* @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
*/
export class 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',] },],
};
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
*/
export class 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',] },],
};
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
*/
export class HeaderComponent {
/**
* \@method constructor
* @param {?} layoutStore [description]
* @param {?} ngZone [description]
* @param {?} renderer2 [description]
* @param {?} elementRef [description]
* @param {?} headerService [description]
*/
constructor(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
* @return {?}
*/
ngAfterViewInit() {
this.headerService.elementRef = this.headerElement;
if (this.sidebarLeftToggleElement) {
this.subscriptions.push(this.layoutStore.isSidebarLeftCollapsed.subscribe((value) => {
this.isSidebarLeftCollapsed = value;
}));
this.ngZone.runOutsideAngular(() => {
this.listeners.push(this.renderer2.listen(this.sidebarLeftToggleElement.nativeElement, 'click', (event) => {
event.preventDefault();
this.layoutStore.sidebarLeftCollapsed(!this.isSidebarLeftCollapsed);
}));
});
}
if (this.sidebarRightToggleElement) {
this.subscriptions.push(this.layoutStore.isSidebarRightCollapsed.subscribe((value) => {
this.isSidebarRightCollapsed = value;
}));
this.ngZone.runOutsideAngular(() => {
this.listeners.push(this.renderer2.listen(this.sidebarRightToggleElement.nativeElement, 'click', (event) => {
event.preventDefault();
this.layoutStore.sidebarRightCollapsed(!this.isSidebarRightCollapsed);
}));
});
}
}
/**
* \@method ngOnDestroy
* @return {?}
*/
ngOnDestroy() {
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">
<a href="/" class="logo">
<span class="logo-mini"><ng-template [ngTemplateOutlet]="headerLogoMiniComponent?.templateRef"></ng-template></span>
<span class="logo-lg"><ng-template [ngTemplateOutlet]="headerLogoComponent?.templateRef"></ng-template></span>
</a>
<nav class="navbar navbar-static-top">
<a *ngIf="isSidebarLeftToggle" #sidebarLeftToggleElement href="#" class="sidebar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div *ngIf="isSidebarRightToggle" class="sidebar-right-toggle">
<a #sidebarRightToggleElement href="#"><i class="fa fa-gears"></i></a>
</div>
<ng-content></ng-content>
</nav>
</header>
`,
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 = () => [
{ 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',] },],
};
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItYWRtaW4tbHRlLXRlbGlxby8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsT0FBTyxFQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQVNuRSxNQUFNOzs7WUFKTCxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFLG1FQUFtRTthQUM5RTs7Ozs0QkFFRSxTQUFTLFNBQUMsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVTFCLE1BQU07OztZQUpMLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxRQUFRLEVBQUUsbUVBQW1FO2FBQzlFOzs7OzRCQUVFLFNBQVMsU0FBQyxhQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2QjFCLE1BQU07Ozs7Ozs7OztJQXdCSixZQUNVLGFBQ0EsUUFDQSxXQUNBLFlBQ0E7UUFKQSxnQkFBVyxHQUFYLFdBQVc7UUFDWCxXQUFNLEdBQU4sTUFBTTtRQUNOLGNBQVMsR0FBVCxTQUFTO1FBQ1QsZUFBVSxHQUFWLFVBQVU7UUFDVixrQkFBYSxHQUFiLGFBQWE7eUJBMUJILEVBQUU7NkJBQ0UsRUFBRTttQ0FFSyxJQUFJO29DQUNILElBQUk7S0F1QmhDOzs7OztJQUtKLGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRW5ELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQzthQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO29CQUMvRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztpQkFDckUsQ0FBQyxDQUFDLENBQUM7YUFDTCxDQUFDLENBQUM7U0FDSjtRQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtnQkFDNUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQzthQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO29CQUNoSCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztpQkFDdkUsQ0FBQyxDQUFDLENBQUM7YUFDTCxDQUFDLENBQUM7U0FDSjtLQUNGOzs7OztJQUtELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDOUQ7OztZQTNGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQlg7Z0JBQ0MsTUFBTSxFQUFFLENBQUMsMklBQTJJLENBQUM7YUFDdEo7Ozs7WUFyRE8sV0FBVztZQVBqQixNQUFNO1lBRU4sU0FBUztZQUpULFVBQVU7WUFXSixhQUFhOzs7b0NBMERsQixLQUFLO3FDQUNMLEtBQUs7b0NBRUwsWUFBWSxTQUFDLG1CQUFtQjt3Q0FDaEMsWUFBWSxTQUFDLHVCQUF1Qjs4QkFFcEMsU0FBUyxTQUFDLGVBQWU7eUNBQ3pCLFNBQVMsU0FBQywwQkFBMEI7MENBQ3BDLFNBQVMsU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7TGF5b3V0U3RvcmV9IGZyb20gJy4uL2xheW91dC5zdG9yZSc7XG5cbmltcG9ydCB7SGVhZGVyU2VydmljZX0gZnJvbSAnLi9oZWFkZXIuc2VydmljZSc7XG5cbmltcG9ydCB7cmVtb3ZlTGlzdGVuZXJzLCByZW1vdmVTdWJzY3JpcHRpb25zfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcblxuLyoqXG4gKiBIZWFkZXIgTG9nb1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtay1sYXlvdXQtaGVhZGVyLWxvZ28nLFxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWY+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+J1xufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJMb2dvQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVSZWYnKSBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbi8qKlxuICogSGVhZGVyIExvZ28gTWluaVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtay1sYXlvdXQtaGVhZGVyLWxvZ28tbWluaScsXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT4nXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckxvZ29NaW5pQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVSZWYnKSBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbi8qKlxuICogSGVhZGVyXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21rLWxheW91dC1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYDxoZWFkZXIgI2hlYWRlckVsZW1lbnQgY2xhc3M9XCJtYWluLWhlYWRlclwiPlxuICA8YSBocmVmPVwiL1wiIGNsYXNzPVwibG9nb1wiPlxuICAgIDxzcGFuIGNsYXNzPVwibG9nby1taW5pXCI+PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlckxvZ29NaW5pQ29tcG9uZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwibG9nby1sZ1wiPjxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJMb2dvQ29tcG9uZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+PC9zcGFuPlxuICA8L2E+XG4gIDxuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLXN0YXRpYy10b3BcIj5cbiAgICA8YSAqbmdJZj1cImlzU2lkZWJhckxlZnRUb2dnbGVcIiAjc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50IGhyZWY9XCIjXCIgY2xhc3M9XCJzaWRlYmFyLXRvZ2dsZVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImljb24tYmFyXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWJhclwiPjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1iYXJcIj48L3NwYW4+XG4gICAgPC9hPlxuICAgIDxkaXYgKm5nSWY9XCJpc1NpZGViYXJSaWdodFRvZ2dsZVwiIGNsYXNzPVwic2lkZWJhci1yaWdodC10b2dnbGVcIj5cbiAgICAgIDxhICNzaWRlYmFyUmlnaHRUb2dnbGVFbGVtZW50IGhyZWY9XCIjXCI+PGkgY2xhc3M9XCJmYSBmYS1nZWFyc1wiPjwvaT48L2E+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25hdj5cbjwvaGVhZGVyPlxuYCxcbiAgc3R5bGVzOiBbYDpob3N0e2Rpc3BsYXk6YmxvY2t9LnNpZGViYXItcmlnaHQtdG9nZ2xle2Zsb2F0OnJpZ2h0fS5zaWRlYmFyLXJpZ2h0LXRvZ2dsZSBhe3BhZGRpbmc6MTVweDtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjIwcHg7Y3Vyc29yOnBvaW50ZXJ9YF1cbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBpc1NpZGViYXJMZWZ0Q29sbGFwc2VkOiBib29sZWFuO1xuICBwcml2YXRlIGlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkOiBib29sZWFuO1xuICBwcml2YXRlIGxpc3RlbmVycyA9IFtdO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBbXTtcblxuICBASW5wdXQoKSBpc1NpZGViYXJMZWZ0VG9nZ2xlID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNTaWRlYmFyUmlnaHRUb2dnbGUgPSB0cnVlO1xuXG4gIEBDb250ZW50Q2hpbGQoSGVhZGVyTG9nb0NvbXBvbmVudCkgcHVibGljIGhlYWRlckxvZ29Db21wb25lbnQ6IEhlYWRlckxvZ29Db21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGQoSGVhZGVyTG9nb01pbmlDb21wb25lbnQpIHB1YmxpYyBoZWFkZXJMb2dvTWluaUNvbXBvbmVudDogSGVhZGVyTG9nb01pbmlDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnaGVhZGVyRWxlbWVudCcpIHByaXZhdGUgaGVhZGVyRWxlbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50JykgcHJpdmF0ZSBzaWRlYmFyTGVmdFRvZ2dsZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQnKSBwcml2YXRlIHNpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEBtZXRob2QgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIGxheW91dFN0b3JlIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtIG5nWm9uZSAgICAgIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtIHJlbmRlcmVyMiAgIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgICBbZGVzY3JpcHRpb25dXG4gICAqIEBwYXJhbSBoZWFkZXJTZXJ2aWNlICAgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYXlvdXRTdG9yZTogTGF5b3V0U3RvcmUsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGhlYWRlclNlcnZpY2U6IEhlYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAbWV0aG9kIG5nQWZ0ZXJWaWV3SW5pdFxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaGVhZGVyU2VydmljZS5lbGVtZW50UmVmID0gdGhpcy5oZWFkZXJFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50KSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxheW91dFN0b3JlLmlzU2lkZWJhckxlZnRDb2xsYXBzZWQuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmlzU2lkZWJhckxlZnRDb2xsYXBzZWQgPSB2YWx1ZTtcbiAgICAgIH0pKTtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyMi5saXN0ZW4odGhpcy5zaWRlYmFyTGVmdFRvZ2dsZUVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5sYXlvdXRTdG9yZS5zaWRlYmFyTGVmdENvbGxhcHNlZCghdGhpcy5pc1NpZGViYXJMZWZ0Q29sbGFwc2VkKTtcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGF5b3V0U3RvcmUuaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkID0gdmFsdWU7XG4gICAgICB9KSk7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMuc2lkZWJhclJpZ2h0VG9nZ2xlRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLmxheW91dFN0b3JlLnNpZGViYXJSaWdodENvbGxhcHNlZCghdGhpcy5pc1NpZGViYXJSaWdodENvbGxhcHNlZCk7XG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAbWV0aG9kIG5nT25EZXN0cm95XG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxpc3RlbmVycyA9IHJlbW92ZUxpc3RlbmVycyh0aGlzLmxpc3RlbmVycyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gcmVtb3ZlU3Vic2NyaXB0aW9ucyh0aGlzLnN1YnNjcmlwdGlvbnMpO1xuICB9XG59XG4iXX0=