iptdevs-design-system 3.1.539 → 3.1.541
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.mjs +12 -11
- package/esm2020/lib/core/models/academic/academic.component.mjs +1 -1
- package/fesm2015/iptdevs-design-system.mjs +11 -10
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +11 -10
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/lib/core/models/academic/academic.component.d.ts +1 -0
- package/package.json +1 -1
package/esm2020/lib/cod-self-managed/steps/cod-form-step-two/cod-self-form-step-two.component.mjs
CHANGED
|
@@ -24,17 +24,17 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
24
24
|
this.visible = false;
|
|
25
25
|
this.messageInfo = 'Busca un plan deacuerdo a tu disponibilidad';
|
|
26
26
|
this.stateOptionsModality = [
|
|
27
|
-
{ key: 'pr', name: 'Presencial' },
|
|
28
|
-
{ key: 'vi', name: 'Virtual' },
|
|
27
|
+
{ code: 1, key: 'pr', name: 'Presencial' },
|
|
28
|
+
{ code: 2, key: 'vi', name: 'Virtual' },
|
|
29
29
|
];
|
|
30
30
|
this.schedules = [
|
|
31
|
-
{ name: 'Mañana', key: 'ma' },
|
|
32
|
-
{ name: 'Tarde', key: 'ta' },
|
|
33
|
-
{ name: 'Noche', key: 'no' },
|
|
31
|
+
{ code: 1, name: 'Mañana', key: 'ma' },
|
|
32
|
+
{ code: 2, name: 'Tarde', key: 'ta' },
|
|
33
|
+
{ code: 3, name: 'Noche', key: 'no' },
|
|
34
34
|
];
|
|
35
35
|
this.OptionPlacementTest = [
|
|
36
|
-
{ key: 'si', name: 'Si' },
|
|
37
|
-
{ key: 'ni', name: 'No' },
|
|
36
|
+
{ code: 1, key: 'si', name: 'Si' },
|
|
37
|
+
{ code: 2, key: 'ni', name: 'No' },
|
|
38
38
|
];
|
|
39
39
|
this.selectedSchedules = [];
|
|
40
40
|
this.disableweekdays = [];
|
|
@@ -112,7 +112,8 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
112
112
|
grade: grade,
|
|
113
113
|
agreement: agreement,
|
|
114
114
|
modality: this.selectedModality,
|
|
115
|
-
schedules: this.selectedSchedules
|
|
115
|
+
schedules: this.selectedSchedules,
|
|
116
|
+
decitionPlacementTest: this.selectedOptionPlacementTest
|
|
116
117
|
// schedule: this.codSelfFormStepTwo.get('schedule')?.value,
|
|
117
118
|
// possible_start: this.codSelfFormStepTwo.get('to_start')?.value,
|
|
118
119
|
// modality: this.codSelfFormStepTwo.get('modality')?.value
|
|
@@ -202,10 +203,10 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
202
203
|
}
|
|
203
204
|
}
|
|
204
205
|
CodSelfFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: i2.MessageService }, { token: i3.BaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
205
|
-
CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel {{ scorePlacementTest?.level_inglish_next.name }}</span>\n <div class=\"containerDay\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i6.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i7.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i8.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i9.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i4.JsonPipe, name: "json" }] });
|
|
206
|
+
CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i6.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i7.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i8.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i9.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i4.JsonPipe, name: "json" }] });
|
|
206
207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, decorators: [{
|
|
207
208
|
type: Component,
|
|
208
|
-
args: [{ selector: 'app-cod-self-form-step-two', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel {{ scorePlacementTest?.level_inglish_next.name }}</span>\n <div class=\"containerDay\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"] }]
|
|
209
|
+
args: [{ selector: 'app-cod-self-form-step-two', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"] }]
|
|
209
210
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2.MessageService }, { type: i3.BaseService }]; }, propDecorators: { completed: [{
|
|
210
211
|
type: Output
|
|
211
212
|
}], scorePlacementTest: [{
|
|
@@ -213,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
213
214
|
}], codPrevious: [{
|
|
214
215
|
type: Input
|
|
215
216
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFtRCxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBYSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLG1CQUFtQjtJQWlDbEUsWUFDVSxFQUFlLEVBQ2YsS0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsV0FBd0I7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFMQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbkN4QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQU1qRCxhQUFRLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwRCxZQUFPLEdBQVks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QztTQUN2QzthQUFJO1lBQ0gsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQTtTQUN2QztJQUNILENBQUM7O3dIQXJOVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixxT0NieEMsMmtTQXVNQTsyRkQxTGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDRCQUE0Qjt5TEFNNUIsU0FBUztzQkFBbEIsTUFBTTtnQkFFRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcbmltcG9ydCB7IENvZFNlbGZNYW5hZ2VkQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLWNvbnRyb2xzJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIEBPdXRwdXQoKSBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASW5wdXQoKSBzY29yZVBsYWNlbWVudFRlc3Q/OmFueTtcbiAgQElucHV0KCkgY29kUHJldmlvdXM/OmFueTtcblxuICBjb2RTZWxmRm9ybVN0ZXBUd28hOiBGb3JtR3JvdXA7XG4gIGNvbnRyb2xzID0gbmV3IENvZFNlbGZNYW5hZ2VkQ29udHJvbHMoKS5jb250cm9sc1sxXTtcbiAgc3RhcnREYXRlMSE6IHN0cmluZztcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBtZXNzYWdlSW5mbzpzdHJpbmcgPSAnQnVzY2EgdW4gcGxhbiBkZWFjdWVyZG8gYSB0dSBkaXNwb25pYmlsaWRhZCc7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7IG5hbWU6ICdNYcOxYW5hJywga2V5OiAnbWEnIH0sXG4gICAgeyBuYW1lOiAnVGFyZGUnLCBrZXk6ICd0YScgfSxcbiAgICB7IG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAgeyBrZXk6ICdzaScsICBuYW1lOiAnU2knfSxcbiAgICB7IGtleTogJ25pJywgIG5hbWU6ICdObyd9LFxuICBdO1xuICBzZWxlY3RlZFNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtdO1xuICBkaXNhYmxld2Vla2RheXM6IGJvb2xlYW5bXSA9IFtdO1xuICBzZWxlY3RlZE1vZGFsaXR5Okl3ZWVrRGF5c1JxW109W11cbiAgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Okl3ZWVrRGF5c1JxW109W11cbiAgbWVzc2FnZUFsZXJ0U2NoZWR1bGVzID0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydE1vZGFsaXR5PSBmYWxzZTtcbiAgbWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdD0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMudmFsdWVzSW5pdGlhbFNjaGVkdWxlKClcbiAgfVxuICBuZ09uQ2hhbmdlcygpe1xuICAgIC8vIHRoaXMuaW5pdEZvcm0oKTtcbiAgICAvLyB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG5cbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3byA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgLy8gc2NoZWR1bGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIC8vIHRvX3N0YXJ0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAvLyBtb2RhbGl0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGFjYWRlbWljX3BsYW46IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV90eXBlOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcbiAgICAgIGVuZ2xpc2hfbGV2ZWw6IFt7dmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZX0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXG4gICAgICBhdmFpbGlibGVfY291cnNlczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY291cnNlX21vZGFsaXR5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxdLFxuXG4gICAgfSk7XG4gIH1cbiAgdmFsdWVzSW5pdGlhbFNjaGVkdWxlKCkge1xuICAgIC8vIGNvbnN0IHNjaGVkdWxlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihzY2hlZHVsZSknKTtcbiAgICAvLyBjb25zdCBjb3Vyc2VNb2RhbGl0eSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAyKG1vZGFsaXR5KScpO1xuXG4gICAgLy8gaWYgKHNjaGVkdWxlVmFsdWUgJiYgc2NoZWR1bGVWYWx1ZS50cmltKCkgIT0gJycpIHtcbiAgICAvLyAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydzY2hlZHVsZSddLnNldFZhbHVlKG5ldyBEYXRlKHNjaGVkdWxlVmFsdWUpKTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3NjaGVkdWxlJ10uc2V0VmFsdWUobmV3IERhdGUoKSk7XG4gICAgLy8gfVxuXG4gICAgLy8gaWYgKGNvdXJzZU1vZGFsaXR5ICYmIGNvdXJzZU1vZGFsaXR5LnRyaW0oKSAhPT0gJycpIHtcbiAgICAvLyAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKHBhcnNlSW50KGNvdXJzZU1vZGFsaXR5KSk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAgIC8vIH1cbiAgfVxuICBiYWNrKCkge1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gYW50ZXJpb3JcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDApO1xuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIC8vIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAvLyBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAzXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgyKTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlc1R3byA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMiwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcygyLCBjb250cm9sLm5hbWUsIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpe1xuXG4gICAgY29uc3QgYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NPRCBTRUxGIC0gc3RlcDEoYWdlKScpXG4gICAgY29uc3QgZ3JhZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMShncmFkZSknKVxuICAgIGNvbnN0IGFncmVlbWVudCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAxKGFncmVlbWVudF9ieV9jYXRlZ29yeSknKVxuICAgIGNvbnN0IHVzZXJDb2RlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyQ29kZSgpO1xuXG4gICAgY29uc29sZS5sb2codGhpcy5zY29yZVBsYWNlbWVudFRlc3QpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY29kUHJldmlvdXMpO1xuXG4gICAgY29uc3QgcmVxdWVzdDogYW55ID0ge1xuICAgICAgY29kZV91c2VyOiB1c2VyQ29kZSxcbiAgICAgIGNvZFByZXZpb3VzOiB0aGlzLmNvZFByZXZpb3VzLFxuICAgICAgc2NvcmVQbGFjZW1lbnRUZXN0OiB0aGlzLnNjb3JlUGxhY2VtZW50VGVzdCxcbiAgICAgIGFnZTogYWdlLFxuICAgICAgZ3JhZGU6IGdyYWRlLFxuICAgICAgYWdyZWVtZW50OiBhZ3JlZW1lbnQsXG4gICAgICBtb2RhbGl0eTogdGhpcy5zZWxlY3RlZE1vZGFsaXR5LFxuICAgICAgc2NoZWR1bGVzOiB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzXG4gICAgICAvLyBzY2hlZHVsZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uZ2V0KCdzY2hlZHVsZScpPy52YWx1ZSxcbiAgICAgIC8vIHBvc3NpYmxlX3N0YXJ0OiB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5nZXQoJ3RvX3N0YXJ0Jyk/LnZhbHVlLFxuICAgICAgLy8gbW9kYWxpdHk6IHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmdldCgnbW9kYWxpdHknKT8udmFsdWVcbiAgICB9XG4gICAgY29uc29sZS5sb2cocmVxdWVzdCk7XG4gIH1cblxuICAvLyB2YWxpZGF0ZURhdGUoZGF0ZVJlY2liOiBzdHJpbmcpIHtcbiAgLy8gICBjb25zdCBkYXRlUmVjaWJUcmVhbmYgPSBkYXRlUmVjaWIgKyAnVDAwOjAwOjAwLTA1OjAwJztcbiAgLy8gICBjb25zdCBmMSA9IG5ldyBEYXRlKGRhdGVSZWNpYlRyZWFuZik7XG4gIC8vICAgY29uc3QgZjIgPSBuZXcgRGF0ZSgpO1xuICAvLyAgIGlmIChmMSA+PSBmMikge1xuICAvLyAgICAgdGhpcy5zdGFydERhdGUxID0gZGF0ZVJlY2liO1xuICAvLyAgIH0gZWxzZSBpZiAoZjEgPCBmMikge1xuICAvLyAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3RvX3N0YXJ0J10uc2V0VmFsdWUoXCJcIik7XG4gIC8vICAgICBTd2FsLmZpcmUoe1xuICAvLyAgICAgICBwb3NpdGlvbjogJ3RvcC1lbmQnLFxuICAvLyAgICAgICBpY29uOiAnZXJyb3InLFxuICAvLyAgICAgICB0aXRsZTogJ0xhIGZlY2hhIHNlbGVjY2lvbmFkYSBkZWJlIHNlciBtYXlvciBxdWUgbGEgZmVjaGEgYWN0dWFsLicsXG4gIC8vICAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgLy8gICAgICAgdGltZXI6IDUwMDBcbiAgLy8gICAgIH0pO1xuICAvLyAgIH1cbiAgLy8gfVxuICAvLyBvbkRhdGVDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAvLyAgICAgLy8gQ29udmllcnRlIGxhIGZlY2hhIGEgdW5hIGNhZGVuYSBJU08gODYwMSB5IGd1w6FyZGFsYSBlbiBlbCBsb2NhbFN0b3JhZ2VcbiAgLy8gICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAyKHNjaGVkdWxlKScsIGV2ZW50LnRvSVNPU3RyaW5nKCkpO1xuICAvLyB9XG5cbiAgb25SZWplY3QoKSB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5jbGVhcignY29uZmlybScpO1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgc2hvd0NvbmZpcm0oKSB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6ICdjb25maXJtJywgc3RpY2t5OiB0cnVlLCBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnQ2FuIHlvdSBzZW5kIG1lIHRoZSByZXBvcnQ/JywgbGlmZTogMTAwMDAgfSk7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0U2NoZWR1bGVzKGV2ZTogSXdlZWtEYXlzUnFbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMgPSBldmVcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkU2NoZWR1bGVzKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0U2NoZWR1bGVzID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0U2NoZWR1bGVzID0gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBjb25zdCBkYXlzVGhlb3J5U2VsZWN0ID0gZXZlLmZpbHRlcihkYXkgPT4gdGhpcy5zZWxlY3RlZFdlZWtkYXlzQ2x1Yi5pbmNsdWRlcyhkYXkpKTtcblxuICAgIC8vIGlmIChkYXlzVGhlb3J5U2VsZWN0Lmxlbmd0aCA+IDApIHtcbiAgICAvLyAgIFN3YWwuZmlyZSh7XG4gICAgLy8gICAgIHRpdGxlOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+T3BzcyE8L3A+JyxcbiAgICAvLyAgICAgaHRtbDogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPlRoZSBjbHViIGNsYXNzIHdpbGwgYmUgc2VlbiB0aGlzIGRheS48L3A+JyxcbiAgICAvLyAgICAgaWNvbjogJ2Vycm9yJ1xuICAgIC8vICAgfSk7XG4gICAgLy8gICBldmUucG9wKCk7XG4gICAgLy8gICB0aGlzLnNlbGVjdGVkV2Vla2RheXMgPSBldmU7XG4gICAgLy8gfVxuXG4gICAgLy8gaWYgKGV2ZS5sZW5ndGggPiB0aGlzLmNsYXNzZXNUaGVvcnlXZWVrKSB7XG4gICAgLy8gICBTd2FsLmZpcmUoe1xuICAgIC8vICAgICB0aXRsZTogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPk9wc3MhPC9wPicsXG4gICAgLy8gICAgIGh0bWw6XG4gICAgLy8gICAgICAgJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPlRoZSBudW1iZXIgb2YgZGF5cyBpcyBncmVhdGVyIHRoYW4gdGhlIGVzdGFibGlzaGVkIG51bWJlciBvZiBkYXlzLjwvcD4nLFxuICAgIC8vICAgICBpY29uOiAnZXJyb3InXG4gICAgLy8gICB9KTtcbiAgICAvLyAgIGV2ZS5wb3AoKTtcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRXZWVrZGF5cyA9IGV2ZTtcbiAgICAvLyB9XG4gIH1cblxuICBzZWxlY3RNb2RhbGl0eShldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSA9IGV2ZVxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0TW9kYWxpdHkgPSB0cnVlO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRNb2RhbGl0eSA9IGZhbHNlXG4gICAgfVxuICB9XG4gIHNlbGVjdE9wY2lvbnNQbGFjZW1lbnRUZXN0KGV2ZTogSXdlZWtEYXlzUnFbXSl7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QgPSBldmVcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IGZhbHNlXG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZvcm1cIj5cbiAgICA8aDI+UGxhbmVzPC9oMj5cbiAgICAgIDxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiIGtleT1cImNvbmZpcm1cIiAob25DbG9zZSk9XCJvblJlamVjdCgpXCIgW2Jhc2VaSW5kZXhdPVwiMTBcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCIgc3R5bGU9XCJmbGV4OiAxXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9yZWFkaW5nLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDY1cHg7XCIgc2hhcGU9XCJjaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LTkwMFwiPkphY29iPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRvYXN0PlxuXG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUgY3Vyc29yLXBvaW50ZXIgdy1hdXRvXCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIj48L2k+XG4gICAgPCEtLSA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcFR3b1wiPiAtLT5cbiAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNvZFByZXZpb3VzID09IG51bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1ldmVubHkgY29sdW1uLWdhcC00IHJvdy1nYXAtNlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTlyZW0gaC00cmVtIG0tMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbXQtM1wiPlxuICAgICAgICAgICAgICA8c3Bhbj5Ib3JhcmlvIGRlc2VhZG8/PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtpY29uXT1cIidwaSBwaS1jbG9jaydcIlxuICAgICAgICAgICAgICBbdGltZU9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiaGg6bW1cIlxuICAgICAgICAgICAgICBbaG91ckZvcm1hdF09XCInMTInXCJcbiAgICAgICAgICAgICAgaW5wdXRJZD1cInRpbWVvbmx5XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkoY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydzY2hlZHVsZSddKVwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3AtY2FsZW5kYXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snc2NoZWR1bGUnXS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snc2NoZWR1bGUnXS50b3VjaGVkXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1biBob3JhcmlvIGRlc2VhZG88L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdy05cmVtIGgtNHJlbSBtLTJcIj5cbiAgICAgICAgICAgIDxpcHQtaW5wdXRcbiAgICAgICAgICAgICAgW2lucHV0VHlwZV09XCInZGF0ZSdcIlxuICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ1Bvc2libGUgSW5pY2lvJ1wiXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1sndG9fc3RhcnQnXVwiXG4gICAgICAgICAgICAgIChkYXRlU2VsZWN0ZWQpPVwidmFsaWRhdGVEYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1sndG9fc3RhcnQnXS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1sndG9fc3RhcnQnXS50b3VjaGVkXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5MYSBmZWNoYSBzZWxlY2Npb25hZGEgZGViZSBzZXIgbWF5b3IgcXVlIGxhIGZlY2hhIGFjdHVhbC48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1vZGFsaXR5IGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1jb250ZW50LWNlbnRlciB0ZXh0LWNlbnRlciBtLTIgYWxpZ24taXRlbXMtZW5kXCI+XG4gICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwic3RhdGVPcHRpb25zXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9kYWxpdHlcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cImNvZGVcIj48L3Atc2VsZWN0QnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbm9uZSBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIG0tMlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIFJpcHBsZVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBpY29uPVwicGkgcGktc2VhcmNoXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNvZFNlbGZGb3JtU3RlcFR3by52YWxpZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQXZhbGFpYmxlQ291cnNlKClcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kUHJldmlvdXMgPT0gbnVsbFwiPlxuICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIiBbYWN0aXZlSW5kZXhdPVwiWzBdXCI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIGhlYWRlcj1cIkpvcm5hZGFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzY2hlZHVsZXM7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm91cDJcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRheVdcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2NoZWR1bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiZGF5Vy5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveEljb249XCJwaSBwaS1jaGVjay1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RTY2hlZHVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRTY2hlZHVsZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIGhlYWRlcj1cIk1vZGFsaWRhZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lckRheVwiPlxuICAgICAgICAgICAgICA8IS0tIDxoMz5Ib3JhcmlvPC9oMz4gLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXlXIG9mIHN0YXRlT3B0aW9uc01vZGFsaXR5OyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICA8cC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXlXXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE1vZGFsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiZGF5Vy5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveEljb249XCJwaSBwaS1jaGVjay1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RNb2RhbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJkYXlXLmtleVwiPnt7IGRheVcubmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydE1vZGFsaXR5XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cbiAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgIT0gbnVsbFwiIGhlYWRlcj1cInBsYWNlbWVudCB0ZXN0XCI+XG4gICAgICAgICAgICA8c3Bhbj5UaWVuZXMgdW4gUGxhY2VtZW50IFRlc3QgZGlzcG9uaWJsZS4gUHVlZGVzIGNvbWVuemFyIGNvbiBlbCBuaXZlbCB7eyBzY29yZVBsYWNlbWVudFRlc3Q/LmxldmVsX2luZ2xpc2hfbmV4dC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lckRheVwiPlxuICAgICAgICAgICAgICA8aDM+wr9EZXNlYXMgYXBsaWNhciBlbCBQbGFjZW1lbnQgVGVzdD88L2gzPlxuICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXlXIG9mIE9wdGlvblBsYWNlbWVudFRlc3Q7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJncm91cDJcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRheVdcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTNcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgT3B0aW9uUGxhY2VtZW50VGVzdDsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJjYXRlZ29yeS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdE9wY2lvbnNQbGFjZW1lbnRUZXN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXRlZ29yeS5rZXlcIiBjbGFzcz1cIm1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjYXRlZ29yeS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgIDwvcC1hY2NvcmRpb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LW5vbmUgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBtLTJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tb3V0bGluZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdGVkU2NoZWR1bGVzLmxlbmd0aCA9PT0gMCB8fCBzZWxlY3RlZE1vZGFsaXR5Lmxlbmd0aCA9PT0gMCB8fCBzY29yZVBsYWNlbWVudFRlc3QgIT0gbnVsbCAmJiBzZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QubGVuZ3RoID09PSAwIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQXZhbGFpYmxlQ291cnNlKClcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNvZFByZXZpb3VzLmNvZF9pc19Qcm9ncmVzcyA9PSBmYWxzZVwiPlxuICAgICAgPC9kaXY+IC0tPlxuICAgIDwhLS0gPC9mb3JtPiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+IC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgID48L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdj5cbiAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsdWUgfCBqc29uIH19PC9wcmU+XG4gIDxkaXY+XG4gICAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfCBqc29uIH19PC9wcmU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFtRCxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBYSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLG1CQUFtQjtJQWlDbEUsWUFDVSxFQUFlLEVBQ2YsS0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsV0FBd0I7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFMQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbkN4QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQU1qRCxhQUFRLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwRCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQVUsNkNBQTZDLENBQUM7UUFDbkUseUJBQW9CLEdBQVU7WUFDNUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsSUFBSSxFQUFFLFlBQVksRUFBQztZQUMxQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDO1NBQ3ZDLENBQUM7UUFDRixjQUFTLEdBQWtCO1lBQ3pCLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1NBQ3BDLENBQUM7UUFDRix3QkFBbUIsR0FBUTtZQUN6QixFQUFDLElBQUksRUFBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRyxJQUFJLEVBQUUsSUFBSSxFQUFDO1lBQ2hDLEVBQUMsSUFBSSxFQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxJQUFJLEVBQUM7U0FDakMsQ0FBQztRQUNGLHNCQUFpQixHQUFrQixFQUFFLENBQUM7UUFDdEMsb0JBQWUsR0FBYyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQWUsRUFBRSxDQUFBO1FBQ2pDLGdDQUEyQixHQUFlLEVBQUUsQ0FBQTtRQUM1QywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIseUJBQW9CLEdBQUUsS0FBSyxDQUFDO1FBQzVCLDhCQUF5QixHQUFFLEtBQUssQ0FBQztRQVMvQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUM5QixDQUFDO0lBQ0QsV0FBVztRQUNULG1CQUFtQjtRQUNuQixnQ0FBZ0M7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFFTixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdEMseUNBQXlDO1lBQ3pDLHlDQUF5QztZQUN6Qyx1Q0FBdUM7WUFDdkMsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLFdBQVcsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuRCxhQUFhLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0SCxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FFOUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHFCQUFxQjtRQUNuQiw0RUFBNEU7UUFDNUUsNkVBQTZFO1FBRTdFLHFEQUFxRDtRQUNyRCxvRkFBb0Y7UUFDcEYsV0FBVztRQUNYLHVFQUF1RTtRQUN2RSxJQUFJO1FBRUosd0RBQXdEO1FBQ3hELHFGQUFxRjtRQUNyRixXQUFXO1FBQ1gsaUVBQWlFO1FBQ2pFLElBQUk7SUFDTixDQUFDO0lBQ0QsSUFBSTtRQUNGLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUTtRQUNOLDhDQUE4QztRQUM5QywrQ0FBK0M7UUFFL0MscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxpQkFBaUIsR0FBMEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCO1FBRW5CLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUN6RCxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUE7UUFDN0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO1FBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5QixNQUFNLE9BQU8sR0FBUTtZQUNuQixTQUFTLEVBQUUsUUFBUTtZQUNuQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0Isa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxHQUFHLEVBQUUsR0FBRztZQUNSLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDakMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtZQUN2RCw0REFBNEQ7WUFDNUQsa0VBQWtFO1lBQ2xFLDJEQUEyRDtTQUM1RCxDQUFBO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLDJEQUEyRDtJQUMzRCwwQ0FBMEM7SUFDMUMsMkJBQTJCO0lBQzNCLG9CQUFvQjtJQUNwQixtQ0FBbUM7SUFDbkMsMEJBQTBCO0lBQzFCLGlFQUFpRTtJQUNqRSxrQkFBa0I7SUFDbEIsNkJBQTZCO0lBQzdCLHVCQUF1QjtJQUN2Qiw0RUFBNEU7SUFDNUUsa0NBQWtDO0lBQ2xDLG9CQUFvQjtJQUNwQixVQUFVO0lBQ1YsTUFBTTtJQUNOLElBQUk7SUFDSixtQ0FBbUM7SUFDbkMsZ0ZBQWdGO0lBQ2hGLCtFQUErRTtJQUMvRSxJQUFJO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsR0FBa0I7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztTQUNuQzthQUFJO1lBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQTtTQUNuQztRQUVELHVGQUF1RjtRQUV2RixxQ0FBcUM7UUFDckMsZ0JBQWdCO1FBQ2hCLDJEQUEyRDtRQUMzRCwwRkFBMEY7UUFDMUYsb0JBQW9CO1FBQ3BCLFFBQVE7UUFDUixlQUFlO1FBQ2YsaUNBQWlDO1FBQ2pDLElBQUk7UUFFSiw2Q0FBNkM7UUFDN0MsZ0JBQWdCO1FBQ2hCLDJEQUEyRDtRQUMzRCxZQUFZO1FBQ1osbUhBQW1IO1FBQ25ILG9CQUFvQjtRQUNwQixRQUFRO1FBQ1IsZUFBZTtRQUNmLGlDQUFpQztRQUNqQyxJQUFJO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFrQjtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFBO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO2FBQUk7WUFDSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFBO1NBQ2xDO0lBQ0gsQ0FBQztJQUNELDBCQUEwQixDQUFDLEdBQWtCO1FBQzNDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUE7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7U0FDdkM7YUFBSTtZQUNILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUE7U0FDdkM7SUFDSCxDQUFDOzt3SEF0TlUsMkJBQTJCOzRHQUEzQiwyQkFBMkIscU9DYnhDLHdsU0F1TUE7MkZEMUxhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw0QkFBNEI7eUxBTTVCLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUUsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29kU2VsZk1hbmFnZWRTdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzVHdvIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1zdGVwcyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBJd2Vla0RheXNScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2FjYWRlbWljL2FjYWRlbWljLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kU2VsZkZvcm1TdGVwVHdvQ29tcG9uZW50IGV4dGVuZHMgQ29kU2VsZk1hbmFnZWRTdGVwcyBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KCkgc2NvcmVQbGFjZW1lbnRUZXN0Pzphbnk7XG4gIEBJbnB1dCgpIGNvZFByZXZpb3VzPzphbnk7XG5cbiAgY29kU2VsZkZvcm1TdGVwVHdvITogRm9ybUdyb3VwO1xuICBjb250cm9scyA9IG5ldyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzKCkuY29udHJvbHNbMV07XG4gIHN0YXJ0RGF0ZTEhOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWVzc2FnZUluZm86c3RyaW5nID0gJ0J1c2NhIHVuIHBsYW4gZGVhY3VlcmRvIGEgdHUgZGlzcG9uaWJpbGlkYWQnO1xuICBzdGF0ZU9wdGlvbnNNb2RhbGl0eTogYW55W10gPSBbXG4gICAgeyBjb2RlOiAxICxrZXk6ICdwcicsICBuYW1lOiAnUHJlc2VuY2lhbCd9LFxuICAgIHsgY29kZTogMiwga2V5OiAndmknLCBuYW1lOiAnVmlydHVhbCd9LFxuICBdO1xuICBzY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXG4gICAge2NvZGU6MSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZToyLCBuYW1lOiAnVGFyZGUnLCBrZXk6ICd0YScgfSxcbiAgICB7Y29kZTozLCBuYW1lOiAnTm9jaGUnLCBrZXk6ICdubycgfSxcbiAgXTtcbiAgT3B0aW9uUGxhY2VtZW50VGVzdDogYW55W109W1xuICAgIHtjb2RlOjEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOjIsIGtleTogJ25pJywgIG5hbWU6ICdObyd9LFxuICBdO1xuICBzZWxlY3RlZFNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtdO1xuICBkaXNhYmxld2Vla2RheXM6IGJvb2xlYW5bXSA9IFtdO1xuICBzZWxlY3RlZE1vZGFsaXR5Okl3ZWVrRGF5c1JxW109W11cbiAgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Okl3ZWVrRGF5c1JxW109W11cbiAgbWVzc2FnZUFsZXJ0U2NoZWR1bGVzID0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydE1vZGFsaXR5PSBmYWxzZTtcbiAgbWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdD0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMudmFsdWVzSW5pdGlhbFNjaGVkdWxlKClcbiAgfVxuICBuZ09uQ2hhbmdlcygpe1xuICAgIC8vIHRoaXMuaW5pdEZvcm0oKTtcbiAgICAvLyB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG5cbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3byA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgLy8gc2NoZWR1bGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIC8vIHRvX3N0YXJ0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAvLyBtb2RhbGl0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGFjYWRlbWljX3BsYW46IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV90eXBlOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcbiAgICAgIGVuZ2xpc2hfbGV2ZWw6IFt7dmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZX0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXG4gICAgICBhdmFpbGlibGVfY291cnNlczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY291cnNlX21vZGFsaXR5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxdLFxuXG4gICAgfSk7XG4gIH1cbiAgdmFsdWVzSW5pdGlhbFNjaGVkdWxlKCkge1xuICAgIC8vIGNvbnN0IHNjaGVkdWxlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihzY2hlZHVsZSknKTtcbiAgICAvLyBjb25zdCBjb3Vyc2VNb2RhbGl0eSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAyKG1vZGFsaXR5KScpO1xuXG4gICAgLy8gaWYgKHNjaGVkdWxlVmFsdWUgJiYgc2NoZWR1bGVWYWx1ZS50cmltKCkgIT0gJycpIHtcbiAgICAvLyAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydzY2hlZHVsZSddLnNldFZhbHVlKG5ldyBEYXRlKHNjaGVkdWxlVmFsdWUpKTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3NjaGVkdWxlJ10uc2V0VmFsdWUobmV3IERhdGUoKSk7XG4gICAgLy8gfVxuXG4gICAgLy8gaWYgKGNvdXJzZU1vZGFsaXR5ICYmIGNvdXJzZU1vZGFsaXR5LnRyaW0oKSAhPT0gJycpIHtcbiAgICAvLyAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKHBhcnNlSW50KGNvdXJzZU1vZGFsaXR5KSk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAgIC8vIH1cbiAgfVxuICBiYWNrKCkge1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gYW50ZXJpb3JcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDApO1xuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIC8vIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAvLyBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAzXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgyKTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlc1R3byA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMiwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcygyLCBjb250cm9sLm5hbWUsIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpe1xuXG4gICAgY29uc3QgYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NPRCBTRUxGIC0gc3RlcDEoYWdlKScpXG4gICAgY29uc3QgZ3JhZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMShncmFkZSknKVxuICAgIGNvbnN0IGFncmVlbWVudCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAxKGFncmVlbWVudF9ieV9jYXRlZ29yeSknKVxuICAgIGNvbnN0IHVzZXJDb2RlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyQ29kZSgpO1xuXG4gICAgY29uc29sZS5sb2codGhpcy5zY29yZVBsYWNlbWVudFRlc3QpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY29kUHJldmlvdXMpO1xuXG4gICAgY29uc3QgcmVxdWVzdDogYW55ID0ge1xuICAgICAgY29kZV91c2VyOiB1c2VyQ29kZSxcbiAgICAgIGNvZFByZXZpb3VzOiB0aGlzLmNvZFByZXZpb3VzLFxuICAgICAgc2NvcmVQbGFjZW1lbnRUZXN0OiB0aGlzLnNjb3JlUGxhY2VtZW50VGVzdCxcbiAgICAgIGFnZTogYWdlLFxuICAgICAgZ3JhZGU6IGdyYWRlLFxuICAgICAgYWdyZWVtZW50OiBhZ3JlZW1lbnQsXG4gICAgICBtb2RhbGl0eTogdGhpcy5zZWxlY3RlZE1vZGFsaXR5LFxuICAgICAgc2NoZWR1bGVzOiB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzLFxuICAgICAgZGVjaXRpb25QbGFjZW1lbnRUZXN0OiB0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdFxuICAgICAgLy8gc2NoZWR1bGU6IHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmdldCgnc2NoZWR1bGUnKT8udmFsdWUsXG4gICAgICAvLyBwb3NzaWJsZV9zdGFydDogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uZ2V0KCd0b19zdGFydCcpPy52YWx1ZSxcbiAgICAgIC8vIG1vZGFsaXR5OiB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5nZXQoJ21vZGFsaXR5Jyk/LnZhbHVlXG4gICAgfVxuICAgIGNvbnNvbGUubG9nKHJlcXVlc3QpO1xuICB9XG5cbiAgLy8gdmFsaWRhdGVEYXRlKGRhdGVSZWNpYjogc3RyaW5nKSB7XG4gIC8vICAgY29uc3QgZGF0ZVJlY2liVHJlYW5mID0gZGF0ZVJlY2liICsgJ1QwMDowMDowMC0wNTowMCc7XG4gIC8vICAgY29uc3QgZjEgPSBuZXcgRGF0ZShkYXRlUmVjaWJUcmVhbmYpO1xuICAvLyAgIGNvbnN0IGYyID0gbmV3IERhdGUoKTtcbiAgLy8gICBpZiAoZjEgPj0gZjIpIHtcbiAgLy8gICAgIHRoaXMuc3RhcnREYXRlMSA9IGRhdGVSZWNpYjtcbiAgLy8gICB9IGVsc2UgaWYgKGYxIDwgZjIpIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWyd0b19zdGFydCddLnNldFZhbHVlKFwiXCIpO1xuICAvLyAgICAgU3dhbC5maXJlKHtcbiAgLy8gICAgICAgcG9zaXRpb246ICd0b3AtZW5kJyxcbiAgLy8gICAgICAgaWNvbjogJ2Vycm9yJyxcbiAgLy8gICAgICAgdGl0bGU6ICdMYSBmZWNoYSBzZWxlY2Npb25hZGEgZGViZSBzZXIgbWF5b3IgcXVlIGxhIGZlY2hhIGFjdHVhbC4nLFxuICAvLyAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gIC8vICAgICAgIHRpbWVyOiA1MDAwXG4gIC8vICAgICB9KTtcbiAgLy8gICB9XG4gIC8vIH1cbiAgLy8gb25EYXRlQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgLy8gICAgIC8vIENvbnZpZXJ0ZSBsYSBmZWNoYSBhIHVuYSBjYWRlbmEgSVNPIDg2MDEgeSBndcOhcmRhbGEgZW4gZWwgbG9jYWxTdG9yYWdlXG4gIC8vICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihzY2hlZHVsZSknLCBldmVudC50b0lTT1N0cmluZygpKTtcbiAgLy8gfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjaGVkdWxlcyhldmU6IEl3ZWVrRGF5c1JxW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFNjaGVkdWxlcyk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlXG4gICAgfVxuXG4gICAgLy8gY29uc3QgZGF5c1RoZW9yeVNlbGVjdCA9IGV2ZS5maWx0ZXIoZGF5ID0+IHRoaXMuc2VsZWN0ZWRXZWVrZGF5c0NsdWIuaW5jbHVkZXMoZGF5KSk7XG5cbiAgICAvLyBpZiAoZGF5c1RoZW9yeVNlbGVjdC5sZW5ndGggPiAwKSB7XG4gICAgLy8gICBTd2FsLmZpcmUoe1xuICAgIC8vICAgICB0aXRsZTogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPk9wc3MhPC9wPicsXG4gICAgLy8gICAgIGh0bWw6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgY2x1YiBjbGFzcyB3aWxsIGJlIHNlZW4gdGhpcyBkYXkuPC9wPicsXG4gICAgLy8gICAgIGljb246ICdlcnJvcidcbiAgICAvLyAgIH0pO1xuICAgIC8vICAgZXZlLnBvcCgpO1xuICAgIC8vICAgdGhpcy5zZWxlY3RlZFdlZWtkYXlzID0gZXZlO1xuICAgIC8vIH1cblxuICAgIC8vIGlmIChldmUubGVuZ3RoID4gdGhpcy5jbGFzc2VzVGhlb3J5V2Vlaykge1xuICAgIC8vICAgU3dhbC5maXJlKHtcbiAgICAvLyAgICAgdGl0bGU6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5PcHNzITwvcD4nLFxuICAgIC8vICAgICBodG1sOlxuICAgIC8vICAgICAgICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgbnVtYmVyIG9mIGRheXMgaXMgZ3JlYXRlciB0aGFuIHRoZSBlc3RhYmxpc2hlZCBudW1iZXIgb2YgZGF5cy48L3A+JyxcbiAgICAvLyAgICAgaWNvbjogJ2Vycm9yJ1xuICAgIC8vICAgfSk7XG4gICAgLy8gICBldmUucG9wKCk7XG4gICAgLy8gICB0aGlzLnNlbGVjdGVkV2Vla2RheXMgPSBldmU7XG4gICAgLy8gfVxuICB9XG5cbiAgc2VsZWN0TW9kYWxpdHkoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxpdHkgPSBldmVcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTW9kYWxpdHkpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kYWxpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0TW9kYWxpdHkgPSBmYWxzZVxuICAgIH1cbiAgfVxuICBzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdChldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0ID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgPGgyPlBsYW5lczwvaDI+XG4gICAgICA8cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiBrZXk9XCJjb25maXJtXCIgKG9uQ2xvc2UpPVwib25SZWplY3QoKVwiIFtiYXNlWkluZGV4XT1cIjEwXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvcmVhZGluZy5wbmdcIiBzdHlsZT1cIndpZHRoOiA2NXB4O1wiIHNoYXBlPVwiY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC05MDBcIj5KYWNvYjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1sZyBteS0zIHRleHQtOTAwXCI+e3sgbWVzc2FnZUluZm8gfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cblxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0b1wiIChjbGljayk9XCJzaG93Q29uZmlybSgpXCI+PC9pPlxuICAgIDwhLS0gPGZvcm0gW2Zvcm1Hcm91cF09XCJjb2RTZWxmRm9ybVN0ZXBUd29cIj4gLS0+XG4gICAgICA8IS0tIDxkaXYgKm5nSWY9XCJjb2RQcmV2aW91cyA9PSBudWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtZXZlbmx5IGNvbHVtbi1nYXAtNCByb3ctZ2FwLTZcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdy05cmVtIGgtNHJlbSBtLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG10LTNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+SG9yYXJpbyBkZXNlYWRvPzwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICBbaWNvbl09XCIncGkgcGktY2xvY2snXCJcbiAgICAgICAgICAgICAgW3RpbWVPbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImhoOm1tXCJcbiAgICAgICAgICAgICAgW2hvdXJGb3JtYXRdPVwiJzEyJ1wiXG4gICAgICAgICAgICAgIGlucHV0SWQ9XCJ0aW1lb25seVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCIkYW55KGNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snc2NoZWR1bGUnXSlcIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9wLWNhbGVuZGFyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3NjaGVkdWxlJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3NjaGVkdWxlJ10udG91Y2hlZFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gaG9yYXJpbyBkZXNlYWRvPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctOXJlbSBoLTRyZW0gbS0yXCI+XG4gICAgICAgICAgICA8aXB0LWlucHV0XG4gICAgICAgICAgICAgIFtpbnB1dFR5cGVdPVwiJ2RhdGUnXCJcbiAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidQb3NpYmxlIEluaWNpbydcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3RvX3N0YXJ0J11cIlxuICAgICAgICAgICAgICAoZGF0ZVNlbGVjdGVkKT1cInZhbGlkYXRlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvaXB0LWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3RvX3N0YXJ0J10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3RvX3N0YXJ0J10udG91Y2hlZFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+TGEgZmVjaGEgc2VsZWNjaW9uYWRhIGRlYmUgc2VyIG1heW9yIHF1ZSBsYSBmZWNoYSBhY3R1YWwuPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tb2RhbGl0eSBmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgbS0yIGFsaWduLWl0ZW1zLWVuZFwiPlxuICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInN0YXRlT3B0aW9uc1wiIGZvcm1Db250cm9sTmFtZT1cIm1vZGFsaXR5XCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJjb2RlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LW5vbmUgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZCBtLTJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tb3V0bGluZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFByZXZpb3VzID09IG51bGxcIj5cbiAgICAgICAgPHAtYWNjb3JkaW9uIFttdWx0aXBsZV09XCJ0cnVlXCIgW2FjdGl2ZUluZGV4XT1cIlswXVwiPlxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJKb3JuYWRhXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgIDwhLS0gPGgzPkhvcmFyaW88L2gzPiAtLT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrQm94IGZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG0tM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc2NoZWR1bGVzOyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICA8cC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXlXXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNjaGVkdWxlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0U2NoZWR1bGVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWVzc2FnZUFsZXJ0U2NoZWR1bGVzXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJNb2RhbGlkYWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzdGF0ZU9wdGlvbnNNb2RhbGl0eTsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb2RhbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRNb2RhbGl0eVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW5hIG9wY2lvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0lmPVwic2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGxcIiBoZWFkZXI9XCJwbGFjZW1lbnQgdGVzdFwiPlxuICAgICAgICAgICAgPHNwYW4+VGllbmVzIHVuIFBsYWNlbWVudCBUZXN0IGRpc3BvbmlibGUuIFB1ZWRlcyBjb21lbnphciBjb24gZWwgbml2ZWw8L3NwYW4+PGgzPnt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lckRheSBtdC0zXCI+XG4gICAgICAgICAgICAgIDxoMz7Cv0Rlc2VhcyBhcGxpY2FyIGVsIFBsYWNlbWVudCBUZXN0PzwvaDM+XG4gICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoZWNrQm94IGZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG0tM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2YgT3B0aW9uUGxhY2VtZW50VGVzdDsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiZGF5Vy5rZXlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveEljb249XCJwaSBwaS1jaGVjay1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJkYXlXLmtleVwiPnt7IGRheVcubmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3RcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBPcHRpb25QbGFjZW1lbnRUZXN0OyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNhdGVnb3J5LmtleVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG5cbiAgICAgICAgPC9wLWFjY29yZGlvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbm9uZSBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kIG0tMlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIFJpcHBsZVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBpY29uPVwicGkgcGktc2VhcmNoXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwIHx8IHNlbGVjdGVkTW9kYWxpdHkubGVuZ3RoID09PSAwIHx8IHNjb3JlUGxhY2VtZW50VGVzdCAhPSBudWxsICYmIHNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2hBdmFsYWlibGVDb3Vyc2UoKVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiY29kUHJldmlvdXMuY29kX2lzX1Byb2dyZXNzID09IGZhbHNlXCI+XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgPCEtLSA8L2Zvcm0+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj4gLS0+XG4gICAgICA8YnV0dG9uXG4gICAgICBwQnV0dG9uXG4gICAgICBpY29uPVwicGkgcGktYXJyb3ctbGVmdFwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgPjwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICBwQnV0dG9uXG4gICAgICBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIlxuICAgICAgKGNsaWNrKT1cInNlbmRGb3JtKClcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2PlxuICA8cHJlPnt7IGNvZFNlbGZGb3JtU3RlcFR3by52YWx1ZSB8IGpzb24gfX08L3ByZT5cbiAgPGRpdj5cbiAgICA8cHJlPnt7IGNvZFNlbGZGb3JtU3RlcFR3by52YWxpZCB8IGpzb24gfX08L3ByZT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNhZGVtaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvbW9kZWxzL2FjYWRlbWljL2FjYWRlbWljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1lc3NhZ2VScSB9IGZyb20gXCIuLi9idWRnZXQvYnVkZ2V0Lm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q291cnNlQnlUeXBlUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBjb3Vyc2VfdHlwZTogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBHZXRTdHVkZW50QnlDb3Vyc2Uge1xuICB0b2tlbjogc3RyaW5nO1xuICBjb3Vyc2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRTdHVkZW50QnlUZWFjaGVyUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICB0ZWFjaGVyX2NvZGU6IG51bWJlcjtcbiAgcGFyYW06IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q2VydGlmaWNhdGV7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGlkY2FyZDogbnVtYmVyO1xuICBjb3Vyc2U6bnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldExhc3RTdHVkZW50Q29kUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBjb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QWxsU3R1ZGVudEJ5VGVhY2hlclJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgdGVhY2hlcl9jb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhc3NSb29tUlFJIHtcbiAgdG9rZW46IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjb3Vyc2VfbW9kYWxpdHk6IG51bWJlcjtcbiAgY2FwYWNpdHk6IG51bWJlcjtcbiAgaWRfY2FsZW5kYXI6IHN0cmluZztcbiAgYWRkcmVzczogc3RyaW5nO1xuICB1cGRhdGVkX2F0Pzogc3RyaW5nO1xuICBjcmVhdGVkX2F0Pzogc3RyaW5nO1xuICBjb2RlPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBDbGFzc1Jvb21ScSB7XG4gIGlwX2FwcGxpY2FudDogc3RyaW5nXG4gIHN0YXR1czogbnVtYmVyXG4gIG1lc3NhZ2U6IElNZXNzYWdlUnFcbiAgZGF0YTogc3RyaW5nIHwgRGF0YVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEge1xuICBuYW1lOiBzdHJpbmdcbiAgY291cnNlX21vZGFsaXR5OiBudW1iZXJcbiAgY2FwYWNpdHk6IG51bWJlclxuICBpZF9jYWxlbmRhcjogc3RyaW5nXG4gIGFkcmVzczogc3RyaW5nXG4gIHVwZGF0ZWRfYXQ6IHN0cmluZ1xuICBjcmVhdGVkX2F0OiBzdHJpbmdcbiAgY29kZTogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpbkNsYXNUeXBlUnEge1xuICBjb2RlOiAgICBudW1iZXI7XG4gIG5hbWU6ICAgIHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElNYW5hZ2VDcmVhdGVkU2NoZXJkdWxlRXZlbnRzUnEge1xuICB0b2tlbjogICAgICAgICBzdHJpbmc7XG4gIHdlZWtfZGF5czogICAgIHN0cmluZ1tdO1xuICBjb3Vyc2VfZXZlbnRzOiBJQ291cnNlRXZlbnRScVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VFdmVudFJxIHtcbiAgY29kZUNsYXNzUm9vbTogICAgbnVtYmVyO1xuICBjb2RlVGVhY2hlcjogICAgICBudW1iZXI7XG4gIGNvbG9yRXZlbnQ6ICAgICAgIG51bWJlcjtcbiAgY291cnNlQ29kZTogICAgICAgbnVtYmVyO1xuICBkYXRlQ3JlYXRpb246ICAgICBEYXRlIHwgbnVsbDtcbiAgZGVzY3JpcHRpb25FdmVudDogc3RyaW5nO1xuICBlbmQ6ICAgICAgICAgICAgICBEYXRlO1xuICBsb2NhdGlvbkV2ZW50OiAgICBzdHJpbmc7XG4gIHN0YXJ0OiAgICAgICAgICAgIERhdGU7XG4gIHRpdGxlOiAgICAgICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFuYWdlQ3JlYXRlZFNjaGVyZHVsZUV2ZW50c1JzIHtcbiAgZGF0YUNvdXJzZUV2ZW50OiAgICBJRGF0YUNvdXJzZUV2ZW50UnNbXTtcbiAgZGF0YUNvdXJzZVNjaGVkdWxlOiBJRGF0YUNvdXJzZVNjaGVkdWxlUnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb3Vyc2VFdmVudFJzIHtcbiAgY29kZTogICAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX2NvZGU6ICAgICAgIG51bWJlcjtcbiAgZGF0ZV9ldmVudDogICAgICAgIERhdGU7XG4gIG5hbWVfZXZlbnQ6ICAgICAgICBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uX2V2ZW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb3Vyc2VTY2hlZHVsZVJzIHtcbiAgY29kZTogICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZV9zY2hlZHVsZTogbnVtYmVyO1xuICB0ZWFjaGVyOiAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3R5cGU6ICAgICBudW1iZXI7XG4gIHRvX3N0YXJ0OiAgICAgICAgRGF0ZTtcbiAgc3RhcnRfZGF0ZTogICAgICBEYXRlO1xuICBmaW5pc2hfZGF0ZTogICAgIERhdGU7XG4gIGNhcGFjaXR5OiAgICAgICAgbnVtYmVyO1xuICBtb3JlX2RheXM6ICAgICAgIG51bGw7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgbnVtYmVyO1xuICBhZ3JlZW1lbnQ6ICAgICAgIG51bWJlcjtcbiAgY291cnNlX21vZGFsaXR5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhcmFtc09idGFpbkNvdXJzZXNCeVR5cGVDb3Vyc2VJbkNyZWF0ZWRDb3Vyc2VzUnMge1xuICB0b2tlbjogICAgICAgICAgIHN0cmluZztcbiAgY291cnNlX3R5cGU6ICAgICBudW1iZXI7XG4gIGNvdXJzZV9tb2RhbGl0eTogbnVtYmVyO1xuICBlbmdsaXNoX2xldmVsOiAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJd2Vla0RheXNScSB7XG4gIG5hbWU6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIGNvZGU6bnVtYmVyO1xufVxuIl19
|
|
@@ -6654,17 +6654,17 @@ class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
6654
6654
|
this.visible = false;
|
|
6655
6655
|
this.messageInfo = 'Busca un plan deacuerdo a tu disponibilidad';
|
|
6656
6656
|
this.stateOptionsModality = [
|
|
6657
|
-
{ key: 'pr', name: 'Presencial' },
|
|
6658
|
-
{ key: 'vi', name: 'Virtual' },
|
|
6657
|
+
{ code: 1, key: 'pr', name: 'Presencial' },
|
|
6658
|
+
{ code: 2, key: 'vi', name: 'Virtual' },
|
|
6659
6659
|
];
|
|
6660
6660
|
this.schedules = [
|
|
6661
|
-
{ name: 'Mañana', key: 'ma' },
|
|
6662
|
-
{ name: 'Tarde', key: 'ta' },
|
|
6663
|
-
{ name: 'Noche', key: 'no' },
|
|
6661
|
+
{ code: 1, name: 'Mañana', key: 'ma' },
|
|
6662
|
+
{ code: 2, name: 'Tarde', key: 'ta' },
|
|
6663
|
+
{ code: 3, name: 'Noche', key: 'no' },
|
|
6664
6664
|
];
|
|
6665
6665
|
this.OptionPlacementTest = [
|
|
6666
|
-
{ key: 'si', name: 'Si' },
|
|
6667
|
-
{ key: 'ni', name: 'No' },
|
|
6666
|
+
{ code: 1, key: 'si', name: 'Si' },
|
|
6667
|
+
{ code: 2, key: 'ni', name: 'No' },
|
|
6668
6668
|
];
|
|
6669
6669
|
this.selectedSchedules = [];
|
|
6670
6670
|
this.disableweekdays = [];
|
|
@@ -6742,7 +6742,8 @@ class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
6742
6742
|
grade: grade,
|
|
6743
6743
|
agreement: agreement,
|
|
6744
6744
|
modality: this.selectedModality,
|
|
6745
|
-
schedules: this.selectedSchedules
|
|
6745
|
+
schedules: this.selectedSchedules,
|
|
6746
|
+
decitionPlacementTest: this.selectedOptionPlacementTest
|
|
6746
6747
|
// schedule: this.codSelfFormStepTwo.get('schedule')?.value,
|
|
6747
6748
|
// possible_start: this.codSelfFormStepTwo.get('to_start')?.value,
|
|
6748
6749
|
// modality: this.codSelfFormStepTwo.get('modality')?.value
|
|
@@ -6832,10 +6833,10 @@ class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
|
|
|
6832
6833
|
}
|
|
6833
6834
|
}
|
|
6834
6835
|
CodSelfFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, deps: [{ token: i1$1.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: i3$1.MessageService }, { token: BaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6835
|
-
CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel {{ scorePlacementTest?.level_inglish_next.name }}</span>\n <div class=\"containerDay\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i8$2.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i3$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7$2.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i7$2.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i8$3.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i9.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] });
|
|
6836
|
+
CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i8$2.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i3$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i7$2.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i7$2.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i8$3.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i9.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] });
|
|
6836
6837
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, decorators: [{
|
|
6837
6838
|
type: Component,
|
|
6838
|
-
args: [{ selector: 'app-cod-self-form-step-two', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel {{ scorePlacementTest?.level_inglish_next.name }}</span>\n <div class=\"containerDay\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"] }]
|
|
6839
|
+
args: [{ selector: 'app-cod-self-form-step-two', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\n <!-- <div *ngIf=\"codPrevious == null\">\n <div class=\"flex flex-wrap justify-content-evenly column-gap-4 row-gap-6\">\n <div class=\"flex-column align-items-center justify-content-center w-9rem h-4rem m-2\">\n <div class=\"flex mt-3\">\n <span>Horario deseado?</span>\n </div>\n <p-calendar\n [showIcon]=\"true\"\n [icon]=\"'pi pi-clock'\"\n [timeOnly]=\"true\"\n placeholder=\"hh:mm\"\n [hourFormat]=\"'12'\"\n inputId=\"timeonly\"\n [formControl]=\"$any(codSelfFormStepTwo.controls['schedule'])\"\n (ngModelChange)=\"onDateChange($event)\"\n ></p-calendar>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['schedule'].invalid && codSelfFormStepTwo.controls['schedule'].touched\">\n <span class=\"error-message\">Por favor ingresa un horario deseado</span>\n </div>\n <div class=\"flex align-items-center justify-content-center w-9rem h-4rem m-2\">\n <ipt-input\n [inputType]=\"'date'\"\n [placeHolder]=\"'Posible Inicio'\"\n [control]=\"codSelfFormStepTwo.controls['to_start']\"\n (dateSelected)=\"validateDate($event)\"\n ></ipt-input>\n </div>\n <div *ngIf=\"codSelfFormStepTwo.controls['to_start'].invalid && codSelfFormStepTwo.controls['to_start'].touched\">\n <span class=\"error-message\">La fecha seleccionada debe ser mayor que la fecha actual.</span>\n </div>\n\n <div class=\"container-modality flex justify-content-center align-content-center text-center m-2 align-items-end\">\n <p-selectButton [options]=\"stateOptions\" formControlName=\"modality\" optionLabel=\"name\" optionValue=\"code\"></p-selectButton>\n </div>\n </div>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"!codSelfFormStepTwo.valid\"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div> -->\n <div *ngIf=\"codPrevious == null\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"placement test\">\n <span>Tienes un Placement Test disponible. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas aplicar el Placement Test?</h3>\n <!-- <div class=\"checkBox flex flex-wrap justify-content-between m-3\">\n <div *ngFor=\"let dayW of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertPlacementTest\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div> -->\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n <!-- <div *ngIf=\"codPrevious.cod_is_Progress == false\">\n </div> -->\n <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}\n"] }]
|
|
6839
6840
|
}], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: i3$1.MessageService }, { type: BaseService }]; }, propDecorators: { completed: [{
|
|
6840
6841
|
type: Output
|
|
6841
6842
|
}], scorePlacementTest: [{
|