UNPKG

angular-admin-lte-teliqo

Version:
212 lines (211 loc) 17.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 */ 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=