UNPKG

@materia/users

Version:

Signin/signup your users in your Materia application

246 lines 27.5 kB
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { FormBuilder, Validators } from '@angular/forms'; import { MatExpansionPanel } from '@angular/material/expansion'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; import * as i2 from "@angular/forms"; import * as i3 from "@angular/material/expansion"; import * as i4 from "@angular/flex-layout/flex"; import * as i5 from "@angular/material/form-field"; import * as i6 from "@angular/material/input"; import * as i7 from "@angular/material/select"; import * as i8 from "@angular/common"; import * as i9 from "@angular/material/button"; import * as i10 from "@angular/material/core"; var _c0 = ["signupPanel"]; var _c1 = ["changeEmailPanel"]; var _c2 = ["lostPasswordPanel"]; function EmailSettingsComponent_mat_option_11_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "mat-option", 20); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { var t_r6 = ctx.$implicit; i0.ɵɵproperty("value", t_r6.id); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate2("", t_r6.name, " (", t_r6.id, ")"); } } function EmailSettingsComponent_mat_option_23_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "mat-option", 20); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { var t_r7 = ctx.$implicit; i0.ɵɵproperty("value", t_r7.id); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate2("", t_r7.name, " (", t_r7.id, ")"); } } function EmailSettingsComponent_mat_option_35_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "mat-option", 20); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { var t_r8 = ctx.$implicit; i0.ɵɵproperty("value", t_r8.id); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate2("", t_r8.name, " (", t_r8.id, ")"); } } var EmailSettingsComponent = /** @class */ (function () { function EmailSettingsComponent(http, form) { this.http = http; this.form = form; this.hide = new EventEmitter(); this.save = new EventEmitter(); } EmailSettingsComponent.prototype.ngOnInit = function () { this.emailForm = this.form.group({ method: [ this.getSettingsProperty('method', 'session'), Validators.required ], user_profile_enabled: [ this.getSettingsProperty('user_profile_enabled', false) ], user_profile_entity: [ this.getSettingsProperty('user_profile_entity', '') ], email_verification: [ this.getSettingsProperty('email_verification', false) ], email_addon: [this.getSettingsProperty('email_addon', false)], template_signup: [this.getSettingsProperty('template_signup', '')], redirect_signup: [this.getSettingsProperty('redirect_signup', '')], subject_signup: [this.getSettingsProperty('subject_signup', '')], subject_lost_password: [this.getSettingsProperty('subject_lost_password', '')], subject_change_email: [this.getSettingsProperty('subject_change_email', '')], template_lost_password: [ this.getSettingsProperty('template_lost_password', '') ], redirect_lost_password: [ this.getSettingsProperty('redirect_lost_password', '') ], template_change_email: [ this.getSettingsProperty('template_change_email', '') ], redirect_change_email: [ this.getSettingsProperty('redirect_change_email', '') ] }); this.refreshTemplates(); }; EmailSettingsComponent.prototype.refreshTemplates = function () { var _this = this; if (this.settings.email_addon === '@materia/mailjet') { this.http .post(this.baseUrl + "/entities/mailjet_template/queries/list", { limit: 1000 }) .subscribe(function (data) { _this.templates = data.data .filter(function (row) { return row.OwnerId !== 0; }) .map(function (row) { return { name: row.Name, id: row.ID }; }); }); } else if (this.settings.email_addon === '@materia/sendgrid') { this.http .post(this.baseUrl + "/entities/sendgrid_template/queries/listTemplates", {}) .subscribe(function (data) { _this.templates = data && data.data && data.data; // TODO... }); } }; EmailSettingsComponent.prototype.saveEmailSettings = function () { if (this.emailForm.valid) { this.save.emit(this.emailForm.value); } }; EmailSettingsComponent.prototype.cancel = function () { this.hide.emit(); }; EmailSettingsComponent.prototype.getSettingsProperty = function (property, defaultValue) { return (this.settings && this.settings[property]) || defaultValue; }; EmailSettingsComponent.ɵfac = function EmailSettingsComponent_Factory(t) { return new (t || EmailSettingsComponent)(i0.ɵɵdirectiveInject(i1.HttpClient), i0.ɵɵdirectiveInject(i2.FormBuilder)); }; EmailSettingsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: EmailSettingsComponent, selectors: [["materia-user-management-email-settings"]], viewQuery: function EmailSettingsComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵstaticViewQuery(_c0, true); i0.ɵɵstaticViewQuery(_c1, true); i0.ɵɵstaticViewQuery(_c2, true); } if (rf & 2) { var _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.signupPanel = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.changeEmailPanel = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lostPasswordPanel = _t.first); } }, inputs: { settings: "settings", baseUrl: "baseUrl" }, outputs: { hide: "hide", save: "save" }, decls: 43, vars: 5, consts: [[3, "formGroup"], ["fxLayout", "column", 3, "expanded"], ["signupPanel", ""], ["fxLayout", "column", 1, "panel-content"], ["matInput", "", "placeholder", "Subject", "formControlName", "subject_signup"], ["placeholder", "Template", "formControlName", "template_signup"], [3, "value", 4, "ngFor", "ngForOf"], ["matInput", "", "placeholder", "Redirect URL", "formControlName", "redirect_signup"], ["changeEmailPanel", ""], ["matInput", "", "placeholder", "Subject", "formControlName", "subject_change_email"], ["placeholder", "Template", "formControlName", "template_change_email"], ["matInput", "", "placeholder", "Redirect URL", "formControlName", "redirect_change_email"], ["fxLayout", "column"], ["lostPasswordPanel", ""], ["matInput", "", "placeholder", "Subject", "formControlName", "subject_lost_password"], ["placeholder", "Template", "formControlName", "template_lost_password"], ["matInput", "", "placeholder", "Redirect URL", "formControlName", "redirect_lost_password"], [2, "margin", "16px 0", "text-align", "center"], ["mat-raised-button", "", "color", "primary", 2, "margin-right", "8px", 3, "click"], ["mat-raised-button", "", 3, "click"], [3, "value"]], template: function EmailSettingsComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "form", 0); i0.ɵɵelementStart(1, "mat-accordion"); i0.ɵɵelementStart(2, "mat-expansion-panel", 1, 2); i0.ɵɵelementStart(4, "mat-expansion-panel-header"); i0.ɵɵtext(5, " Signup "); i0.ɵɵelementEnd(); i0.ɵɵelementStart(6, "div", 3); i0.ɵɵelementStart(7, "mat-form-field"); i0.ɵɵelement(8, "input", 4); i0.ɵɵelementEnd(); i0.ɵɵelementStart(9, "mat-form-field"); i0.ɵɵelementStart(10, "mat-select", 5); i0.ɵɵtemplate(11, EmailSettingsComponent_mat_option_11_Template, 2, 3, "mat-option", 6); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementStart(12, "mat-form-field"); i0.ɵɵelement(13, "input", 7); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementStart(14, "mat-expansion-panel", null, 8); i0.ɵɵelementStart(16, "mat-expansion-panel-header"); i0.ɵɵtext(17, " Change email "); i0.ɵɵelementEnd(); i0.ɵɵelementStart(18, "div", 3); i0.ɵɵelementStart(19, "mat-form-field"); i0.ɵɵelement(20, "input", 9); i0.ɵɵelementEnd(); i0.ɵɵelementStart(21, "mat-form-field"); i0.ɵɵelementStart(22, "mat-select", 10); i0.ɵɵtemplate(23, EmailSettingsComponent_mat_option_23_Template, 2, 3, "mat-option", 6); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementStart(24, "mat-form-field"); i0.ɵɵelement(25, "input", 11); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementStart(26, "mat-expansion-panel", 12, 13); i0.ɵɵelementStart(28, "mat-expansion-panel-header"); i0.ɵɵtext(29, " Lost password "); i0.ɵɵelementEnd(); i0.ɵɵelementStart(30, "div", 3); i0.ɵɵelementStart(31, "mat-form-field"); i0.ɵɵelement(32, "input", 14); i0.ɵɵelementEnd(); i0.ɵɵelementStart(33, "mat-form-field"); i0.ɵɵelementStart(34, "mat-select", 15); i0.ɵɵtemplate(35, EmailSettingsComponent_mat_option_35_Template, 2, 3, "mat-option", 6); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementStart(36, "mat-form-field"); i0.ɵɵelement(37, "input", 16); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementStart(38, "div", 17); i0.ɵɵelementStart(39, "button", 18); i0.ɵɵlistener("click", function EmailSettingsComponent_Template_button_click_39_listener() { return ctx.saveEmailSettings(); }); i0.ɵɵtext(40, "Save"); i0.ɵɵelementEnd(); i0.ɵɵelementStart(41, "button", 19); i0.ɵɵlistener("click", function EmailSettingsComponent_Template_button_click_41_listener() { return ctx.hide.emit(); }); i0.ɵɵtext(42, "Cancel"); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵproperty("formGroup", ctx.emailForm); i0.ɵɵadvance(2); i0.ɵɵproperty("expanded", true); i0.ɵɵadvance(9); i0.ɵɵproperty("ngForOf", ctx.templates); i0.ɵɵadvance(12); i0.ɵɵproperty("ngForOf", ctx.templates); i0.ɵɵadvance(12); i0.ɵɵproperty("ngForOf", ctx.templates); } }, directives: [i2.ɵangular_packages_forms_forms_y, i2.NgControlStatusGroup, i2.FormGroupDirective, i3.MatAccordion, i3.MatExpansionPanel, i4.DefaultLayoutDirective, i3.MatExpansionPanelHeader, i5.MatFormField, i6.MatInput, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlName, i7.MatSelect, i8.NgForOf, i9.MatButton, i10.MatOption], styles: [".panel-content[_ngcontent-%COMP%]{margin:0 24px!important}"] }); return EmailSettingsComponent; }()); export { EmailSettingsComponent }; /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(EmailSettingsComponent, [{ type: Component, args: [{ selector: 'materia-user-management-email-settings', templateUrl: './email-settings.component.html', styleUrls: ['./email-settings.component.scss'] }] }], function () { return [{ type: i1.HttpClient }, { type: i2.FormBuilder }]; }, { settings: [{ type: Input }], baseUrl: [{ type: Input }], hide: [{ type: Output }], save: [{ type: Output }], signupPanel: [{ type: ViewChild, args: ['signupPanel', { static: true }] }], changeEmailPanel: [{ type: ViewChild, args: ['changeEmailPanel', { static: true }] }], lostPasswordPanel: [{ type: ViewChild, args: ['lostPasswordPanel', { static: true }] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hdGVyaWEvdXNlcnMvIiwic291cmNlcyI6WyJlbWFpbHMtc2V0dGluZ3MvZW1haWwtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiZW1haWxzLXNldHRpbmdzL2VtYWlsLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQWEsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0lDSTFELHNDQUF1RDtJQUFBLFlBQXVCO0lBQUEsaUJBQWE7OztJQUFuRCwrQkFBYztJQUFDLGVBQXVCO0lBQXZCLHdEQUF1Qjs7O0lBcUI5RSxzQ0FBdUQ7SUFBQSxZQUF1QjtJQUFBLGlCQUFhOzs7SUFBbkQsK0JBQWM7SUFBQyxlQUF1QjtJQUF2Qix3REFBdUI7OztJQW9COUUsc0NBQXVEO0lBQUEsWUFBdUI7SUFBQSxpQkFBYTs7O0lBQW5ELCtCQUFjO0lBQUMsZUFBdUI7SUFBdkIsd0RBQXVCOztBRHpDcEY7SUFtQkUsZ0NBQW9CLElBQWdCLEVBQVUsSUFBaUI7UUFBM0MsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFWckQsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFTeUIsQ0FBQztJQUVuRSx5Q0FBUSxHQUFSO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMs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ICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25QYW5lbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5cbmltcG9ydCB7IFVzZXJNYW5hZ2VtZW50U2V0dGluZ3MgfSBmcm9tICdjbGllbnQvbW9kZWxzL3VzZXItc2V0dGluZy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdGVyaWEtdXNlci1tYW5hZ2VtZW50LWVtYWlsLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VtYWlsLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW1haWwtc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbFNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2V0dGluZ3M6IFVzZXJNYW5hZ2VtZW50U2V0dGluZ3M7XG4gIEBJbnB1dCgpIGJhc2VVcmw6IHN0cmluZztcblxuICBAT3V0cHV0KCkgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdzaWdudXBQYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pIHNpZ251cFBhbmVsOiBNYXRFeHBhbnNpb25QYW5lbDtcbiAgQFZpZXdDaGlsZCgnY2hhbmdlRW1haWxQYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pIGNoYW5nZUVtYWlsUGFuZWw6IE1hdEV4cGFuc2lvblBhbmVsO1xuICBAVmlld0NoaWxkKCdsb3N0UGFzc3dvcmRQYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pIGxvc3RQYXNzd29yZFBhbmVsOiBNYXRFeHBhbnNpb25QYW5lbDtcblxuICBlbWFpbEZvcm06IEZvcm1Hcm91cDtcbiAgdGVtcGxhdGVzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgaWQ6IG51bWJlciB9PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZm9ybTogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbWFpbEZvcm0gPSB0aGlzLmZvcm0uZ3JvdXAoe1xuICAgICAgbWV0aG9kOiBbXG4gICAgICAgIHRoaXMuZ2V0U2V0dGluZ3NQcm9wZXJ0eSgnbWV0aG9kJywgJ3Nlc3Npb24nKSxcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgXSxcbiAgICAgIHVzZXJfcHJvZmlsZV9lbmFibGVkOiBbXG4gICAgICAgIHRoaXMuZ2V0U2V0dGluZ3NQcm9wZXJ0eSgndXNlcl9wcm9maWxlX2VuYWJsZWQnLCBmYWxzZSlcbiAgICAgIF0sXG4gICAgICB1c2VyX3Byb2ZpbGVfZW50aXR5OiBbXG4gICAgICAgIHRoaXMuZ2V0U2V0dGluZ3NQcm9wZXJ0eSgndXNlcl9wcm9maWxlX2VudGl0eScsICcnKVxuICAgICAgXSxcbiAgICAgIGVtYWlsX3ZlcmlmaWNhdGlvbjogW1xuICAgICAgICB0aGlzLmdldFNldHRpbmdzUHJvcGVydHkoJ2VtYWlsX3ZlcmlmaWNhdGlvbicsIGZhbHNlKVxuICAgICAgXSxcbiAgICAgIGVtYWlsX2FkZG9uOiBbdGhpcy5nZXRTZXR0aW5nc1Byb3BlcnR5KCdlbWFpbF9hZGRvbicsIGZhbHNlKV0sXG4gICAgICB0ZW1wbGF0ZV9zaWdudXA6IFt0aGlzLmdldFNldHRpbmdzUHJvcGVydHkoJ3RlbXBsYXRlX3NpZ251cCcsICcnKV0sXG4gICAgICByZWRpcmVjdF9zaWdudXA6IFt0aGlzLmdldFNldHRpbmdzUHJvcGVydHkoJ3JlZGlyZWN0X3NpZ251cCcsICcnKV0sXG4gICAgICBzdWJqZWN0X3NpZ251cDogW3RoaXMuZ2V0U2V0dGluZ3NQcm9wZXJ0eSgnc3ViamVjdF9zaWdudXAnLCAnJyldLFxuICAgICAgc3ViamVjdF9sb3N0X3Bhc3N3b3JkOiBbdGhpcy5nZXRTZXR0aW5nc1Byb3BlcnR5KCdzdWJqZWN0X2xvc3RfcGFzc3dvcmQnLCAnJyldLFxuICAgICAgc3ViamVjdF9jaGFuZ2VfZW1haWw6IFt0aGlzLmdldFNldHRpbmdzUHJvcGVydHkoJ3N1YmplY3RfY2hhbmdlX2VtYWlsJywgJycpXSxcbiAgICAgIHRlbXBsYXRlX2xvc3RfcGFzc3dvcmQ6IFtcbiAgICAgICAgdGhpcy5nZXRTZXR0aW5nc1Byb3BlcnR5KCd0ZW1wbGF0ZV9sb3N0X3Bhc3N3b3JkJywgJycpXG4gICAgICBdLFxuICAgICAgcmVkaXJlY3RfbG9zdF9wYXNzd29yZDogW1xuICAgICAgICB0aGlzLmdldFNldHRpbmdzUHJvcGVydHkoJ3JlZGlyZWN0X2xvc3RfcGFzc3dvcmQnLCAnJylcbiAgICAgIF0sXG4gICAgICB0ZW1wbGF0ZV9jaGFuZ2VfZW1haWw6IFtcbiAgICAgICAgdGhpcy5nZXRTZXR0aW5nc1Byb3BlcnR5KCd0ZW1wbGF0ZV9jaGFuZ2VfZW1haWwnLCAnJylcbiAgICAgIF0sXG4gICAgICByZWRpcmVjdF9jaGFuZ2VfZW1haWw6IFtcbiAgICAgICAgdGhpcy5nZXRTZXR0aW5nc1Byb3BlcnR5KCdyZWRpcmVjdF9jaGFuZ2VfZW1haWwnLCAnJylcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHRoaXMucmVmcmVzaFRlbXBsYXRlcygpO1xuICB9XG5cbiAgcmVmcmVzaFRlbXBsYXRlcygpIHtcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5lbWFpbF9hZGRvbiA9PT0gJ0BtYXRlcmlhL21haWxqZXQnKSB7XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmJhc2VVcmx9L2VudGl0aWVzL21haWxqZXRfdGVtcGxhdGUvcXVlcmllcy9saXN0YCwge2xpbWl0OiAxMDAwfSlcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IGRhdGEuZGF0YVxuICAgICAgICAgICAgLmZpbHRlcihyb3cgPT4gcm93Lk93bmVySWQgIT09IDApXG4gICAgICAgICAgICAubWFwKHJvdyA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogcm93Lk5hbWUsXG4gICAgICAgICAgICAgICAgaWQ6IHJvdy5JRFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZXR0aW5ncy5lbWFpbF9hZGRvbiA9PT0gJ0BtYXRlcmlhL3NlbmRncmlkJykge1xuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5wb3N0PGFueT4oXG4gICAgICAgICAgYCR7dGhpcy5iYXNlVXJsfS9lbnRpdGllcy9zZW5kZ3JpZF90ZW1wbGF0ZS9xdWVyaWVzL2xpc3RUZW1wbGF0ZXNgLFxuICAgICAgICAgIHt9XG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IGRhdGEgJiYgZGF0YS5kYXRhICYmIGRhdGEuZGF0YTtcbiAgICAgICAgICAvLyBUT0RPLi4uXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVFbWFpbFNldHRpbmdzKCkge1xuICAgIGlmICh0aGlzLmVtYWlsRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5zYXZlLmVtaXQodGhpcy5lbWFpbEZvcm0udmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZXR0aW5nc1Byb3BlcnR5KHByb3BlcnR5LCBkZWZhdWx0VmFsdWUpIHtcbiAgICByZXR1cm4gKHRoaXMuc2V0dGluZ3MgJiYgdGhpcy5zZXR0aW5nc1twcm9wZXJ0eV0pIHx8IGRlZmF1bHRWYWx1ZTtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJlbWFpbEZvcm1cIj5cblx0PG1hdC1hY2NvcmRpb24+XG5cdFx0PG1hdC1leHBhbnNpb24tcGFuZWwgI3NpZ251cFBhbmVsIFtleHBhbmRlZF09XCJ0cnVlXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cblx0XHRcdDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cblx0XHRcdFx0U2lnbnVwXG5cdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGFuZWwtY29udGVudFwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XG5cdFx0XHRcdDxtYXQtZm9ybS1maWVsZD5cblx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJTdWJqZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwic3ViamVjdF9zaWdudXBcIj5cblx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cblxuXHRcdFx0XHQ8bWF0LWZvcm0tZmllbGQ+XG5cdFx0XHRcdFx0PG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJUZW1wbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cInRlbXBsYXRlX3NpZ251cFwiPlxuXHRcdFx0XHRcdFx0PG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHQgb2YgdGVtcGxhdGVzXCIgW3ZhbHVlXT1cInQuaWRcIj57eyB0Lm5hbWUgfX0gKHt7dC5pZH19KTwvbWF0LW9wdGlvbj5cblx0XHRcdFx0XHQ8L21hdC1zZWxlY3Q+XG5cdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XG5cdFx0XHRcdDxtYXQtZm9ybS1maWVsZD5cblx0XHRcdFx0XHQ8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJSZWRpcmVjdCBVUkxcIiBmb3JtQ29udHJvbE5hbWU9XCJyZWRpcmVjdF9zaWdudXBcIj5cblx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cblxuXHRcdDxtYXQtZXhwYW5zaW9uLXBhbmVsICNjaGFuZ2VFbWFpbFBhbmVsPlxuXHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuXHRcdFx0XHRDaGFuZ2UgZW1haWxcblx0XHRcdDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG5cblx0XHRcdDxkaXYgY2xhc3M9XCJwYW5lbC1jb250ZW50XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cblx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkPlxuXHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlN1YmplY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJzdWJqZWN0X2NoYW5nZV9lbWFpbFwiPlxuXHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxuXG5cdFx0XHRcdDxtYXQtZm9ybS1maWVsZD5cblx0XHRcdFx0XHQ8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIlRlbXBsYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGVtcGxhdGVfY2hhbmdlX2VtYWlsXCI+XG5cdFx0XHRcdFx0XHQ8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdCBvZiB0ZW1wbGF0ZXNcIiBbdmFsdWVdPVwidC5pZFwiPnt7IHQubmFtZSB9fSAoe3t0LmlkfX0pPC9tYXQtb3B0aW9uPlxuXHRcdFx0XHRcdDwvbWF0LXNlbGVjdD5cblx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cblx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkPlxuXHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlJlZGlyZWN0IFVSTFwiIGZvcm1Db250cm9sTmFtZT1cInJlZGlyZWN0X2NoYW5nZV9lbWFpbFwiPlxuXHRcdFx0XHQ8L21hdC1mb3JtLWZpZWxkPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuXG5cdFx0PG1hdC1leHBhbnNpb24tcGFuZWwgI2xvc3RQYXNzd29yZFBhbmVsIGZ4TGF5b3V0PVwiY29sdW1uXCI+XG5cdFx0XHQ8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG5cdFx0XHRcdExvc3QgcGFzc3dvcmRcblx0XHRcdDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGFuZWwtY29udGVudFwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XG5cblx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkPlxuXHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlN1YmplY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJzdWJqZWN0X2xvc3RfcGFzc3dvcmRcIj5cblx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cblx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkPlxuXHRcdFx0XHRcdDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiVGVtcGxhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZW1wbGF0ZV9sb3N0X3Bhc3N3b3JkXCI+XG5cdFx0XHRcdFx0XHQ8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdCBvZiB0ZW1wbGF0ZXNcIiBbdmFsdWVdPVwidC5pZFwiPnt7IHQubmFtZSB9fSAoe3t0LmlkfX0pPC9tYXQtb3B0aW9uPlxuXHRcdFx0XHRcdDwvbWF0LXNlbGVjdD5cblx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cblx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkPlxuXHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlJlZGlyZWN0IFVSTFwiIGZvcm1Db250cm9sTmFtZT1cInJlZGlyZWN0X2xvc3RfcGFzc3dvcmRcIj5cblx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cblx0PC9tYXQtYWNjb3JkaW9uPlxuXHQ8ZGl2IHN0eWxlPVwibWFyZ2luOiAxNnB4IDA7IHRleHQtYWxpZ246IGNlbnRlcjtcIj5cblx0XHQ8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlRW1haWxTZXR0aW5ncygpXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDhweFwiPlNhdmU8L2J1dHRvbj5cblx0XHQ8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJoaWRlLmVtaXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxuXHQ8L2Rpdj5cbjwvZm9ybT4iXX0=