UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

155 lines 22.7 kB
import { Component } from '@angular/core'; import { RpcAlertSeverity } from '@microsoft/windows-admin-center-sdk/core/rpc/dialog/rpc-dialog-model'; import { ValidationAlertSeverity } from '../../form'; import { BaseDialogComponent } from '../base-dialog.component'; import { DialogService } from '../dialog.service'; import * as i0 from "@angular/core"; import * as i1 from "../dialog.service"; import * as i2 from "@angular/common"; import * as i3 from "@angular/forms"; import * as i4 from "../../form/form-field/checkbox/checkbox-form-field.component"; import * as i5 from "../../form/validation-alert/validation-alert.component"; import * as i6 from "../../form/form-field/form-field-accessor.directive"; import * as i7 from "../../form/form-field/form-field-validator.directive"; import * as i8 from "../dialog.component"; function ConfirmationDialogComponent_div_9_Template(rf, ctx) { if (rf & 1) { const _r5 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 10)(1, "sme-form-field", 11); i0.ɵɵlistener("ngModelChange", function ConfirmationDialogComponent_div_9_Template_sme_form_field_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.checked = $event); }); i0.ɵɵelementEnd()(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("ngModel", ctx_r1.checked)("label", ctx_r1.checkboxText); } } function ConfirmationDialogComponent_div_10_Template(rf, ctx) { if (rf & 1) { const _r7 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 12)(1, "sme-form-field", 13); i0.ɵɵlistener("ngModelChange", function ConfirmationDialogComponent_div_10_Template_sme_form_field_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.doubleChecked = $event); }); i0.ɵɵelementEnd()(); } if (rf & 2) { const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("ngModel", ctx_r2.doubleChecked)("label", ctx_r2.doubleCheckText); } } function ConfirmationDialogComponent_sme_alert_11_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-alert", 14); } if (rf & 2) { const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵproperty("alert", ctx_r3.alert); } } /** * The Confirmation Dialog Component * @deprecated since 02/20/18. Please use AppContextService.frame.showDialogConfirmation instead */ export class ConfirmationDialogComponent extends BaseDialogComponent { /** * Initializes a new instance of the ConfirmationDialogComponent class. */ constructor(dialogService) { super(dialogService); this.keepOpen = true; } /** * handler for when a close is requested * this override cancels the confirmation when requested to close * @param reason - reason for the close following DialogCloseReason */ closeRequested(reason) { this.onCancel(); } /** * Shows the dialog. * * @param options The options for the dialog. * @return The dialog result subject. */ show(options) { if (!options) { throw new Error('ConfirmationDialogComponent.show: Options are required to show the dialog.'); } const result = super.show(options); this.cancelButtonText = options.cancelButtonText; this.checkboxText = options.checkboxText; this.doubleCheckText = options.doubleCheckText; this.checked = false; this.doubleChecked = false; this.confirmButtonText = options.confirmButtonText; this.message = options.message; this.title = options.title; this.alert = options.alert ? { message: options.alert.message, severity: ValidationAlertSeverity[options.alert.severity.toString()] } : null; this.alertButtonStyle = options.alertButtonStyle; return result; } get isCritical() { return this.alertButtonStyle === RpcAlertSeverity.Error; } get isWarning() { return this.alertButtonStyle === RpcAlertSeverity.Warning; } /** * The method to call when the confirm button is clicked. */ onConfirm() { this.hide({ confirmed: true, checkboxResult: (this.checkboxText) ? this.checked : null }); } /** * The method to call when the cancel button is clicked. */ onCancel() { this.hide({ confirmed: false }); } } /** @nocollapse */ ConfirmationDialogComponent.ɵfac = function ConfirmationDialogComponent_Factory(t) { return new (t || ConfirmationDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogService)); }; /** @nocollapse */ ConfirmationDialogComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ConfirmationDialogComponent, selectors: [["sme-confirmation-dialog"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 17, vars: 13, consts: [["dialogMode", "centered", 3, "clickBackdrop"], ["dialog", ""], ["id", "sme-dialog-title"], ["id", "sme-confirmation-dialog-form"], ["id", "sme-dialog-desc"], ["class", "sme-margin-top-sm", 4, "ngIf"], ["class", "sme-margin-top-xs", 4, "ngIf"], ["class", "sme-margin-vertical-sm", 3, "alert", 4, "ngIf"], ["type", "submit", "form", "sme-confirmation-dialog-form", "data-uta-id", "dialog-confirm-button", 1, "sme-button-primary", "sme-focus-zone", 3, "disabled", "click"], ["type", "button", "data-uta-id", "dialog-cancel-button", 1, "sme-focus-zone", 3, "click"], [1, "sme-margin-top-sm"], ["type", "checkbox", "name", "checked", 3, "ngModel", "label", "ngModelChange"], [1, "sme-margin-top-xs"], ["type", "checkbox", "name", "doubleChecked", 3, "ngModel", "label", "ngModelChange"], [1, "sme-margin-vertical-sm", 3, "alert"]], template: function ConfirmationDialogComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "sme-dialog", 0, 1)(2, "sme-dialog-header")(3, "h2", 2); i0.ɵɵtext(4); i0.ɵɵelementEnd()(); i0.ɵɵelementStart(5, "sme-dialog-content")(6, "form", 3)(7, "p", 4); i0.ɵɵtext(8); i0.ɵɵelementEnd(); i0.ɵɵtemplate(9, ConfirmationDialogComponent_div_9_Template, 2, 2, "div", 5); i0.ɵɵtemplate(10, ConfirmationDialogComponent_div_10_Template, 2, 2, "div", 6); i0.ɵɵtemplate(11, ConfirmationDialogComponent_sme_alert_11_Template, 1, 1, "sme-alert", 7); i0.ɵɵelementEnd()(); i0.ɵɵelementStart(12, "sme-dialog-footer")(13, "button", 8); i0.ɵɵlistener("click", function ConfirmationDialogComponent_Template_button_click_13_listener() { return ctx.onConfirm(); }); i0.ɵɵtext(14); i0.ɵɵelementEnd(); i0.ɵɵelementStart(15, "button", 9); i0.ɵɵlistener("click", function ConfirmationDialogComponent_Template_button_click_15_listener() { return ctx.onCancel(); }); i0.ɵɵtext(16); i0.ɵɵelementEnd()()(); } if (rf & 2) { i0.ɵɵproperty("clickBackdrop", false); i0.ɵɵadvance(4); i0.ɵɵtextInterpolate(ctx.title); i0.ɵɵadvance(4); i0.ɵɵtextInterpolate(ctx.message); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.checkboxText); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.doubleCheckText); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.alert); i0.ɵɵadvance(2); i0.ɵɵclassProp("sme-button-critical", ctx.isCritical)("sme-button-warning", ctx.isWarning); i0.ɵɵproperty("disabled", ctx.doubleCheckText && !ctx.doubleChecked); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx.confirmButtonText); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(ctx.cancelButtonText); } }, dependencies: [i2.NgIf, i3.ɵNgNoValidate, i3.NgControlStatus, i3.NgControlStatusGroup, i3.NgModel, i3.NgForm, i4.CheckboxFormFieldComponent, i5.ValidationAlertComponent, i6.FormFieldAccessorDirective, i7.FormFieldValidatorDirective, i8.DialogComponent, i8.DialogContentComponent, i8.DialogFooterComponent, i8.DialogHeaderComponent], encapsulation: 2 }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfirmationDialogComponent, [{ type: Component, args: [{ selector: 'sme-confirmation-dialog', template: "<sme-dialog #dialog dialogMode=\"centered\" [clickBackdrop]='false'>\r\n <sme-dialog-header>\r\n <h2 id=\"sme-dialog-title\">{{ title }}</h2>\r\n </sme-dialog-header>\r\n <sme-dialog-content>\r\n <form id=\"sme-confirmation-dialog-form\">\r\n <p id=\"sme-dialog-desc\">{{ message }}</p>\r\n <div class=\"sme-margin-top-sm\" *ngIf=\"checkboxText\">\r\n <sme-form-field type=\"checkbox\" [(ngModel)]=\"checked\" name=\"checked\" [label]=\"checkboxText\">\r\n </sme-form-field>\r\n </div>\r\n <div class=\"sme-margin-top-xs\" *ngIf=\"doubleCheckText\">\r\n <sme-form-field type=\"checkbox\" [(ngModel)]=\"doubleChecked\" name=\"doubleChecked\" [label]=\"doubleCheckText\">\r\n </sme-form-field>\r\n </div>\r\n <sme-alert *ngIf=\"alert\" class=\"sme-margin-vertical-sm\" [alert]=\"alert\"></sme-alert>\r\n </form>\r\n </sme-dialog-content>\r\n <sme-dialog-footer>\r\n <button type=\"submit\" form=\"sme-confirmation-dialog-form\" [class.sme-button-critical]=\"isCritical\"\r\n [class.sme-button-warning]=\"isWarning\" class=\"sme-button-primary sme-focus-zone\"\r\n [disabled]=\"doubleCheckText && !doubleChecked\" (click)=\"onConfirm()\" data-uta-id=\"dialog-confirm-button\">{{ confirmButtonText }}</button>\r\n <button class=\"sme-focus-zone\" type=\"button\" (click)=\"onCancel()\" data-uta-id=\"dialog-cancel-button\">{{ cancelButtonText }}</button>\r\n </sme-dialog-footer>\r\n</sme-dialog>\r\n" }] }], function () { return [{ type: i1.DialogService }]; }, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQVksZ0JBQWdCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUVsSCxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBK0IsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7OztJQ0M1QywrQkFBb0QseUJBQUE7SUFDbEIsaVBBQXFCO0lBQ3JELGlCQUFpQixFQUFBOzs7SUFEZSxlQUFxQjtJQUFyQix3Q0FBcUIsOEJBQUE7Ozs7SUFHdkQsK0JBQXVELHlCQUFBO0lBQ3JCLHdQQUEyQjtJQUMzRCxpQkFBaUIsRUFBQTs7O0lBRGUsZUFBMkI7SUFBM0IsOENBQTJCLGlDQUFBOzs7SUFHN0QsZ0NBQW9GOzs7SUFBNUIsb0NBQWU7O0FEeUQ3RTs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQXdFO0lBaUJySDs7T0FFRztJQUNILFlBQVksYUFBNEI7UUFDcEMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lB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QThDO1FBQTJELGVBQXVCO1FBQXZCLDJDQUF1QjtRQUM3QixlQUFzQjtRQUF0QiwwQ0FBc0I7O3VGRDBEbEgsMkJBQTJCO2NBSnZDLFNBQVM7MkJBQ0kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJwY0FsZXJ0LCBScGNBbGVydFNldmVyaXR5IH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9ycGMvZGlhbG9nL3JwYy1kaWFsb2ctbW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25BbGVydCwgVmFsaWRhdGlvbkFsZXJ0U2V2ZXJpdHkgfSBmcm9tICcuLi8uLi9mb3JtJztcclxuaW1wb3J0IHsgQmFzZURpYWxvZ0NvbXBvbmVudCwgRGlhbG9nT3B0aW9ucywgRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi4vYmFzZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nQ2xvc2VSZWFzb24gfSBmcm9tICcuLi9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2RpYWxvZy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgY29uZmlybWF0aW9uIGRpYWxvZyBvcHRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtYXRpb25EaWFsb2dPcHRpb25zIGV4dGVuZHMgRGlhbG9nT3B0aW9ucyB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0ZXh0IGZvciB0aGUgZGlhbG9nIGNhbmNlbCBidXR0b24uXHJcbiAgICAgKi9cclxuICAgIGNhbmNlbEJ1dHRvblRleHQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0ZXh0IGZvciB0aGUgZGlhbG9nIGNoZWNrYm94LlxyXG4gICAgICovXHJcbiAgICBjaGVja2JveFRleHQ/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGV4dCBmb3IgdGhlIGRvdWJsZUNoZWNrIGNoZWNrYm94XHJcbiAgICAgKi9cclxuICAgIGRvdWJsZUNoZWNrVGV4dD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0ZXh0IGZvciB0aGUgZGlhbG9nIGNvbmZpcm0gYnV0dG9uLlxyXG4gICAgICovXHJcbiAgICBjb25maXJtQnV0dG9uVGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1lc3NhZ2Ugb2YgdGhlIGRpYWxvZyBib2R5LlxyXG4gICAgICovXHJcbiAgICBtZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIGRpYWxvZy5cclxuICAgICAqL1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhlIGRpYWxvZyBpcyBvcGVuZWQgZnJvbSBScGNcclxuICAgICAqL1xyXG4gICAgaXNGcm9tUnBjPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBhbGVydCBvZiB0aGUgZGlhbG9nLlxyXG4gICAgICovXHJcbiAgICBhbGVydD86IFJwY0FsZXJ0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGFuIFJwY0FsZXJ0U2V2ZXJpdHkgdmFsdWUgdG8gc2hvdyBhIGNyaXRpY2FsIG9yIHdhcm5pbmcgYnV0dG9uIGNvbG9yLlxyXG4gICAgICovXHJcbiAgICBhbGVydEJ1dHRvblN0eWxlPzogUnBjQWxlcnRTZXZlcml0eTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBjb25maXJtYXRpb24gZGlhbG9nIHJlc3VsdC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybWF0aW9uRGlhbG9nUmVzdWx0IGV4dGVuZHMgRGlhbG9nUmVzdWx0IHtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJlc3VsdCBvZiB0aGUgZGlhbG9nIGNvbmZpcm1hdGlvbi5cclxuICAgICAqL1xyXG4gICAgY29uZmlybWVkOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJlc3VsdCBvZiB0aGUgZGlhbG9nIGNoZWNrYm94LlxyXG4gICAgICovXHJcbiAgICBjaGVja2JveFJlc3VsdD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ29uZmlybWF0aW9uIERpYWxvZyBDb21wb25lbnRcclxuICogQGRlcHJlY2F0ZWQgc2luY2UgMDIvMjAvMTguIFBsZWFzZSB1c2UgQXBwQ29udGV4dFNlcnZpY2UuZnJhbWUuc2hvd0RpYWxvZ0NvbmZpcm1hdGlvbiBpbnN0ZWFkXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWNvbmZpcm1hdGlvbi1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGlhbG9nQ29tcG9uZW50PENvbmZpcm1hdGlvbkRpYWxvZ09wdGlvbnMsIENvbmZpcm1hdGlvbkRpYWxvZ1Jlc3VsdD4ge1xyXG5cclxuICAgIHB1YmxpYyBhbGVydEJ1dHRvblN0eWxlOiBScGNBbGVydFNldmVyaXR5O1xyXG4gICAgcHVibGljIGNhbmNlbEJ1dHRvblRleHQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGVja2JveFRleHQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBkb3VibGVDaGVja1RleHQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGVja2VkOiBib29sZWFuO1xyXG4gICAgcHVibGljIGNvbmZpcm1CdXR0b25UZXh0OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWxlcnQ6IFZhbGlkYXRpb25BbGVydDtcclxuXHJcbiAgICAvKipcclxuICAgICAqICBmYWxzZSB2YWx1ZSBkaXNhYmxlcyBjb25maXJtIGJ1dHRvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZG91YmxlQ2hlY2tlZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgY2xhc3MuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihkaWFsb2dTZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLmtlZXBPcGVuID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGhhbmRsZXIgZm9yIHdoZW4gYSBjbG9zZSBpcyByZXF1ZXN0ZWRcclxuICAgICAqIHRoaXMgb3ZlcnJpZGUgY2FuY2VscyB0aGUgY29uZmlybWF0aW9uIHdoZW4gcmVxdWVzdGVkIHRvIGNsb3NlXHJcbiAgICAgKiBAcGFyYW0gcmVhc29uIC0gcmVhc29uIGZvciB0aGUgY2xvc2UgZm9sbG93aW5nIERpYWxvZ0Nsb3NlUmVhc29uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbG9zZVJlcXVlc3RlZChyZWFzb246IERpYWxvZ0Nsb3NlUmVhc29uKSB7XHJcbiAgICAgICAgdGhpcy5vbkNhbmNlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvd3MgdGhlIGRpYWxvZy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIGRpYWxvZy5cclxuICAgICAqIEByZXR1cm4gVGhlIGRpYWxvZyByZXN1bHQgc3ViamVjdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNob3cob3B0aW9uczogQ29uZmlybWF0aW9uRGlhbG9nT3B0aW9ucyk6IFN1YmplY3Q8Q29uZmlybWF0aW9uRGlhbG9nUmVzdWx0PiB7XHJcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LnNob3c6IE9wdGlvbnMgYXJlIHJlcXVpcmVkIHRvIHNob3cgdGhlIGRpYWxvZy4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLnNob3cob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25UZXh0ID0gb3B0aW9ucy5jYW5jZWxCdXR0b25UZXh0O1xyXG4gICAgICAgIHRoaXMuY2hlY2tib3hUZXh0ID0gb3B0aW9ucy5jaGVja2JveFRleHQ7XHJcbiAgICAgICAgdGhpcy5kb3VibGVDaGVja1RleHQgPSBvcHRpb25zLmRvdWJsZUNoZWNrVGV4dDtcclxuICAgICAgICB0aGlzLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRvdWJsZUNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1CdXR0b25UZXh0ID0gb3B0aW9ucy5jb25maXJtQnV0dG9uVGV4dDtcclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSBvcHRpb25zLm1lc3NhZ2U7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IG9wdGlvbnMudGl0bGU7XHJcbiAgICAgICAgdGhpcy5hbGVydCA9IG9wdGlvbnMuYWxlcnQgPyB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMuYWxlcnQubWVzc2FnZSxcclxuICAgICAgICAgICAgc2V2ZXJpdHk6IFZhbGlkYXRpb25BbGVydFNldmVyaXR5W29wdGlvbnMuYWxlcnQuc2V2ZXJpdHkudG9TdHJpbmcoKV1cclxuICAgICAgICB9IDogbnVsbDtcclxuICAgICAgICB0aGlzLmFsZXJ0QnV0dG9uU3R5bGUgPSBvcHRpb25zLmFsZXJ0QnV0dG9uU3R5bGU7XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpc0NyaXRpY2FsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFsZXJ0QnV0dG9uU3R5bGUgPT09IFJwY0FsZXJ0U2V2ZXJpdHkuRXJyb3I7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IGlzV2FybmluZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbGVydEJ1dHRvblN0eWxlID09PSBScGNBbGVydFNldmVyaXR5Lldhcm5pbmc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIHRvIGNhbGwgd2hlbiB0aGUgY29uZmlybSBidXR0b24gaXMgY2xpY2tlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ29uZmlybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhpZGUoe1xyXG4gICAgICAgICAgICBjb25maXJtZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIGNoZWNrYm94UmVzdWx0OiAodGhpcy5jaGVja2JveFRleHQpID8gdGhpcy5jaGVja2VkIDogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCB0byBjYWxsIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgY2xpY2tlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaGlkZSh7XHJcbiAgICAgICAgICAgIGNvbmZpcm1lZDogZmFsc2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8c21lLWRpYWxvZyAjZGlhbG9nIGRpYWxvZ01vZGU9XCJjZW50ZXJlZFwiIFtjbGlja0JhY2tkcm9wXT0nZmFsc2UnPlxyXG4gIDxzbWUtZGlhbG9nLWhlYWRlcj5cclxuICAgIDxoMiBpZD1cInNtZS1kaWFsb2ctdGl0bGVcIj57eyB0aXRsZSB9fTwvaDI+XHJcbiAgPC9zbWUtZGlhbG9nLWhlYWRlcj5cclxuICA8c21lLWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGZvcm0gaWQ9XCJzbWUtY29uZmlybWF0aW9uLWRpYWxvZy1mb3JtXCI+XHJcbiAgICAgIDxwIGlkPVwic21lLWRpYWxvZy1kZXNjXCI+e3sgbWVzc2FnZSB9fTwvcD5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtZS1tYXJnaW4tdG9wLXNtXCIgKm5nSWY9XCJjaGVja2JveFRleHRcIj5cclxuICAgICAgICA8c21lLWZvcm0tZmllbGQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJjaGVja2VkXCIgbmFtZT1cImNoZWNrZWRcIiBbbGFiZWxdPVwiY2hlY2tib3hUZXh0XCI+XHJcbiAgICAgICAgPC9zbWUtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzbWUtbWFyZ2luLXRvcC14c1wiICpuZ0lmPVwiZG91YmxlQ2hlY2tUZXh0XCI+XHJcbiAgICAgICAgPHNtZS1mb3JtLWZpZWxkIHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiZG91YmxlQ2hlY2tlZFwiIG5hbWU9XCJkb3VibGVDaGVja2VkXCIgW2xhYmVsXT1cImRvdWJsZUNoZWNrVGV4dFwiPlxyXG4gICAgICAgIDwvc21lLWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8c21lLWFsZXJ0ICpuZ0lmPVwiYWxlcnRcIiBjbGFzcz1cInNtZS1tYXJnaW4tdmVydGljYWwtc21cIiBbYWxlcnRdPVwiYWxlcnRcIj48L3NtZS1hbGVydD5cclxuICAgIDwvZm9ybT5cclxuICA8L3NtZS1kaWFsb2ctY29udGVudD5cclxuICA8c21lLWRpYWxvZy1mb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBmb3JtPVwic21lLWNvbmZpcm1hdGlvbi1kaWFsb2ctZm9ybVwiIFtjbGFzcy5zbWUtYnV0dG9uLWNyaXRpY2FsXT1cImlzQ3JpdGljYWxcIlxyXG4gICAgICBbY2xhc3Muc21lLWJ1dHRvbi13YXJuaW5nXT1cImlzV2FybmluZ1wiIGNsYXNzPVwic21lLWJ1dHRvbi1wcmltYXJ5IHNtZS1mb2N1cy16b25lXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRvdWJsZUNoZWNrVGV4dCAmJiAhZG91YmxlQ2hlY2tlZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiIGRhdGEtdXRhLWlkPVwiZGlhbG9nLWNvbmZpcm0tYnV0dG9uXCI+e3sgY29uZmlybUJ1dHRvblRleHQgfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJzbWUtZm9jdXMtem9uZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiIGRhdGEtdXRhLWlkPVwiZGlhbG9nLWNhbmNlbC1idXR0b25cIj57eyBjYW5jZWxCdXR0b25UZXh0IH19PC9idXR0b24+XHJcbiAgPC9zbWUtZGlhbG9nLWZvb3Rlcj5cclxuPC9zbWUtZGlhbG9nPlxyXG4iXX0=