angular-admin-lte-teliqo
Version:
npm# angular-admin-lte
185 lines (184 loc) • 15.3 kB
JavaScript
/**
* @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>×</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=