UNPKG

angular-admin-lte-teliqo

Version:
185 lines (184 loc) 15.3 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, ViewChild, ViewContainerRef } from '@angular/core'; import { removeListeners } from '../helpers'; export class AlertComponent { /** * \@method constructor * @param {?} changeDetectorRef [description] * @param {?} ngZone [description] * @param {?} renderer2 [description] * @param {?} viewContainerRef [description] */ constructor(changeDetectorRef, ngZone, renderer2, viewContainerRef) { this.changeDetectorRef = changeDetectorRef; this.ngZone = ngZone; this.renderer2 = renderer2; this.viewContainerRef = viewContainerRef; this.dismissibleClass = 'alert-dismissible'; this.isDismissible = true; this.remove = false; this.type = 'alert'; this.listeners = []; this.backgroundColor = 'danger'; this.styleClass = ''; this.onCollapseStart = new EventEmitter(); this.onCollapseDone = new EventEmitter(); } /** * @param {?} value * @return {?} */ set callout(value) { this.type = value ? 'callout' : 'alert'; } /** * @param {?} value * @return {?} */ set _isDismissible(value) { this.isDismissible = value; if (value) { this.dismissibleClass = `${this.type}-dismissible`; } else { this.dismissibleClass = ''; } } /** * \@method ngOnInit * @return {?} */ ngAfterViewInit() { this.ngZone.runOutsideAngular(() => { if (this.dismissOnTimeout) { setTimeout(() => { if (!(/** @type {?} */ (this.changeDetectorRef)).destroyed) { this.remove = true; this.changeDetectorRef.detectChanges(); } }, this.dismissOnTimeout); } if (this.removeButtonElement) { this.listeners.push(this.renderer2.listen(this.removeButtonElement.nativeElement, 'click', () => { this.remove = true; this.changeDetectorRef.detectChanges(); })); } }); } /** * \@method ngOnDesroy * @return {?} */ ngOnDestroy() { removeListeners(this.listeners); } /** * [collapseStart description] * \@method collapseStart * @param {?} event [description] * @return {?} */ collapseStart(event) { this.onCollapseStart.emit(event); } /** * [collapseDone description] * \@method collapseDone * @param {?} event [description] * @return {?} */ collapseDone(event) { if (event.toState === '1') { this.listeners = removeListeners(this.listeners); this.removed = true; this.viewContainerRef.clear(); this.changeDetectorRef.detectChanges(); } this.onCollapseDone.emit(event); } } AlertComponent.decorators = [ { type: Component, args: [{ selector: 'mk-alert', template: `<div *ngIf="!removed" [collapseAnimation]="remove" (collapseAnimation.start)="collapseStart($event)" (collapseAnimation.done)="collapseDone($event)"> <div [mkColor]="backgroundColor" mkColorProperty="background-color" [mkColorPrefix]="type" [mkFontColor]="color" [ngClass]="[styleClass, dismissibleClass, type]"> <button *ngIf="isDismissible" type="button" class="close" #removeButtonElement>&times;</button> <ng-content></ng-content> </div> </div> `, styles: [`.callout-dismissable,.callout-dismissible{padding-right:35px}.callout-dismissable .close,.callout-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.callout .close{color:#000;opacity:.2}.callout .icon{margin-right:10px}`], changeDetection: ChangeDetectionStrategy.OnPush },] }, ]; /** @nocollapse */ AlertComponent.ctorParameters = () => [ { type: ChangeDetectorRef, }, { type: NgZone, }, { type: Renderer2, }, { type: ViewContainerRef, }, ]; AlertComponent.propDecorators = { "backgroundColor": [{ type: Input },], "callout": [{ type: Input },], "color": [{ type: Input },], "dismissOnTimeout": [{ type: Input },], "_isDismissible": [{ type: Input, args: ['isDismissible',] },], "styleClass": [{ type: Input },], "onCollapseStart": [{ type: Output },], "onCollapseDone": [{ type: Output },], "removeButtonElement": [{ type: ViewChild, args: ['removeButtonElement',] },], "containerElementRef": [{ type: ViewChild, args: ['containerElementRef', { read: ViewContainerRef },] },], }; function AlertComponent_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ AlertComponent.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ AlertComponent.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ AlertComponent.propDecorators; /** @type {?} */ AlertComponent.prototype.dismissibleClass; /** @type {?} */ AlertComponent.prototype.isDismissible; /** @type {?} */ AlertComponent.prototype.remove; /** @type {?} */ AlertComponent.prototype.removed; /** @type {?} */ AlertComponent.prototype.type; /** @type {?} */ AlertComponent.prototype.listeners; /** @type {?} */ AlertComponent.prototype.backgroundColor; /** @type {?} */ AlertComponent.prototype.color; /** @type {?} */ AlertComponent.prototype.dismissOnTimeout; /** @type {?} */ AlertComponent.prototype.styleClass; /** @type {?} */ AlertComponent.prototype.onCollapseStart; /** @type {?} */ AlertComponent.prototype.onCollapseDone; /** @type {?} */ AlertComponent.prototype.removeButtonElement; /** @type {?} */ AlertComponent.prototype.containerElementRef; /** @type {?} */ AlertComponent.prototype.changeDetectorRef; /** @type {?} */ AlertComponent.prototype.ngZone; /** @type {?} */ AlertComponent.prototype.renderer2; /** @type {?} */ AlertComponent.prototype.viewContainerRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1hZG1pbi1sdGUtdGVsaXFvLyIsInNvdXJjZXMiOlsibGliL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxnQkFBZ0IsRUFFakIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQWlCM0MsTUFBTTs7Ozs7Ozs7SUFzQ0osWUFDVSxtQkFDQSxRQUNBLFdBQ0E7UUFIQSxzQkFBaUIsR0FBakIsaUJBQWlCO1FBQ2pCLFdBQU0sR0FBTixNQUFNO1FBQ04sY0FBUyxHQUFULFNBQVM7UUFDVCxxQkFBZ0IsR0FBaEIsZ0JBQWdCO2dDQXpDQSxtQkFBbUI7NkJBQ3RCLElBQUk7c0JBQ1gsS0FBSztvQkFFUCxPQUFPO3lCQUVELEVBQUU7K0JBRVksUUFBUTswQkFjYixFQUFFOytCQUVJLElBQUksWUFBWSxFQUFFOzhCQUNuQixJQUFJLFlBQVksRUFBRTtLQWlCaEQ7Ozs7O1FBakNnQixPQUFPLENBQUMsS0FBYztRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Ozs7OztRQUlQLGNBQWMsQ0FBQyxLQUFjO1FBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDVixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUM7U0FDcEQ7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7U0FDNUI7Ozs7OztJQTJCSCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFDLElBQUksQ0FBQyxpQkFBNEIsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7d0JBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO3dCQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7cUJBQ3hDO2lCQUNGLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDM0I7WUFDRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUU7b0JBQzlGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3hDLENBQUMsQ0FBQyxDQUFDO2FBQ0w7U0FDRixDQUFDLENBQUM7S0FDSjs7Ozs7SUFLRCxXQUFXO1FBQ1QsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNqQzs7Ozs7OztJQU9NLGFBQWEsQ0FBQyxLQUFxQjtRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzs7Ozs7Ozs7SUFRNUIsWUFBWSxDQUFDLEtBQXFCO1FBQ3ZDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzs7O1lBM0duQyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFFBQVEsRUFBRTs7Ozs7O0NBTVg7Z0JBQ0MsTUFBTSxFQUFFLENBQUMsbVBBQW1QLENBQUM7Z0JBQzdQLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7O1lBaENDLGlCQUFpQjtZQUtqQixNQUFNO1lBR04sU0FBUztZQUVULGdCQUFnQjs7O2dDQWdDZixLQUFLO3dCQUNMLEtBQUs7c0JBR0wsS0FBSztpQ0FDTCxLQUFLOytCQUNMLEtBQUssU0FBQyxlQUFlOzJCQVFyQixLQUFLO2dDQUVMLE1BQU07K0JBQ04sTUFBTTtvQ0FFTixTQUFTLFNBQUMscUJBQXFCO29DQUMvQixTQUFTLFNBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QW5pbWF0aW9uRXZlbnR9IGZyb20gJy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucy5pbnRlcmZhY2UnO1xuXG5pbXBvcnQge3JlbW92ZUxpc3RlbmVyc30gZnJvbSAnLi4vaGVscGVycyc7XG5cbi8qXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtay1hbGVydCcsXG4gIHRlbXBsYXRlOiBgPGRpdiAqbmdJZj1cIiFyZW1vdmVkXCIgW2NvbGxhcHNlQW5pbWF0aW9uXT1cInJlbW92ZVwiIChjb2xsYXBzZUFuaW1hdGlvbi5zdGFydCk9XCJjb2xsYXBzZVN0YXJ0KCRldmVudClcIiAoY29sbGFwc2VBbmltYXRpb24uZG9uZSk9XCJjb2xsYXBzZURvbmUoJGV2ZW50KVwiPlxuICA8ZGl2IFtta0NvbG9yXT1cImJhY2tncm91bmRDb2xvclwiIG1rQ29sb3JQcm9wZXJ0eT1cImJhY2tncm91bmQtY29sb3JcIiBbbWtDb2xvclByZWZpeF09XCJ0eXBlXCIgW21rRm9udENvbG9yXT1cImNvbG9yXCIgW25nQ2xhc3NdPVwiW3N0eWxlQ2xhc3MsIGRpc21pc3NpYmxlQ2xhc3MsIHR5cGVdXCI+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImlzRGlzbWlzc2libGVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiICNyZW1vdmVCdXR0b25FbGVtZW50PiZ0aW1lczs8L2J1dHRvbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG5gLFxuICBzdHlsZXM6IFtgLmNhbGxvdXQtZGlzbWlzc2FibGUsLmNhbGxvdXQtZGlzbWlzc2libGV7cGFkZGluZy1yaWdodDozNXB4fS5jYWxsb3V0LWRpc21pc3NhYmxlIC5jbG9zZSwuY2FsbG91dC1kaXNtaXNzaWJsZSAuY2xvc2V7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0ycHg7cmlnaHQ6LTIxcHg7Y29sb3I6aW5oZXJpdH0uY2FsbG91dCAuY2xvc2V7Y29sb3I6IzAwMDtvcGFjaXR5Oi4yfS5jYWxsb3V0IC5pY29ue21hcmdpbi1yaWdodDoxMHB4fWBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBkaXNtaXNzaWJsZUNsYXNzID0gJ2FsZXJ0LWRpc21pc3NpYmxlJztcbiAgcHVibGljIGlzRGlzbWlzc2libGUgPSB0cnVlO1xuICBwdWJsaWMgcmVtb3ZlID0gZmFsc2U7XG4gIHB1YmxpYyByZW1vdmVkOiBib29sZWFuO1xuICBwdWJsaWMgdHlwZSA9ICdhbGVydCc7XG5cbiAgcHJpdmF0ZSBsaXN0ZW5lcnMgPSBbXTtcblxuICBASW5wdXQoKSBwdWJsaWMgYmFja2dyb3VuZENvbG9yID0gJ2Rhbmdlcic7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgY2FsbG91dCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudHlwZSA9IHZhbHVlID8gJ2NhbGxvdXQnIDogJ2FsZXJ0JztcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgY29sb3I6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGRpc21pc3NPblRpbWVvdXQ6IG51bWJlcjtcbiAgQElucHV0KCdpc0Rpc21pc3NpYmxlJykgcHVibGljIHNldCBfaXNEaXNtaXNzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNEaXNtaXNzaWJsZSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5kaXNtaXNzaWJsZUNsYXNzID0gYCR7dGhpcy50eXBlfS1kaXNtaXNzaWJsZWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzbWlzc2libGVDbGFzcyA9ICcnO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc3R5bGVDbGFzcyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Db2xsYXBzZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ29sbGFwc2VEb25lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3JlbW92ZUJ1dHRvbkVsZW1lbnQnKSBwcml2YXRlIHJlbW92ZUJ1dHRvbkVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsZW1lbnRSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHJpdmF0ZSBjb250YWluZXJFbGVtZW50UmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKlxuICAgKiBAbWV0aG9kIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSAgY2hhbmdlRGV0ZWN0b3JSZWYgW2Rlc2NyaXB0aW9uXVxuICAgKiBAcGFyYW0gIG5nWm9uZSAgICAgICAgICAgIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtICByZW5kZXJlcjIgICAgICAgICBbZGVzY3JpcHRpb25dXG4gICAqIEBwYXJhbSAgdmlld0NvbnRhaW5lclJlZiAgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgLyoqXG4gICAqIEBtZXRob2QgbmdPbkluaXRcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kaXNtaXNzT25UaW1lb3V0KSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghKHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYgYXMgVmlld1JlZikuZGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHRoaXMuZGlzbWlzc09uVGltZW91dCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5yZW1vdmVCdXR0b25FbGVtZW50KSB7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMucmVtb3ZlQnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW1vdmUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQG1ldGhvZCBuZ09uRGVzcm95XG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICByZW1vdmVMaXN0ZW5lcnModGhpcy5saXN0ZW5lcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtjb2xsYXBzZVN0YXJ0IGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGNvbGxhcHNlU3RhcnRcbiAgICogQHBhcmFtIGV2ZW50IFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBjb2xsYXBzZVN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIHRoaXMub25Db2xsYXBzZVN0YXJ0LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtjb2xsYXBzZURvbmUgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2QgY29sbGFwc2VEb25lXG4gICAqIEBwYXJhbSBldmVudCBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgY29sbGFwc2VEb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSAnMScpIHtcbiAgICAgIHRoaXMubGlzdGVuZXJzID0gcmVtb3ZlTGlzdGVuZXJzKHRoaXMubGlzdGVuZXJzKTtcbiAgICAgIHRoaXMucmVtb3ZlZCA9IHRydWU7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICB0aGlzLm9uQ29sbGFwc2VEb25lLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iXX0=