UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

194 lines 26 kB
import { Component } from '@angular/core'; 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 "../../loading-wheel/loading-wheel.component"; import * as i5 from "../../tooltip/tooltip.directive"; import * as i6 from "../dialog.component"; function ConfirmationListDialogComponent_sme_loading_wheel_7_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-loading-wheel", 10); } } function ConfirmationListDialogComponent_p_8_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "p"); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r2.listHeaderText); } } function ConfirmationListDialogComponent_ul_9_li_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "li", 13); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r8 = ctx.$implicit; i0.ɵɵproperty("title", (item_r8 == null ? null : item_r8.title) || ""); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1(" ", (item_r8 == null ? null : item_r8.value) || item_r8, " "); } } function ConfirmationListDialogComponent_ul_9_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "ul", 11); i0.ɵɵtemplate(1, ConfirmationListDialogComponent_ul_9_li_1_Template, 2, 2, "li", 12); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r3.listData); } } function ConfirmationListDialogComponent_div_10_div_1_Template(rf, ctx) { if (rf & 1) { const _r13 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 15)(1, "label", 16)(2, "input", 17); i0.ɵɵlistener("ngModelChange", function ConfirmationListDialogComponent_div_10_div_1_Template_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.radioSelectionResult = $event); }); i0.ɵɵelementEnd(); i0.ɵɵelementStart(3, "span", 18); i0.ɵɵtext(4); i0.ɵɵelementEnd()()(); } if (rf & 2) { const item_r10 = ctx.$implicit; const ctx_r9 = i0.ɵɵnextContext(2); i0.ɵɵadvance(1); i0.ɵɵproperty("title", (item_r10 == null ? null : item_r10.title) || ""); i0.ɵɵadvance(1); i0.ɵɵproperty("value", item_r10)("ngModel", ctx_r9.radioSelectionResult); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate((item_r10 == null ? null : item_r10.value) || item_r10); } } function ConfirmationListDialogComponent_div_10_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div"); i0.ɵɵtemplate(1, ConfirmationListDialogComponent_div_10_div_1_Template, 5, 4, "div", 14); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r4 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx_r4.listData); } } function ConfirmationListDialogComponent_div_11_Template(rf, ctx) { if (rf & 1) { const _r15 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 19)(1, "label", 20)(2, "input", 21); i0.ɵɵlistener("ngModelChange", function ConfirmationListDialogComponent_div_11_Template_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.checked = $event); }); i0.ɵɵelementEnd(); i0.ɵɵelementStart(3, "span"); i0.ɵɵtext(4); i0.ɵɵelementEnd()()(); } if (rf & 2) { const ctx_r5 = i0.ɵɵnextContext(); i0.ɵɵadvance(2); i0.ɵɵproperty("ngModel", ctx_r5.checked); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(ctx_r5.checkboxText); } } function ConfirmationListDialogComponent_p_12_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "p"); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r6 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r6.listFooterText); } } export class ConfirmationListDialogComponent extends BaseDialogComponent { constructor(dialogService) { super(dialogService); } closeRequested(reason) { this.onCancel(); } show(options) { if (!options) { throw new Error('ConfirmationListDialogComponent.show: Options are required to show the dialog.'); } const result = super.show(options); this.cancelButtonText = options.cancelButtonText; this.checkboxText = options.checkboxText; this.checked = false; this.confirmButtonText = options.confirmButtonText; this.listFooterText = options.listFooterText; this.listData = []; this.radioSelectionResult = null; this.listType = options.listType; this.listHeaderText = options.listHeaderText; this.title = options.title; this.loading = true; this.dataSourceSubscription = options.listDataSource.subscribe(strings => { this.loading = false; this.listData = strings; this.radioSelectionResult = this.listData ? this.listData[0] : ''; }, (error) => { this.hide({ confirmed: false, observableError: error }); }); return result; } hide(result) { this.dataSourceSubscription?.unsubscribe(); super.hide(result); } onConfirm() { this.hide({ confirmed: true, checkboxResult: (this.checkboxText) ? this.checked : null, radioSelectionResult: this.radioSelectionResult }); } onCancel() { this.hide({ confirmed: false }); } } /** @nocollapse */ ConfirmationListDialogComponent.ɵfac = function ConfirmationListDialogComponent_Factory(t) { return new (t || ConfirmationListDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogService)); }; /** @nocollapse */ ConfirmationListDialogComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ConfirmationListDialogComponent, selectors: [["sme-confirmation-list-dialog"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 11, consts: [["dialogMode", "centered", 3, "clickBackdrop"], ["dialog", ""], ["id", "sme-dialog-title"], ["id", "sme-confirmation-list-dialog-form"], ["size", "medium", 4, "ngIf"], [4, "ngIf"], ["class", "sme-list sme-position-flex-auto sme-margin-top-xxs", 4, "ngIf"], ["class", "sme-checkbox sme-position-flex-none sme-margin-top-xxs", 4, "ngIf"], ["type", "submit", "form", "sme-confirmation-list-dialog-form", "data-uta-id", "dialog-list-confirm-button", 1, "sme-button-primary", 3, "disabled", "click"], ["type", "button", "data-uta-id", "dialog-list-cancel-button", 3, "click"], ["size", "medium"], [1, "sme-list", "sme-position-flex-auto", "sme-margin-top-xxs"], [3, "title", 4, "ngFor", "ngForOf"], [3, "title"], ["class", "sme-radio sme-position-flex-auto sme-margin-top-xxs", 4, "ngFor", "ngForOf"], [1, "sme-radio", "sme-position-flex-auto", "sme-margin-top-xxs"], [1, "sme-font-body", 3, "title"], ["type", "radio", "name", "selection", 3, "value", "ngModel", "ngModelChange"], ["aria-hidden", "true"], [1, "sme-checkbox", "sme-position-flex-none", "sme-margin-top-xxs"], [1, "sme-font-body"], ["type", "checkbox", 3, "ngModel", "ngModelChange"]], template: function ConfirmationListDialogComponent_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); i0.ɵɵtemplate(7, ConfirmationListDialogComponent_sme_loading_wheel_7_Template, 1, 0, "sme-loading-wheel", 4); i0.ɵɵtemplate(8, ConfirmationListDialogComponent_p_8_Template, 2, 1, "p", 5); i0.ɵɵtemplate(9, ConfirmationListDialogComponent_ul_9_Template, 2, 1, "ul", 6); i0.ɵɵtemplate(10, ConfirmationListDialogComponent_div_10_Template, 2, 1, "div", 5); i0.ɵɵtemplate(11, ConfirmationListDialogComponent_div_11_Template, 5, 2, "div", 7); i0.ɵɵelementEnd(); i0.ɵɵtemplate(12, ConfirmationListDialogComponent_p_12_Template, 2, 1, "p", 5); i0.ɵɵelementEnd(); i0.ɵɵelementStart(13, "sme-dialog-footer")(14, "button", 8); i0.ɵɵlistener("click", function ConfirmationListDialogComponent_Template_button_click_14_listener() { return ctx.onConfirm(); }); i0.ɵɵtext(15); i0.ɵɵelementEnd(); i0.ɵɵelementStart(16, "button", 9); i0.ɵɵlistener("click", function ConfirmationListDialogComponent_Template_button_click_16_listener() { return ctx.onCancel(); }); i0.ɵɵtext(17); i0.ɵɵelementEnd()()(); } if (rf & 2) { i0.ɵɵproperty("clickBackdrop", false); i0.ɵɵadvance(4); i0.ɵɵtextInterpolate(ctx.title); i0.ɵɵadvance(3); i0.ɵɵproperty("ngIf", ctx.loading); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.listHeaderText); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !ctx.listType || ctx.listType === "list"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.listType === "radio"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.checkboxText); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.listFooterText); i0.ɵɵadvance(2); i0.ɵɵproperty("disabled", ctx.loading); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx.confirmButtonText); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(ctx.cancelButtonText); } }, dependencies: [i2.NgForOf, i2.NgIf, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.CheckboxControlValueAccessor, i3.RadioControlValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.NgModel, i3.NgForm, i4.LoadingWheelComponent, i5.TooltipDirective, i6.DialogComponent, i6.DialogContentComponent, i6.DialogFooterComponent, i6.DialogHeaderComponent], encapsulation: 2 }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfirmationListDialogComponent, [{ type: Component, args: [{ selector: 'sme-confirmation-list-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-list-dialog-form\">\r\n <sme-loading-wheel *ngIf=\"loading\" size=\"medium\"></sme-loading-wheel>\r\n <p *ngIf=\"listHeaderText\">{{listHeaderText}}</p>\r\n\r\n <ul *ngIf=\"!listType || listType === 'list'\" class=\"sme-list sme-position-flex-auto sme-margin-top-xxs\">\r\n <li *ngFor=\"let item of listData\" [title]=\"item?.title || ''\">\r\n {{ item?.value || item }}\r\n </li>\r\n </ul>\r\n\r\n <div *ngIf=\"listType === 'radio'\">\r\n <div *ngFor=\"let item of listData; let i = index\" class=\"sme-radio sme-position-flex-auto sme-margin-top-xxs\">\r\n <label class=\"sme-font-body\" [title]=\"item?.title || ''\">\r\n <input type=\"radio\" name=\"selection\" [value]=\"item\" [(ngModel)]=\"radioSelectionResult\">\r\n <span aria-hidden=\"true\">{{item?.value || item}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"sme-checkbox sme-position-flex-none sme-margin-top-xxs\" *ngIf=\"checkboxText\">\r\n <label class=\"sme-font-body\">\r\n <input type=\"checkbox\" [(ngModel)]=\"checked\" />\r\n <span>{{checkboxText}}</span>\r\n </label>\r\n </div>\r\n </form>\r\n <p *ngIf=\"listFooterText\">{{listFooterText}}</p>\r\n </sme-dialog-content>\r\n <sme-dialog-footer>\r\n <button type=\"submit\" class=\"sme-button-primary\" form=\"sme-confirmation-list-dialog-form\" [disabled]=\"loading\"\r\n (click)=\"onConfirm()\" data-uta-id=\"dialog-list-confirm-button\">{{confirmButtonText}}</button>\r\n <button type=\"button\" (click)=\"onCancel()\" data-uta-id=\"dialog-list-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLWxpc3QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9jb25maXJtYXRpb24tbGlzdC1kaWFsb2cvY29uZmlybWF0aW9uLWxpc3QtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9jb25maXJtYXRpb24tbGlzdC1kaWFsb2cvY29uZmlybWF0aW9uLWxpc3QtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLG1CQUFtQixFQUErQixNQUFNLDBCQUEwQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7O0lDRTVDLHdDQUFxRTs7O0lBQ3JFLHlCQUEwQjtJQUFBLFlBQWtCO0lBQUEsaUJBQUk7OztJQUF0QixlQUFrQjtJQUFsQiwyQ0FBa0I7OztJQUcxQyw4QkFBOEQ7SUFDNUQsWUFDRjtJQUFBLGlCQUFLOzs7SUFGNkIsc0VBQTJCO0lBQzNELGVBQ0Y7SUFERSxvRkFDRjs7O0lBSEYsOEJBQXdHO0lBQ3RHLG9GQUVLO0lBQ1AsaUJBQUs7OztJQUhrQixlQUFXO0lBQVgseUNBQVc7Ozs7SUFNaEMsK0JBQThHLGdCQUFBLGdCQUFBO0lBRXRELG9RQUFrQztJQUF0RixpQkFBdUY7SUFDdkYsZ0NBQXlCO0lBQUEsWUFBdUI7SUFBQSxpQkFBTyxFQUFBLEVBQUE7Ozs7SUFGNUIsZUFBMkI7SUFBM0Isd0VBQTJCO0lBQ2pCLGVBQWM7SUFBZCxnQ0FBYyx3Q0FBQTtJQUMxQixlQUF1QjtJQUF2Qiw0RUFBdUI7OztJQUp0RCwyQkFBa0M7SUFD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UTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDTixTQUFTLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDOztpSUExRVEsK0JBQStCO2lIQUEvQiwrQkFBK0I7UUNwRjVDLHdDQUFrRSx3QkFBQSxZQUFBO1FBRXBDLFlBQVM7UUFBQSxpQkFBSyxFQUFBO1FBRTFDLDBDQUFvQixjQUFBO1FBRWhCLDRHQUFxRTtRQUNyRSw0RUFBZ0Q7UUFFaEQsOEVBSUs7UUFFTCxrRkFPTTtRQUVOLGtGQUtNO1FBQ1IsaUJBQU87UUFDUCw4RUFBZ0Q7UUFDbEQsaUJBQXFCO1FBQ3JCLDBDQUFtQixpQkFBQTtRQUVmLDZHQUFTLGVBQVcsSUFBQztRQUEwQyxhQUFxQjtRQUFBLGlCQUFTO1FBQy9GLGtDQUFtRjtRQUE3RCw2R0FBUyxjQUFVLElBQUM7UUFBeUMsYUFBb0I7UUFBQSxpQkFBUyxFQUFBLEVBQUE7O1FBcEMxRSxxQ0FBdUI7UUFFbkMsZUFBUztRQUFULCtCQUFTO1FBSWIsZUFBYTtRQUFiLGtDQUFhO1FBQzdCLGVBQW9CO1FBQXBCLHlDQUFvQjtRQUVuQixlQUFzQztRQUF0QywrREFBc0M7UUFNckMsZUFBMEI7UUFBMUIsK0NBQTBCO1FBU3FDLGVBQWtCO1FBQWxCLHVDQUFrQjtRQU9yRixlQUFvQjtRQUFwQix5Q0FBb0I7UUFHa0UsZUFBb0I7UUFBcEIsc0NBQW9CO1FBQzdDLGVBQXFCO1FBQXJCLDJDQUFxQjtRQUNILGVBQW9CO1FBQXBCLDBDQUFvQjs7dUZEZ0Q5RiwrQkFBK0I7Y0FKM0MsU0FBUzsyQkFFSSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VEaWFsb2dDb21wb25lbnQsIERpYWxvZ09wdGlvbnMsIERpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2Jhc2UtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0Nsb3NlUmVhc29uIH0gZnJvbSAnLi4vZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogVGhlIGNvbmZpcm1hdGlvbiBsaXN0IGRpYWxvZyBvcHRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtYXRpb25MaXN0RGlhbG9nT3B0aW9ucyBleHRlbmRzIERpYWxvZ09wdGlvbnMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY2FuY2VsIGJ1dHRvbiB0ZXh0LlxyXG4gICAgICovXHJcbiAgICBjYW5jZWxCdXR0b25UZXh0OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY2hlY2tib3ggdGV4dC5cclxuICAgICAqL1xyXG4gICAgY2hlY2tib3hUZXh0Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbmZpcm1hdGlvbiBidXR0b24gdGV4dC5cclxuICAgICAqL1xyXG4gICAgY29uZmlybUJ1dHRvblRleHQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsaXN0IGZvb3RlciB0ZXh0LlxyXG4gICAgICovXHJcbiAgICBsaXN0Rm9vdGVyVGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG9ic2VydmFibGUgb2YgZGF0YSBzb3VyY2UuXHJcbiAgICAgKi9cclxuICAgIGxpc3REYXRhU291cmNlOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3QgdHlwZSAobGlzdCwgcmFkaW8pLlxyXG4gICAgICovXHJcbiAgICBsaXN0VHlwZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsaXN0IGhlYWRlciB0ZXh0LlxyXG4gICAgICovXHJcbiAgICBsaXN0SGVhZGVyVGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRpdGxlIHRleHQuXHJcbiAgICAgKi9cclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSBkaWFsb2cgaXMgb3BlbmVkIGZyb20gUnBjXHJcbiAgICAgKi9cclxuICAgIGlzRnJvbVJwYz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgY29uZmlybWF0aW9uIGxpc3QgZGlhbG9nIHJlc3VsdC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybWF0aW9uTGlzdERpYWxvZ1Jlc3VsdCBleHRlbmRzIERpYWxvZ1Jlc3VsdCB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSByZXN1bHQgb2YgdGhlIGRpYWxvZyBjb25maXJtYXRpb24uXHJcbiAgICAgKi9cclxuICAgIGNvbmZpcm1lZDogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjaGVja2JveCByZXN1bHQuXHJcbiAgICAgKi9cclxuICAgIGNoZWNrYm94UmVzdWx0PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzZWxlY3Rpb24gcmVzdWx0LlxyXG4gICAgICovXHJcbiAgICByYWRpb1NlbGVjdGlvblJlc3VsdD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvYnNlcnZhYmxlIGVycm9yIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgb2JzZXJ2YWJsZUVycm9yPzogYW55O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24tbGlzdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc2VsZWN0b3I6ICdzbWUtY29uZmlybWF0aW9uLWxpc3QtZGlhbG9nJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uTGlzdERpYWxvZ0NvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBCYXNlRGlhbG9nQ29tcG9uZW50PENvbmZpcm1hdGlvbkxpc3REaWFsb2dPcHRpb25zLCBDb25maXJtYXRpb25MaXN0RGlhbG9nUmVzdWx0PiB7XHJcbiAgICBwdWJsaWMgY2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nO1xyXG4gICAgcHVibGljIGNoZWNrZWQ6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgcmFkaW9TZWxlY3Rpb25SZXN1bHQ6IGFueTtcclxuICAgIHB1YmxpYyBjaGVja2JveFRleHQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBjb25maXJtQnV0dG9uVGV4dDogc3RyaW5nO1xyXG4gICAgcHVibGljIGxpc3RGb290ZXJUZXh0OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbGlzdERhdGE6IGFueVtdO1xyXG4gICAgcHVibGljIGxpc3RUeXBlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbGlzdEhlYWRlclRleHQ6IHN0cmluZztcclxuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW47XHJcblxyXG4gICAgcHJpdmF0ZSBkYXRhU291cmNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKGRpYWxvZ1NlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZVJlcXVlc3RlZChyZWFzb246IERpYWxvZ0Nsb3NlUmVhc29uKSB7XHJcbiAgICAgICAgdGhpcy5vbkNhbmNlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93KG9wdGlvbnM6IENvbmZpcm1hdGlvbkxpc3REaWFsb2dPcHRpb25zKTogU3ViamVjdDxDb25maXJtYXRpb25MaXN0RGlhbG9nUmVzdWx0PiB7XHJcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29uZmlybWF0aW9uTGlzdERpYWxvZ0NvbXBvbmVudC5zaG93OiBPcHRpb25zIGFyZSByZXF1aXJlZCB0byBzaG93IHRoZSBkaWFsb2cuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXN1bHQgPSBzdXBlci5zaG93KG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsQnV0dG9uVGV4dCA9IG9wdGlvbnMuY2FuY2VsQnV0dG9uVGV4dDtcclxuICAgICAgICB0aGlzLmNoZWNrYm94VGV4dCA9IG9wdGlvbnMuY2hlY2tib3hUZXh0O1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybUJ1dHRvblRleHQgPSBvcHRpb25zLmNvbmZpcm1CdXR0b25UZXh0O1xyXG4gICAgICAgIHRoaXMubGlzdEZvb3RlclRleHQgPSBvcHRpb25zLmxpc3RGb290ZXJUZXh0O1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnJhZGlvU2VsZWN0aW9uUmVzdWx0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxpc3RUeXBlID0gb3B0aW9ucy5saXN0VHlwZTtcclxuICAgICAgICB0aGlzLmxpc3RIZWFkZXJUZXh0ID0gb3B0aW9ucy5saXN0SGVhZGVyVGV4dDtcclxuICAgICAgICB0aGlzLnRpdGxlID0gb3B0aW9ucy50aXRsZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVN1YnNjcmlwdGlvbiA9IG9wdGlvbnMubGlzdERhdGFTb3VyY2Uuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICBzdHJpbmdzID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0RGF0YSA9IHN0cmluZ3M7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJhZGlvU2VsZWN0aW9uUmVzdWx0ID0gdGhpcy5saXN0RGF0YSA/IHRoaXMubGlzdERhdGFbMF0gOiAnJztcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm1lZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YWJsZUVycm9yOiBlcnJvclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoaWRlKHJlc3VsdD86IENvbmZpcm1hdGlvbkxpc3REaWFsb2dSZXN1bHQpIHtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgc3VwZXIuaGlkZShyZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNvbmZpcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oaWRlKHtcclxuICAgICAgICAgICAgY29uZmlybWVkOiB0cnVlLFxyXG4gICAgICAgICAgICBjaGVja2JveFJlc3VsdDogKHRoaXMuY2hlY2tib3hUZXh0KSA/IHRoaXMuY2hlY2tlZCA6IG51bGwsXHJcbiAgICAgICAgICAgIHJhZGlvU2VsZWN0aW9uUmVzdWx0OiB0aGlzLnJhZGlvU2VsZWN0aW9uUmVzdWx0XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaGlkZSh7XHJcbiAgICAgICAgICAgIGNvbmZpcm1lZDogZmFsc2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPHNtZS1kaWFsb2cgI2RpYWxvZyBkaWFsb2dNb2RlPVwiY2VudGVyZWRcIiBbY2xpY2tCYWNrZHJvcF09J2ZhbHNlJz5cclxuICA8c21lLWRpYWxvZy1oZWFkZXI+XHJcbiAgICA8aDIgaWQ9XCJzbWUtZGlhbG9nLXRpdGxlXCI+e3t0aXRsZX19PC9oMj5cclxuICA8L3NtZS1kaWFsb2ctaGVhZGVyPlxyXG4gIDxzbWUtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8Zm9ybSBpZD1cInNtZS1jb25maXJtYXRpb24tbGlzdC1kaWFsb2ctZm9ybVwiPlxyXG4gICAgICA8c21lLWxvYWRpbmctd2hlZWwgKm5nSWY9XCJsb2FkaW5nXCIgc2l6ZT1cIm1lZGl1bVwiPjwvc21lLWxvYWRpbmctd2hlZWw+XHJcbiAgICAgIDxwICpuZ0lmPVwibGlzdEhlYWRlclRleHRcIj57e2xpc3RIZWFkZXJUZXh0fX08L3A+XHJcblxyXG4gICAgICA8dWwgKm5nSWY9XCIhbGlzdFR5cGUgfHwgbGlzdFR5cGUgPT09ICdsaXN0J1wiIGNsYXNzPVwic21lLWxpc3Qgc21lLXBvc2l0aW9uLWZsZXgtYXV0byBzbWUtbWFyZ2luLXRvcC14eHNcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdERhdGFcIiBbdGl0bGVdPVwiaXRlbT8udGl0bGUgfHwgJydcIj5cclxuICAgICAgICAgIHt7IGl0ZW0/LnZhbHVlIHx8IGl0ZW0gfX1cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cImxpc3RUeXBlID09PSAncmFkaW8nXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0RGF0YTsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwic21lLXJhZGlvIHNtZS1wb3NpdGlvbi1mbGV4LWF1dG8gc21lLW1hcmdpbi10b3AteHhzXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzbWUtZm9udC1ib2R5XCIgW3RpdGxlXT1cIml0ZW0/LnRpdGxlIHx8ICcnXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwic2VsZWN0aW9uXCIgW3ZhbHVlXT1cIml0ZW1cIiBbKG5nTW9kZWwpXT1cInJhZGlvU2VsZWN0aW9uUmVzdWx0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7aXRlbT8udmFsdWUgfHwgaXRlbX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic21lLWNoZWNrYm94IHNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLW1hcmdpbi10b3AteHhzXCIgKm5nSWY9XCJjaGVja2JveFRleHRcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJzbWUtZm9udC1ib2R5XCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJjaGVja2VkXCIgLz5cclxuICAgICAgICAgIDxzcGFuPnt7Y2hlY2tib3hUZXh0fX08L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8cCAqbmdJZj1cImxpc3RGb290ZXJUZXh0XCI+e3tsaXN0Rm9vdGVyVGV4dH19PC9wPlxyXG4gIDwvc21lLWRpYWxvZy1jb250ZW50PlxyXG4gIDxzbWUtZGlhbG9nLWZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwic21lLWJ1dHRvbi1wcmltYXJ5XCIgZm9ybT1cInNtZS1jb25maXJtYXRpb24tbGlzdC1kaWFsb2ctZm9ybVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ29uZmlybSgpXCIgZGF0YS11dGEtaWQ9XCJkaWFsb2ctbGlzdC1jb25maXJtLWJ1dHRvblwiPnt7Y29uZmlybUJ1dHRvblRleHR9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIiBkYXRhLXV0YS1pZD1cImRpYWxvZy1saXN0LWNhbmNlbC1idXR0b25cIj57e2NhbmNlbEJ1dHRvblRleHR9fTwvYnV0dG9uPlxyXG4gIDwvc21lLWRpYWxvZy1mb290ZXI+XHJcbjwvc21lLWRpYWxvZz5cclxuIl19