ad-custom-lib
Version:
This is an UI custom library based on Adminlte library with purpose for personal use, if you need a full template of Primeng please visit https://github.com/mledour/angular-admin-lte
226 lines • 18.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ContentChild, ElementRef, Input, NgZone, Renderer2, TemplateRef, ViewChild } from '@angular/core';
import { removeListeners, removeSubscriptions } from '../../helpers';
import { LayoutStore } from '../layout.store';
import { HeaderService } from './header.service';
/**
* 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>'
}] }
];
HeaderLogoComponent.propDecorators = {
templateRef: [{ type: ViewChild, args: ['templateRef', { static: true },] }]
};
if (false) {
/** @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>'
}] }
];
HeaderLogoMiniComponent.propDecorators = {
templateRef: [{ type: ViewChild, args: ['templateRef', { static: true },] }]
};
if (false) {
/** @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;
this.logoLink = '/';
}
/**
* \@method ngAfterViewInit
* @return {?}
*/
ngAfterViewInit() {
this.headerService.elementRef = this.headerElement;
if (this.sidebarLeftToggleElement) {
this.subscriptions.push(this.layoutStore.isSidebarLeftCollapsed.subscribe((/**
* @param {?} value
* @return {?}
*/
(value) => {
this.isSidebarLeftCollapsed = value;
})));
this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => {
this.listeners.push(this.renderer2.listen(this.sidebarLeftToggleElement.nativeElement, 'click', (/**
* @param {?} event
* @return {?}
*/
(event) => {
event.preventDefault();
this.layoutStore.sidebarLeftCollapsed(!this.isSidebarLeftCollapsed);
})));
}));
}
if (this.sidebarRightToggleElement) {
this.subscriptions.push(this.layoutStore.isSidebarRightCollapsed.subscribe((/**
* @param {?} value
* @return {?}
*/
(value) => {
this.isSidebarRightCollapsed = value;
})));
this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => {
this.listeners.push(this.renderer2.listen(this.sidebarRightToggleElement.nativeElement, 'click', (/**
* @param {?} event
* @return {?}
*/
(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\">\r\n <a [routerLink]=\"logoLink\" class=\"logo\">\r\n <span class=\"logo-mini\">\r\n <ng-template [ngTemplateOutlet]=\"headerLogoMiniComponent?.templateRef\"></ng-template>\r\n </span>\r\n <span class=\"logo-lg\">\r\n <ng-template [ngTemplateOutlet]=\"headerLogoComponent?.templateRef\"></ng-template>\r\n </span>\r\n </a>\r\n <nav class=\"navbar navbar-static-top\">\r\n <a *ngIf=\"isSidebarLeftToggle\" #sidebarLeftToggleElement href=\"#\" class=\"sidebar-toggle\">\r\n <span class=\"sr-only\">Toggle navigation</span>\r\n <span class=\"icon-bar\"></span>\r\n <span class=\"icon-bar\"></span>\r\n <span class=\"icon-bar\"></span>\r\n </a>\r\n <div *ngIf=\"isSidebarRightToggle\" class=\"sidebar-right-toggle\">\r\n <a #sidebarRightToggleElement href=\"#\"><i class=\"fa fa-gears\"></i></a>\r\n </div>\r\n <ng-content></ng-content>\r\n </nav>\r\n</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 }],
logoLink: [{ type: Input }],
headerLogoComponent: [{ type: ContentChild, args: [HeaderLogoComponent, { static: true },] }],
headerLogoMiniComponent: [{ type: ContentChild, args: [HeaderLogoMiniComponent, { static: true },] }],
headerElement: [{ type: ViewChild, args: ['headerElement', { static: true },] }],
sidebarLeftToggleElement: [{ type: ViewChild, args: ['sidebarLeftToggleElement', { static: false },] }],
sidebarRightToggleElement: [{ type: ViewChild, args: ['sidebarRightToggleElement', { static: false },] }]
};
if (false) {
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.isSidebarLeftCollapsed;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.isSidebarRightCollapsed;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.listeners;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.subscriptions;
/** @type {?} */
HeaderComponent.prototype.isSidebarLeftToggle;
/** @type {?} */
HeaderComponent.prototype.isSidebarRightToggle;
/** @type {?} */
HeaderComponent.prototype.logoLink;
/** @type {?} */
HeaderComponent.prototype.headerLogoComponent;
/** @type {?} */
HeaderComponent.prototype.headerLogoMiniComponent;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.headerElement;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.sidebarLeftToggleElement;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.sidebarRightToggleElement;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.layoutStore;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.ngZone;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.renderer2;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
HeaderComponent.prototype.headerService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FkLWN1c3RvbS1saWIvIiwic291cmNlcyI6WyJsaWIvbGF5b3V0L2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ1ksU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQ3ZGLFdBQVcsRUFBRSxTQUFTLEVBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQVNqRCxNQUFNLE9BQU8sbUJBQW1COzs7WUFKL0IsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLFFBQVEsRUFBRSxtRUFBbUU7YUFDaEY7OzswQkFFSSxTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7OztJQUExQywwQ0FBaUY7Ozs7O0FBVXJGLE1BQU0sT0FBTyx1QkFBdUI7OztZQUpuQyxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsUUFBUSxFQUFFLG1FQUFtRTthQUNoRjs7OzBCQUVJLFNBQVMsU0FBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOzs7O0lBQTFDLDhDQUFpRjs7Ozs7QUFXckYsTUFBTSxPQUFPLGVBQWU7Ozs7Ozs7OztJQXlCeEIsWUFDWSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsU0FBb0IsRUFDcEIsVUFBc0IsRUFDdEIsYUFBNEI7UUFKNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMs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RUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7dUNBQzNDLFNBQVMsU0FBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7d0NBQ3ZELFNBQVMsU0FBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Ozs7Ozs7SUFkekQsaURBQXdDOzs7OztJQUN4QyxrREFBeUM7Ozs7O0lBQ3pDLG9DQUF1Qjs7Ozs7SUFDdkIsd0NBQTJCOztJQUUzQiw4Q0FBb0M7O0lBQ3BDLCtDQUFxQzs7SUFDckMsbUNBQXdDOztJQUV4Qyw4Q0FBcUc7O0lBQ3JHLGtEQUFpSDs7Ozs7SUFFakgsd0NBQWdGOzs7OztJQUNoRixtREFBdUc7Ozs7O0lBQ3ZHLG9EQUF5Rzs7Ozs7SUFXckcsc0NBQWdDOzs7OztJQUNoQyxpQ0FBc0I7Ozs7O0lBQ3RCLG9DQUE0Qjs7Ozs7SUFDNUIscUNBQThCOzs7OztJQUM5Qix3Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgUmVuZGVyZXIyLFxyXG4gICAgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgcmVtb3ZlTGlzdGVuZXJzLCByZW1vdmVTdWJzY3JpcHRpb25zIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IExheW91dFN0b3JlIH0gZnJvbSAnLi4vbGF5b3V0LnN0b3JlJztcclxuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4vaGVhZGVyLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEhlYWRlciBMb2dvXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbWstbGF5b3V0LWhlYWRlci1sb2dvJyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJMb2dvQ29tcG9uZW50IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG59XHJcblxyXG4vKipcclxuICogSGVhZGVyIExvZ28gTWluaVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ21rLWxheW91dC1oZWFkZXItbG9nby1taW5pJyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJMb2dvTWluaUNvbXBvbmVudCB7XHJcbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVJlZicsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEhlYWRlclxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ21rLWxheW91dC1oZWFkZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSBpc1NpZGViYXJMZWZ0Q29sbGFwc2VkOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBpc1NpZGViYXJSaWdodENvbGxhcHNlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgbGlzdGVuZXJzID0gW107XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKSBpc1NpZGViYXJMZWZ0VG9nZ2xlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGlzU2lkZWJhclJpZ2h0VG9nZ2xlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGxvZ29MaW5rOiBzdHJpbmcgfCBhbnlbXSA9ICcvJztcclxuXHJcbiAgICBAQ29udGVudENoaWxkKEhlYWRlckxvZ29Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBoZWFkZXJMb2dvQ29tcG9uZW50OiBIZWFkZXJMb2dvQ29tcG9uZW50O1xyXG4gICAgQENvbnRlbnRDaGlsZChIZWFkZXJMb2dvTWluaUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGhlYWRlckxvZ29NaW5pQ29tcG9uZW50OiBIZWFkZXJMb2dvTWluaUNvbXBvbmVudDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBoZWFkZXJFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnc2lkZWJhclJpZ2h0VG9nZ2xlRWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIHNpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAbWV0aG9kIGNvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gbGF5b3V0U3RvcmUgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIG5nWm9uZSAgICAgIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSByZW5kZXJlcjIgICBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiAgIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSBoZWFkZXJTZXJ2aWNlICAgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGxheW91dFN0b3JlOiBMYXlvdXRTdG9yZSxcclxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXIyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBtZXRob2QgbmdBZnRlclZpZXdJbml0XHJcbiAgICAgKi9cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuZWxlbWVudFJlZiA9IHRoaXMuaGVhZGVyRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2lkZWJhckxlZnRUb2dnbGVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGF5b3V0U3RvcmUuaXNTaWRlYmFyTGVmdENvbGxhcHNlZC5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzU2lkZWJhckxlZnRDb2xsYXBzZWQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIyLmxpc3Rlbih0aGlzLnNpZGViYXJMZWZ0VG9nZ2xlRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dFN0b3JlLnNpZGViYXJMZWZ0Q29sbGFwc2VkKCF0aGlzLmlzU2lkZWJhckxlZnRDb2xsYXBzZWQpO1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2lkZWJhclJpZ2h0VG9nZ2xlRWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxheW91dFN0b3JlLmlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIyLmxpc3Rlbih0aGlzLnNpZGViYXJSaWdodFRvZ2dsZUVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTdG9yZS5zaWRlYmFyUmlnaHRDb2xsYXBzZWQoIXRoaXMuaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQpO1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAbWV0aG9kIG5nT25EZXN0cm95XHJcbiAgICAgKi9cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMubGlzdGVuZXJzID0gcmVtb3ZlTGlzdGVuZXJzKHRoaXMubGlzdGVuZXJzKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSByZW1vdmVTdWJzY3JpcHRpb25zKHRoaXMuc3Vic2NyaXB0aW9ucyk7XHJcbiAgICB9XHJcbn1cclxuIl19