@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
132 lines • 14.4 kB
JavaScript
import { Directive, Input, ViewChild } from '@angular/core';
import { Subject } from 'rxjs';
import { DialogComponent } from './dialog.component';
import { DialogChangeEvent, DialogService } from './dialog.service';
import * as i0 from "@angular/core";
import * as i1 from "./dialog.service";
const _c0 = ["dialog"];
/**
* The base dialog component for extending.
*/
// eslint-disable-next-line @angular-eslint/directive-class-suffix
export class BaseDialogComponent {
/**
* Initializes a new instance of the BaseDialogComponent class.
*/
constructor(dialogService) {
this.dialogService = dialogService;
/**
* Keeps the dialog open when another dialog pops up
* by default the dialog will be closed if another dialog opens while this dialog is visible
*/
this.keepOpen = false;
this.internalLevel = 1;
}
set level(value) {
if (this.dialog) {
this.dialog.dialogLevel = value;
}
this.internalLevel = value;
}
/**
* The method to run when the component initialized.
*/
// eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method
ngOnInit() {
/* empty */
}
/**
* The method to run after the component view initialized
*/
ngAfterViewInit() {
if (!this.dialog) {
throw new Error('BaseDialogComponent.ngOnInit: Dialog is not defined');
}
if (!this.id) {
throw new Error('BaseDialogComponent.ngOnInit: ID is not defined');
}
this.level = this.internalLevel;
this.dialogService.register(this.id, this);
this.closeSubscription = this.dialog.closeRequested.subscribe(reason => {
this.closeRequested(reason);
});
}
/**
* The method to run when the component is destroyed.
*/
ngOnDestroy() {
this.dialogService?.unregister(this.id);
this.closeSubscription?.unsubscribe();
}
/**
* handler for when a close is requested
* by default this closes the dialog with no result.
* override this function to prevent this behavior
* @param reason - reason for the close following DialogCloseReason
*/
closeRequested(reason) {
this.hide();
}
/**
* Shows the dialog.
*
* @param options The options for the dialog.
* @return The dialog result subject.
*/
show(options) {
this.dialog.show();
this.dialogResult = new Subject();
this.dialogService.emitDialogChangeEvent(this.id, DialogChangeEvent.Show);
return this.dialogResult;
}
/**
* Sets the level of the dialogso it overlays on top of anything else
* This is set by the dialog service when a dialog opens another dialog
* @param level The level of the dialog so it shows up on top of other items. this should be a number greater than 0
*/
setLevel(level) {
this.level = level;
}
/**
* refocuses the keyboard on the dialog
*/
autoFocus() {
this.dialog.autoFocus();
}
/**
* Hides the dialog.
*
* @param result The result of the dialog action.
*/
hide(result) {
this.dialog.hide();
this.dialogResult.next(result);
this.dialogResult.complete();
this.dialogService.resumeFocus(this.id);
this.dialogService.emitDialogChangeEvent(this.id, DialogChangeEvent.Hide);
}
/**
* Handles clicking on background
*/
onBackgroundClicked() {
if (this.dialog.clickBackdrop) {
this.dialog.onBackgroundClicked();
}
}
}
/** @nocollapse */ BaseDialogComponent.ɵfac = function BaseDialogComponent_Factory(t) { return new (t || BaseDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogService)); };
/** @nocollapse */ BaseDialogComponent.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: BaseDialogComponent, viewQuery: function BaseDialogComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, 5);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dialog = _t.first);
} }, inputs: { id: "id" } });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseDialogComponent, [{
type: Directive
}], function () { return [{ type: i1.DialogService }]; }, { id: [{
type: Input
}], dialog: [{
type: ViewChild,
args: ['dialog']
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGlhbG9nL2Jhc2UtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWdCcEU7O0dBRUc7QUFFSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLG1CQUFtQjtJQTBCNUI7O09BRUc7SUFDSCxZQUFzQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXBCbEQ7OztXQUdHO1FBQ0ksYUFBUSxHQUFHLEtBQUssQ0FBQztRQVdoQixrQkFBYSxHQUFHLENBQUMsQ0FBQztJQU0xQixDQUFDO0lBYkQsSUFBWSxLQUFLLENBQUMsS0FBYTtRQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBVUQ7O09BRUc7SUFDSCxxRUFBcUU7SUFDOUQsUUFBUTtRQUNYLFdBQVc7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxjQUFjLENBQUMsTUFBeUI7UUFDM0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLElBQUksQ0FBQyxPQUFpQjtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsTUFBZ0I7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs7eUdBL0hRLG1CQUFtQjtxR0FBbkIsbUJBQW1COzs7Ozs7dUZBQW5CLG1CQUFtQjtjQUYvQixTQUFTO2dFQUlDLEVBQUU7a0JBRFIsS0FBSztZQUlDLE1BQU07a0JBRFosU0FBUzttQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRGlhbG9nQ2xvc2VSZWFzb24sIERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0NoYW5nZUV2ZW50LCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogVGhlIGRlZmF1bHQgZGlhbG9nIG9wdGlvbnMuXHJcbiAqL1xyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ09wdGlvbnMge1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIGRlZmF1bHQgZGlhbG9nIHJlc3VsdC5cclxuICovXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nUmVzdWx0IHtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBiYXNlIGRpYWxvZyBjb21wb25lbnQgZm9yIGV4dGVuZGluZy5cclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcclxuZXhwb3J0IGNsYXNzIEJhc2VEaWFsb2dDb21wb25lbnQ8VE9wdGlvbnMgZXh0ZW5kcyBEaWFsb2dPcHRpb25zLCBUUmVzdWx0IGV4dGVuZHMgRGlhbG9nUmVzdWx0PiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkaWFsb2cnKVxyXG4gICAgcHVibGljIGRpYWxvZzogRGlhbG9nQ29tcG9uZW50O1xyXG5cclxuICAgIHB1YmxpYyBkaWFsb2dSZXN1bHQ6IFN1YmplY3Q8VFJlc3VsdD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBLZWVwcyB0aGUgZGlhbG9nIG9wZW4gd2hlbiBhbm90aGVyIGRpYWxvZyBwb3BzIHVwXHJcbiAgICAgKiBieSBkZWZhdWx0IHRoZSBkaWFsb2cgd2lsbCBiZSBjbG9zZWQgaWYgYW5vdGhlciBkaWFsb2cgb3BlbnMgd2hpbGUgdGhpcyBkaWFsb2cgaXMgdmlzaWJsZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMga2VlcE9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIGNsb3NlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJpdmF0ZSBzZXQgbGV2ZWwodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZykge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZy5kaWFsb2dMZXZlbCA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmludGVybmFsTGV2ZWwgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGludGVybmFsTGV2ZWwgPSAxO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEJhc2VEaWFsb2dDb21wb25lbnQgY2xhc3MuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIHRvIHJ1biB3aGVuIHRoZSBjb21wb25lbnQgaW5pdGlhbGl6ZWQuXHJcbiAgICAgKi9cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tZW1wdHktbGlmZWN5Y2xlLW1ldGhvZFxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIC8qIGVtcHR5ICovXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIHRvIHJ1biBhZnRlciB0aGUgY29tcG9uZW50IHZpZXcgaW5pdGlhbGl6ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlhbG9nKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQmFzZURpYWxvZ0NvbXBvbmVudC5uZ09uSW5pdDogRGlhbG9nIGlzIG5vdCBkZWZpbmVkJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYXNlRGlhbG9nQ29tcG9uZW50Lm5nT25Jbml0OiBJRCBpcyBub3QgZGVmaW5lZCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5sZXZlbCA9IHRoaXMuaW50ZXJuYWxMZXZlbDtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnJlZ2lzdGVyKHRoaXMuaWQsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VTdWJzY3JpcHRpb24gPSB0aGlzLmRpYWxvZy5jbG9zZVJlcXVlc3RlZC5zdWJzY3JpYmUocmVhc29uID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZChyZWFzb24pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCB0byBydW4gd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZT8udW5yZWdpc3Rlcih0aGlzLmlkKTtcclxuICAgICAgICB0aGlzLmNsb3NlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogaGFuZGxlciBmb3Igd2hlbiBhIGNsb3NlIGlzIHJlcXVlc3RlZFxyXG4gICAgICogYnkgZGVmYXVsdCB0aGlzIGNsb3NlcyB0aGUgZGlhbG9nIHdpdGggbm8gcmVzdWx0LlxyXG4gICAgICogb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBwcmV2ZW50IHRoaXMgYmVoYXZpb3JcclxuICAgICAqIEBwYXJhbSByZWFzb24gLSByZWFzb24gZm9yIHRoZSBjbG9zZSBmb2xsb3dpbmcgRGlhbG9nQ2xvc2VSZWFzb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsb3NlUmVxdWVzdGVkKHJlYXNvbjogRGlhbG9nQ2xvc2VSZWFzb24pIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIHRoZSBkaWFsb2cuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSBkaWFsb2cuXHJcbiAgICAgKiBAcmV0dXJuIFRoZSBkaWFsb2cgcmVzdWx0IHN1YmplY3QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaG93KG9wdGlvbnM6IFRPcHRpb25zKTogU3ViamVjdDxUUmVzdWx0PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2cuc2hvdygpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVzdWx0ID0gbmV3IFN1YmplY3Q8VFJlc3VsdD4oKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZW1pdERpYWxvZ0NoYW5nZUV2ZW50KHRoaXMuaWQsIERpYWxvZ0NoYW5nZUV2ZW50LlNob3cpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1Jlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGxldmVsIG9mIHRoZSBkaWFsb2dzbyBpdCBvdmVybGF5cyBvbiB0b3Agb2YgYW55dGhpbmcgZWxzZVxyXG4gICAgICogVGhpcyBpcyBzZXQgYnkgdGhlIGRpYWxvZyBzZXJ2aWNlIHdoZW4gYSBkaWFsb2cgb3BlbnMgYW5vdGhlciBkaWFsb2dcclxuICAgICAqIEBwYXJhbSBsZXZlbCBUaGUgbGV2ZWwgb2YgdGhlIGRpYWxvZyBzbyBpdCBzaG93cyB1cCBvbiB0b3Agb2Ygb3RoZXIgaXRlbXMuIHRoaXMgc2hvdWxkIGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRMZXZlbChsZXZlbDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5sZXZlbCA9IGxldmVsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVmb2N1c2VzIHRoZSBrZXlib2FyZCBvbiB0aGUgZGlhbG9nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRvRm9jdXMoKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2cuYXV0b0ZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlcyB0aGUgZGlhbG9nLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZXN1bHQgVGhlIHJlc3VsdCBvZiB0aGUgZGlhbG9nIGFjdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGhpZGUocmVzdWx0PzogVFJlc3VsdCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nLmhpZGUoKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1Jlc3VsdC5uZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZXN1bHQuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVzdW1lRm9jdXModGhpcy5pZCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmVtaXREaWFsb2dDaGFuZ2VFdmVudCh0aGlzLmlkLCBEaWFsb2dDaGFuZ2VFdmVudC5IaWRlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgY2xpY2tpbmcgb24gYmFja2dyb3VuZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25CYWNrZ3JvdW5kQ2xpY2tlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5kaWFsb2cuY2xpY2tCYWNrZHJvcCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZy5vbkJhY2tncm91bmRDbGlja2VkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==