iptdevs-design-system 2.7.104 → 2.7.105
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/steps/cod-form-step-five/cod-form-step-five.component.mjs +28 -22
- package/fesm2015/iptdevs-design-system.mjs +27 -21
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +27 -21
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.d.ts +3 -3
- package/package.json +1 -1
|
@@ -24,22 +24,11 @@ export class CodFormStepFiveComponent extends CodFormSteps {
|
|
|
24
24
|
// Controls del formulario
|
|
25
25
|
this.controls = new CodFormControls().controls[4];
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
// this.initForm();
|
|
29
|
-
// this.getParameters();
|
|
30
|
-
// this.startLocalStorageWork();
|
|
31
|
-
// this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {
|
|
32
|
-
// this.termsCheckboxStatus = changes;
|
|
33
|
-
// if (!this.termsCheckboxStatus) this.errorMessage = 'Debe marcar la casilla de términos y condiciones.'
|
|
34
|
-
// })
|
|
35
|
-
// if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32) this.sendFormMsg = 'Editar COD'; // Roles Administrativos
|
|
36
|
-
// if (this.userRole === 40 || this.userRole === 41 || this.userRole === 42) this.sendFormMsg = 'Crear COD'; // Roles comerciales
|
|
37
|
-
// }
|
|
38
|
-
ngOnChanges(changes) {
|
|
27
|
+
ngOnInit() {
|
|
39
28
|
console.log(this.initialData);
|
|
40
29
|
this.initForm();
|
|
41
|
-
this.startLocalStorageWork();
|
|
42
30
|
this.getParameters();
|
|
31
|
+
this.startLocalStorageWork();
|
|
43
32
|
this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {
|
|
44
33
|
this.termsCheckboxStatus = changes;
|
|
45
34
|
if (!this.termsCheckboxStatus)
|
|
@@ -49,15 +38,32 @@ export class CodFormStepFiveComponent extends CodFormSteps {
|
|
|
49
38
|
this.sendFormMsg = 'Editar COD'; // Roles Administrativos
|
|
50
39
|
if (this.userRole === 40 || this.userRole === 41 || this.userRole === 42)
|
|
51
40
|
this.sendFormMsg = 'Crear COD'; // Roles comerciales
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
console.log('No hay data cargada para el Paso 5');
|
|
58
|
-
}
|
|
41
|
+
if (this.initialData != null) {
|
|
42
|
+
this.setDataFromPreviusCod();
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.log('No hay data cargada para el Paso 5');
|
|
59
46
|
}
|
|
60
47
|
}
|
|
48
|
+
// ngOnChanges(changes: SimpleChanges): void {
|
|
49
|
+
// console.log(this.initialData);
|
|
50
|
+
// this.initForm();
|
|
51
|
+
// this.startLocalStorageWork();
|
|
52
|
+
// this.getParameters();
|
|
53
|
+
// this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {
|
|
54
|
+
// this.termsCheckboxStatus = changes;
|
|
55
|
+
// if (!this.termsCheckboxStatus) this.errorMessage = 'Debe marcar la casilla de términos y condiciones.'
|
|
56
|
+
// })
|
|
57
|
+
// if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32) this.sendFormMsg = 'Editar COD'; // Roles Administrativos
|
|
58
|
+
// if (this.userRole === 40 || this.userRole === 41 || this.userRole === 42) this.sendFormMsg = 'Crear COD'; // Roles comerciales
|
|
59
|
+
// if (changes['initialData']) {
|
|
60
|
+
// if (this.initialData != null) {
|
|
61
|
+
// this.setDataFromPreviusCod();
|
|
62
|
+
// } else {
|
|
63
|
+
// console.log('No hay data cargada para el Paso 5');
|
|
64
|
+
// }
|
|
65
|
+
// }
|
|
66
|
+
// }
|
|
61
67
|
getParameters() {
|
|
62
68
|
this.parameterService.getMarketingReasons().subscribe((response) => {
|
|
63
69
|
this.marketingReasons = response.data;
|
|
@@ -162,7 +168,7 @@ export class CodFormStepFiveComponent extends CodFormSteps {
|
|
|
162
168
|
}
|
|
163
169
|
}
|
|
164
170
|
CodFormStepFiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFiveComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ParameterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
165
|
-
CodFormStepFiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: { userRole: "userRole", initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent", action: "action" }, usesInheritance: true,
|
|
171
|
+
CodFormStepFiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: { userRole: "userRole", initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent", action: "action" }, usesInheritance: true, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepFive\" class=\"grid\">\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['marketing_reasons']\"\n [initialValue]=\"codFormStepFive.controls['marketing_reasons'].value\"\n (eventSelect)=\"selectMarketingReasons($event)\"\n [data]=\"marketingReasons\"\n [defaultText]=\"'\u00BFC\u00F3mo se enter\u00F3 del programa?'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Discapacidad'\"\n [control]=\"codFormStepFive.controls['disability']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['study_reasons']\"\n [initialValue]=\"codFormStepFive.controls['study_reasons'].value\"\n (eventSelect)=\"selectStudyReasons($event)\"\n [data]=\"studyReasons\"\n [defaultText]=\"'Motivo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'R\u00E9gimen de salud'\"\n [control]=\"codFormStepFive.controls['health_regimen']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 mt-4\">\n <span class=\"p-float-label\">\n <textarea\n id=\"float-input\"\n rows=\"4\"\n cols=\"30\"\n pInputTextarea\n formControlName=\"observation\"\n ></textarea>\n <label for=\"float-input\">Observaciones</label>\n </span>\n <div class=\"flex flex-wrap justify-content-between gap-2\">\n <div *ngFor=\"let option of multiculturalities; index as i\" class=\"field-checkbox mt-4 flex align-items-center\">\n <mat-checkbox [formControlName]=\"'multiculturalism' + '_' + (i+1)\" class=\"example-margin\"></mat-checkbox>\n <label [for]=\"option.code\">{{ option.name }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 p-4 font-bold\">\n <p>\n * El estudiante o titular se comprometen a cancelar las cuotas establecidas en este contrato, los\n primeros 5 (cinco) d\u00EDas del mes. En caso de querer retirarse, deber\u00E1 informar por escrito 30\n (treinta) d\u00EDas antes y cancelar lo correspondiente hasta la fecha definida de retiro, para poder\n obtener su paz y salvo.\n </p>\n <br><br>\n <div class=\"flex gap-2\">\n <mat-checkbox formControlName=\"terms\" class=\"example-margin\"></mat-checkbox>\n <!-- <p-checkbox [formControl]=\"getCheckboxControl()\"></p-checkbox> -->\n <!-- <ipt-checkbox [control]=\"codFormStepFive.controls['terms']\" [checkboxOption]=\"termsCheckboxStatus\"></ipt-checkbox> -->\n <p>\n DECLARO HABER LE\u00CDDO Y ACEPTO LOS T\u00C9RMINOS Y CONDICIONES DE LAS POL\u00CDTICAS ESTABLECIDAS EN LA\n INSTITUCI\u00D3N.\n </p>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"(codFormStepFive.invalid && codFormStepFive.touched) || (!termsCheckboxStatus && codFormStepFive.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 type=\"submit\" class=\"ml-auto p-button-success p-button-sm\" (click)=\"sendForm()\" pButton [label]=\"sendFormMsg\" icon=\"pi pi-check\"></button>\n <button class=\"ml-auto p-button-danger p-button-sm\" (click)=\"cleanStorage()\" pButton label=\"Clean Storage\" icon=\"pi pi-check\"></button>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal"], outputs: ["dateSelected"] }, { kind: "component", type: i5.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i8.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }] });
|
|
166
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFiveComponent, decorators: [{
|
|
167
173
|
type: Component,
|
|
168
174
|
args: [{ selector: 'app-cod-form-step-five', template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepFive\" class=\"grid\">\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['marketing_reasons']\"\n [initialValue]=\"codFormStepFive.controls['marketing_reasons'].value\"\n (eventSelect)=\"selectMarketingReasons($event)\"\n [data]=\"marketingReasons\"\n [defaultText]=\"'\u00BFC\u00F3mo se enter\u00F3 del programa?'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Discapacidad'\"\n [control]=\"codFormStepFive.controls['disability']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['study_reasons']\"\n [initialValue]=\"codFormStepFive.controls['study_reasons'].value\"\n (eventSelect)=\"selectStudyReasons($event)\"\n [data]=\"studyReasons\"\n [defaultText]=\"'Motivo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'R\u00E9gimen de salud'\"\n [control]=\"codFormStepFive.controls['health_regimen']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 mt-4\">\n <span class=\"p-float-label\">\n <textarea\n id=\"float-input\"\n rows=\"4\"\n cols=\"30\"\n pInputTextarea\n formControlName=\"observation\"\n ></textarea>\n <label for=\"float-input\">Observaciones</label>\n </span>\n <div class=\"flex flex-wrap justify-content-between gap-2\">\n <div *ngFor=\"let option of multiculturalities; index as i\" class=\"field-checkbox mt-4 flex align-items-center\">\n <mat-checkbox [formControlName]=\"'multiculturalism' + '_' + (i+1)\" class=\"example-margin\"></mat-checkbox>\n <label [for]=\"option.code\">{{ option.name }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 p-4 font-bold\">\n <p>\n * El estudiante o titular se comprometen a cancelar las cuotas establecidas en este contrato, los\n primeros 5 (cinco) d\u00EDas del mes. En caso de querer retirarse, deber\u00E1 informar por escrito 30\n (treinta) d\u00EDas antes y cancelar lo correspondiente hasta la fecha definida de retiro, para poder\n obtener su paz y salvo.\n </p>\n <br><br>\n <div class=\"flex gap-2\">\n <mat-checkbox formControlName=\"terms\" class=\"example-margin\"></mat-checkbox>\n <!-- <p-checkbox [formControl]=\"getCheckboxControl()\"></p-checkbox> -->\n <!-- <ipt-checkbox [control]=\"codFormStepFive.controls['terms']\" [checkboxOption]=\"termsCheckboxStatus\"></ipt-checkbox> -->\n <p>\n DECLARO HABER LE\u00CDDO Y ACEPTO LOS T\u00C9RMINOS Y CONDICIONES DE LAS POL\u00CDTICAS ESTABLECIDAS EN LA\n INSTITUCI\u00D3N.\n </p>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"(codFormStepFive.invalid && codFormStepFive.touched) || (!termsCheckboxStatus && codFormStepFive.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 type=\"submit\" class=\"ml-auto p-button-success p-button-sm\" (click)=\"sendForm()\" pButton [label]=\"sendFormMsg\" icon=\"pi pi-check\"></button>\n <button class=\"ml-auto p-button-danger p-button-sm\" (click)=\"cleanStorage()\" pButton label=\"Clean Storage\" icon=\"pi pi-check\"></button>\n</div>\n\n" }]
|
|
@@ -175,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
175
181
|
}], action: [{
|
|
176
182
|
type: Output
|
|
177
183
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1maXZlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1maXZlL2NvZC1mb3JtLXN0ZXAtZml2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZml2ZS9jb2QtZm9ybS1zdGVwLWZpdmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBd0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEcsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7O0FBTzlFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0lBaUJ4RCxZQUNVLEVBQWUsRUFDZixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWhCbEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzdDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSzlDLGlCQUFZLEdBQVcsMkJBQTJCLENBQUM7UUFFbkQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBR3JDLDBCQUEwQjtRQUMxQixhQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFD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LElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUcsQ0FBQzs7cUhBektVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDJPQ1pyQyw0MkdBMEVBOzJGRDlEYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usd0JBQXdCO2lJQUt6QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IENvZEZvcm1TdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tc3RlcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC1maXZlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtZml2ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1mb3JtLXN0ZXAtZml2ZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybVN0ZXBGaXZlQ29tcG9uZW50IGV4dGVuZHMgQ29kRm9ybVN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdXNlclJvbGUhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGluaXRpYWxEYXRhPzogYW55O1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb2RGb3JtU3RlcEZpdmUhOiBGb3JtR3JvdXA7XG4gIG1hcmtldGluZ1JlYXNvbnM6IGFueTtcbiAgc3R1ZHlSZWFzb25zOiBhbnk7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hci4nO1xuICBzZW5kRm9ybU1zZyE6IHN0cmluZztcbiAgdGVybXNDaGVja2JveFN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBtdWx0aWN1bHR1cmFsaXRpZXM6IGFueTtcblxuICAvLyBDb250cm9scyBkZWwgZm9ybXVsYXJpb1xuICBjb250cm9scyA9IG5ldyBDb2RGb3JtQ29udHJvbHMoKS5jb250cm9sc1s0XTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHBhcmFtZXRlclNlcnZpY2U6IFBhcmFtZXRlclNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgLy8gICB0aGlzLmluaXRGb3JtKCk7XG4gIC8vICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG4gIC8vICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcblxuICAvLyAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWyd0ZXJtcyddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XG4gIC8vICAgICB0aGlzLnRlcm1zQ2hlY2tib3hTdGF0dXMgPSBjaGFuZ2VzO1xuICAvLyAgICAgaWYgKCF0aGlzLnRlcm1zQ2hlY2tib3hTdGF0dXMpIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0RlYmUgbWFyY2FyIGxhIGNhc2lsbGEgZGUgdMOpcm1pbm9zIHkgY29uZGljaW9uZXMuJ1xuICAvLyAgIH0pXG5cbiAgLy8gICBpZiAodGhpcy51c2VyUm9sZSA9PT0gMzAgfHwgdGhpcy51c2VyUm9sZSA9PT0gMzEgfHwgdGhpcy51c2VyUm9sZSA9PT0gMzIpIHRoaXMuc2VuZEZvcm1Nc2cgPSAnRWRpdGFyIENPRCc7IC8vIFJvbGVzIEFkbWluaXN0cmF0aXZvc1xuICAvLyAgIGlmICh0aGlzLnVzZXJSb2xlID09PSA0MCB8fCB0aGlzLnVzZXJSb2xlID09PSA0MSB8fCB0aGlzLnVzZXJSb2xlID09PSA0MikgdGhpcy5zZW5kRm9ybU1zZyA9ICdDcmVhciBDT0QnOyAvLyBSb2xlcyBjb21lcmNpYWxlc1xuICBcbiAgLy8gfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmluaXRpYWxEYXRhKTtcbiAgICBcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLmdldFBhcmFtZXRlcnMoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1sndGVybXMnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAgICAgdGhpcy50ZXJtc0NoZWNrYm94U3RhdHVzID0gY2hhbmdlcztcbiAgICAgIGlmICghdGhpcy50ZXJtc0NoZWNrYm94U3RhdHVzKSB0aGlzLmVycm9yTWVzc2FnZSA9ICdEZWJlIG1hcmNhciBsYSBjYXNpbGxhIGRlIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzLidcbiAgICB9KVxuICAgIGlmICh0aGlzLnVzZXJSb2xlID09PSAzMCB8fCB0aGlzLnVzZXJSb2xlID09PSAzMSB8fCB0aGlzLnVzZXJSb2xlID09PSAzMikgdGhpcy5zZW5kRm9ybU1zZyA9ICdFZGl0YXIgQ09EJzsgLy8gUm9sZXMgQWRtaW5pc3RyYXRpdm9zXG4gICAgaWYgKHRoaXMudXNlclJvbGUgPT09IDQwIHx8IHRoaXMudXNlclJvbGUgPT09IDQxIHx8IHRoaXMudXNlclJvbGUgPT09IDQyKSB0aGlzLnNlbmRGb3JtTXNnID0gJ0NyZWFyIENPRCc7IC8vIFJvbGVzIGNvbWVyY2lhbGVzXG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10pIHtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhRnJvbVByZXZpdXNDb2QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgY29uc29sZS5sb2coJ05vIGhheSBkYXRhIGNhcmdhZGEgcGFyYSBlbCBQYXNvIDUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRNYXJrZXRpbmdSZWFzb25zKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5tYXJrZXRpbmdSZWFzb25zID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0U3R1ZHlSZWFzb25zKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5zdHVkeVJlYXNvbnMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRNdWx0aWN1bHR1cmFsaXNtcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMubXVsdGljdWx0dXJhbGl0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBtYXJrZXRpbmdfcmVhc29uczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgb2JzZXJ2YXRpb246IFsnJ10sXG4gICAgICBzdHVkeV9yZWFzb25zOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB0ZXJtczogW2ZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgZGlzYWJpbGl0eTogWycnXSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogW2ZhbHNlLCBbXV0sXG4gICAgICBtdWx0aWN1bHR1cmFsaXNtXzI6IFtmYWxzZSwgW11dLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8zOiBbZmFsc2UsIFtdXSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogW2ZhbHNlLCBbXV0sXG4gICAgICBtdWx0aWN1bHR1cmFsaXNtXzU6IFtmYWxzZSwgW11dLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV82OiBbZmFsc2UsIFtdXSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNzogW2ZhbHNlLCBbXV0sXG4gICAgICBoZWFsdGhfcmVnaW1lbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4ge1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzQnKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xvcyBkYXRvcyBkZSBsYSBwZXJzb25hIHF1ZSByZWZpcmnDsyBhbCBlc3R1ZGlhbnRlIHNvbiByZXF1ZXJpZG9zIGVuIGVsIGNhbXBvIFwiT2JzZXJ2YWNpb25lc1wiLidcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICB0aXRsZTogJ0luZm9ybWFjacOzbicsXG4gICAgICAgICAgdGV4dDogJ0xsZW5lIGVuIGVsIGNhbXBvIGRlIG9ic2VydmFjaW9uZXMgbG9zIGRhdG9zIGRlIGxhIHBlcnNvbmEgcXVlIGxvIHJlZmlyacOzJyxcbiAgICAgICAgICBpY29uOiAnaW5mbydcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydvYnNlcnZhdGlvbiddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ29ic2VydmF0aW9uJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ29ic2VydmF0aW9uJ10uY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydvYnNlcnZhdGlvbiddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg1LCBjb250cm9sLm5hbWUpO1xuXG4gICAgICAvLyBTb2x1Y2nDs24gYWwgYnVnIGRlbCBjaGVja2JveFxuICAgICAgaWYgKGxvY2FsU3RvcmFnZVZhbHVlLmNvbnRyb2wgPT09ICd0ZXJtcycpIHtcbiAgICAgICAgbGV0IG5leHRWYWx1ZTogYm9vbGVhbiA9IGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWyd0ZXJtcyddLnNldFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIHRoaXMudGVybXNDaGVja2JveFN0YXR1cyA9IG5leHRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG5cbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcyg1LCBjb250cm9sLm5hbWUsIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29udHJvbHMuZmlsdGVyKGNvbnRyb2wgPT4gY29udHJvbC5kZXNjcmlwdGlvbiA9PT0gJ011bHRpY3VsdHVyYWxpc21vJykuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg1LCBjb250cm9sLm5hbWUpO1xuICAgICAgbGV0IG5leHRWYWx1ZTogYm9vbGVhbiA9IGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgfSlcbiAgfVxuXG4gIGdldENoZWNrYm94Q29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWyd0ZXJtcyddIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgc2VuZEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRml2ZS5pbnZhbGlkIHx8IHRoaXMudGVybXNDaGVja2JveFN0YXR1cyA9PT0gZmFsc2UpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnVzZXJSb2xlID09PSAzMCB8fCB0aGlzLnVzZXJSb2xlID09PSAzMSB8fCB0aGlzLnVzZXJSb2xlID09PSAzMikgdGhpcy5hY3Rpb24uZW1pdCgndXBkYXRlJyk7XG4gICAgaWYgKHRoaXMudXNlclJvbGUgPT09IDQwIHx8IHRoaXMudXNlclJvbGUgPT09IDQxIHx8IHRoaXMudXNlclJvbGUgPT09IDQyKSB0aGlzLmFjdGlvbi5lbWl0KCdjcmVhdGUnKTtcblxuICB9XG5cbiAgY2xlYW5TdG9yYWdlKCl7XG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIC8vIEV2ZW50b3MgZGVsIHNlbGVjdFxuICBzZWxlY3RNYXJrZXRpbmdSZWFzb25zKG1hcmtldGluZ1JlYXNvbnM6IGFueSkge1xuICAgIGlmIChtYXJrZXRpbmdSZWFzb25zICE9PSAnwr9Dw7NtbyBzZSBlbnRlcsOzIGRlbCBwcm9ncmFtYT8nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snbWFya2V0aW5nX3JlYXNvbnMnXS5zZXRWYWx1ZShtYXJrZXRpbmdSZWFzb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0U3R1ZHlSZWFzb25zKHN0dWR5UmVhc29uczogYW55KSB7XG4gICAgaWYgKHN0dWR5UmVhc29ucyAhPT0gJ01vdGl2bycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydzdHVkeV9yZWFzb25zJ10uc2V0VmFsdWUoc3R1ZHlSZWFzb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ3N0dWR5X3JlYXNvbnMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZXREYXRhRnJvbVByZXZpdXNDb2QoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZGl0aW9uYWxfaW5mb3JtYXRpb24ubWFya2V0aW5nX3JlYXNvbnMpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydzdHVkeV9yZWFzb25zJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZGl0aW9uYWxfaW5mb3JtYXRpb24uc3R1ZHlfcmVhc29ucyk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ2Rpc2FiaWxpdHknXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmFkaXRpb25hbF9pbmZvcm1hdGlvbi5kaXNhYmlsaXR5KTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snaGVhbHRoX3JlZ2ltZW4nXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmFkaXRpb25hbF9pbmZvcm1hdGlvbi5oZWFsdGhfcmVnaW1lbik7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ29ic2VydmF0aW9uJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZGl0aW9uYWxfaW5mb3JtYXRpb24ub2JzZXJ2YXRpb24pO1xuICB9XG5cblxufVxuIiwiPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJjb2RGb3JtU3RlcEZpdmVcIiBjbGFzcz1cImdyaWRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ11cIlxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10udmFsdWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdE1hcmtldGluZ1JlYXNvbnMoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJtYXJrZXRpbmdSZWFzb25zXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInwr9Dw7NtbyBzZSBlbnRlcsOzIGRlbCBwcm9ncmFtYT8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRGlzY2FwYWNpZGFkJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ2Rpc2FiaWxpdHknXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ3N0dWR5X3JlYXNvbnMnXVwiXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snc3R1ZHlfcmVhc29ucyddLnZhbHVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RTdHVkeVJlYXNvbnMoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJzdHVkeVJlYXNvbnNcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidNb3Rpdm8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInUsOpZ2ltZW4gZGUgc2FsdWQnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snaGVhbHRoX3JlZ2ltZW4nXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC00XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJwLWZsb2F0LWxhYmVsXCI+XG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgaWQ9XCJmbG9hdC1pbnB1dFwiXG4gICAgICAgIHJvd3M9XCI0XCJcbiAgICAgICAgY29scz1cIjMwXCJcbiAgICAgICAgcElucHV0VGV4dGFyZWFcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2JzZXJ2YXRpb25cIlxuICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8bGFiZWwgZm9yPVwiZmxvYXQtaW5wdXRcIj5PYnNlcnZhY2lvbmVzPC9sYWJlbD5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbXVsdGljdWx0dXJhbGl0aWVzOyBpbmRleCBhcyBpXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveCBtdC00IGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxtYXQtY2hlY2tib3ggW2Zvcm1Db250cm9sTmFtZV09XCInbXVsdGljdWx0dXJhbGlzbScgKyAnXycgKyAoaSsxKVwiIGNsYXNzPVwiZXhhbXBsZS1tYXJnaW5cIj48L21hdC1jaGVja2JveD5cbiAgICAgICAgPGxhYmVsIFtmb3JdPVwib3B0aW9uLmNvZGVcIj57eyBvcHRpb24ubmFtZSB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTQgZm9udC1ib2xkXCI+XG4gICAgPHA+XG4gICAgICAqIEVsIGVzdHVkaWFudGUgbyB0aXR1bGFyIHNlIGNvbXByb21ldGVuIGEgY2FuY2VsYXIgbGFzIGN1b3RhcyBlc3RhYmxlY2lkYXMgZW4gZXN0ZSBjb250cmF0bywgbG9zXG4gICAgICBwcmltZXJvcyA1IChjaW5jbykgZMOtYXMgZGVsIG1lcy4gRW4gY2FzbyBkZSBxdWVyZXIgcmV0aXJhcnNlLCBkZWJlcsOhIGluZm9ybWFyIHBvciBlc2NyaXRvIDMwXG4gICAgICAodHJlaW50YSkgZMOtYXMgYW50ZXMgeSBjYW5jZWxhciBsbyBjb3JyZXNwb25kaWVudGUgaGFzdGEgbGEgZmVjaGEgZGVmaW5pZGEgZGUgcmV0aXJvLCBwYXJhIHBvZGVyXG4gICAgICBvYnRlbmVyIHN1IHBheiB5IHNhbHZvLlxuICAgIDwvcD5cbiAgICA8YnI+PGJyPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cInRlcm1zXCIgY2xhc3M9XCJleGFtcGxlLW1hcmdpblwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgPCEtLSA8cC1jaGVja2JveCBbZm9ybUNvbnRyb2xdPVwiZ2V0Q2hlY2tib3hDb250cm9sKClcIj48L3AtY2hlY2tib3g+IC0tPlxuICAgICAgPCEtLSA8aXB0LWNoZWNrYm94IFtjb250cm9sXT1cImNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1sndGVybXMnXVwiIFtjaGVja2JveE9wdGlvbl09XCJ0ZXJtc0NoZWNrYm94U3RhdHVzXCI+PC9pcHQtY2hlY2tib3g+IC0tPlxuICAgICAgPHA+XG4gICAgICAgIERFQ0xBUk8gSEFCRVIgTEXDjURPIFkgQUNFUFRPIExPUyBUw4lSTUlOT1MgWSBDT05ESUNJT05FUyBERSBMQVMgUE9Mw41USUNBUyBFU1RBQkxFQ0lEQVMgRU4gTEFcbiAgICAgICAgSU5TVElUVUNJw5NOLlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cblxuPGRpdiBjbGFzcz1cImZsZXggbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgPHNwYW4gKm5nSWY9XCIoY29kRm9ybVN0ZXBGaXZlLmludmFsaWQgJiYgY29kRm9ybVN0ZXBGaXZlLnRvdWNoZWQpIHx8ICghdGVybXNDaGVja2JveFN0YXR1cyAmJiBjb2RGb3JtU3RlcEZpdmUudG91Y2hlZClcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJtbC1hdXRvIHAtYnV0dG9uLXN1Y2Nlc3MgcC1idXR0b24tc21cIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gW2xhYmVsXT1cInNlbmRGb3JtTXNnXCIgaWNvbj1cInBpIHBpLWNoZWNrXCI+PC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJtbC1hdXRvIHAtYnV0dG9uLWRhbmdlciBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJjbGVhblN0b3JhZ2UoKVwiIHBCdXR0b24gbGFiZWw9XCJDbGVhbiBTdG9yYWdlXCIgaWNvbj1cInBpIHBpLWNoZWNrXCI+PC9idXR0b24+XG48L2Rpdj5cblxuIl19
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1maXZlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1maXZlL2NvZC1mb3JtLXN0ZXAtZml2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZml2ZS9jb2QtZm9ybS1zdGVwLWZpdmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBd0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEcsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7O0FBTzlFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0lBaUJ4RCxZQUNVLEVBQWUsRUFDZixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWhCbEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzdDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSzlDLGlCQUFZLEdBQVcsMkJBQTJCLENBQUM7UUFFbkQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBR3JDLDBCQUEwQjtRQUMxQixhQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFD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Q0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUcsQ0FBQzs7cUhBL0tVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHNOQ1pyQyw0MkdBMEVBOzJGRDlEYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usd0JBQXdCO2lJQUt6QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcbmltcG9ydCB7IENvZEZvcm1TdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tc3RlcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC1maXZlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtZml2ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1mb3JtLXN0ZXAtZml2ZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29kRm9ybVN0ZXBGaXZlQ29tcG9uZW50IGV4dGVuZHMgQ29kRm9ybVN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdXNlclJvbGUhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGluaXRpYWxEYXRhPzogYW55O1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb2RGb3JtU3RlcEZpdmUhOiBGb3JtR3JvdXA7XG4gIG1hcmtldGluZ1JlYXNvbnM6IGFueTtcbiAgc3R1ZHlSZWFzb25zOiBhbnk7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hci4nO1xuICBzZW5kRm9ybU1zZyE6IHN0cmluZztcbiAgdGVybXNDaGVja2JveFN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xuICBtdWx0aWN1bHR1cmFsaXRpZXM6IGFueTtcblxuICAvLyBDb250cm9scyBkZWwgZm9ybXVsYXJpb1xuICBjb250cm9scyA9IG5ldyBDb2RGb3JtQ29udHJvbHMoKS5jb250cm9sc1s0XTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHBhcmFtZXRlclNlcnZpY2U6IFBhcmFtZXRlclNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmluaXRpYWxEYXRhKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcblxuICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWyd0ZXJtcyddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XG4gICAgICB0aGlzLnRlcm1zQ2hlY2tib3hTdGF0dXMgPSBjaGFuZ2VzO1xuICAgICAgaWYgKCF0aGlzLnRlcm1zQ2hlY2tib3hTdGF0dXMpIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0RlYmUgbWFyY2FyIGxhIGNhc2lsbGEgZGUgdMOpcm1pbm9zIHkgY29uZGljaW9uZXMuJ1xuICAgIH0pXG5cbiAgICBpZiAodGhpcy51c2VyUm9sZSA9PT0gMzAgfHwgdGhpcy51c2VyUm9sZSA9PT0gMzEgfHwgdGhpcy51c2VyUm9sZSA9PT0gMzIpIHRoaXMuc2VuZEZvcm1Nc2cgPSAnRWRpdGFyIENPRCc7IC8vIFJvbGVzIEFkbWluaXN0cmF0aXZvc1xuICAgIGlmICh0aGlzLnVzZXJSb2xlID09PSA0MCB8fCB0aGlzLnVzZXJSb2xlID09PSA0MSB8fCB0aGlzLnVzZXJSb2xlID09PSA0MikgdGhpcy5zZW5kRm9ybU1zZyA9ICdDcmVhciBDT0QnOyAvLyBSb2xlcyBjb21lcmNpYWxlc1xuICBcbiAgICAgIGlmICh0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhRnJvbVByZXZpdXNDb2QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgY29uc29sZS5sb2coJ05vIGhheSBkYXRhIGNhcmdhZGEgcGFyYSBlbCBQYXNvIDUnKTtcbiAgICAgIH1cbiAgfVxuXG4gIC8vIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmluaXRpYWxEYXRhKTtcbiAgICBcbiAgLy8gICB0aGlzLmluaXRGb3JtKCk7XG4gIC8vICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgLy8gICB0aGlzLmdldFBhcmFtZXRlcnMoKTtcbiAgLy8gICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1sndGVybXMnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAvLyAgICAgdGhpcy50ZXJtc0NoZWNrYm94U3RhdHVzID0gY2hhbmdlcztcbiAgLy8gICAgIGlmICghdGhpcy50ZXJtc0NoZWNrYm94U3RhdHVzKSB0aGlzLmVycm9yTWVzc2FnZSA9ICdEZWJlIG1hcmNhciBsYSBjYXNpbGxhIGRlIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzLidcbiAgLy8gICB9KVxuICAvLyAgIGlmICh0aGlzLnVzZXJSb2xlID09PSAzMCB8fCB0aGlzLnVzZXJSb2xlID09PSAzMSB8fCB0aGlzLnVzZXJSb2xlID09PSAzMikgdGhpcy5zZW5kRm9ybU1zZyA9ICdFZGl0YXIgQ09EJzsgLy8gUm9sZXMgQWRtaW5pc3RyYXRpdm9zXG4gIC8vICAgaWYgKHRoaXMudXNlclJvbGUgPT09IDQwIHx8IHRoaXMudXNlclJvbGUgPT09IDQxIHx8IHRoaXMudXNlclJvbGUgPT09IDQyKSB0aGlzLnNlbmRGb3JtTXNnID0gJ0NyZWFyIENPRCc7IC8vIFJvbGVzIGNvbWVyY2lhbGVzXG4gIC8vICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEYXRhJ10pIHtcbiAgLy8gICAgIGlmICh0aGlzLmluaXRpYWxEYXRhICE9IG51bGwpIHtcbiAgLy8gICAgICAgdGhpcy5zZXREYXRhRnJvbVByZXZpdXNDb2QoKTtcbiAgLy8gICAgIH0gZWxzZSB7XG4gIC8vICAgICAgY29uc29sZS5sb2coJ05vIGhheSBkYXRhIGNhcmdhZGEgcGFyYSBlbCBQYXNvIDUnKTtcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRNYXJrZXRpbmdSZWFzb25zKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5tYXJrZXRpbmdSZWFzb25zID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0U3R1ZHlSZWFzb25zKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5zdHVkeVJlYXNvbnMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRNdWx0aWN1bHR1cmFsaXNtcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMubXVsdGljdWx0dXJhbGl0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBtYXJrZXRpbmdfcmVhc29uczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgb2JzZXJ2YXRpb246IFsnJ10sXG4gICAgICBzdHVkeV9yZWFzb25zOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB0ZXJtczogW2ZhbHNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgZGlzYWJpbGl0eTogWycnXSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fMTogW2ZhbHNlLCBbXV0sXG4gICAgICBtdWx0aWN1bHR1cmFsaXNtXzI6IFtmYWxzZSwgW11dLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV8zOiBbZmFsc2UsIFtdXSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNDogW2ZhbHNlLCBbXV0sXG4gICAgICBtdWx0aWN1bHR1cmFsaXNtXzU6IFtmYWxzZSwgW11dLFxuICAgICAgbXVsdGljdWx0dXJhbGlzbV82OiBbZmFsc2UsIFtdXSxcbiAgICAgIG11bHRpY3VsdHVyYWxpc21fNzogW2ZhbHNlLCBbXV0sXG4gICAgICBoZWFsdGhfcmVnaW1lbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4ge1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzQnKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xvcyBkYXRvcyBkZSBsYSBwZXJzb25hIHF1ZSByZWZpcmnDsyBhbCBlc3R1ZGlhbnRlIHNvbiByZXF1ZXJpZG9zIGVuIGVsIGNhbXBvIFwiT2JzZXJ2YWNpb25lc1wiLidcbiAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICB0aXRsZTogJ0luZm9ybWFjacOzbicsXG4gICAgICAgICAgdGV4dDogJ0xsZW5lIGVuIGVsIGNhbXBvIGRlIG9ic2VydmFjaW9uZXMgbG9zIGRhdG9zIGRlIGxhIHBlcnNvbmEgcXVlIGxvIHJlZmlyacOzJyxcbiAgICAgICAgICBpY29uOiAnaW5mbydcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydvYnNlcnZhdGlvbiddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ29ic2VydmF0aW9uJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ29ic2VydmF0aW9uJ10uY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydvYnNlcnZhdGlvbiddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg1LCBjb250cm9sLm5hbWUpO1xuXG4gICAgICAvLyBTb2x1Y2nDs24gYWwgYnVnIGRlbCBjaGVja2JveFxuICAgICAgaWYgKGxvY2FsU3RvcmFnZVZhbHVlLmNvbnRyb2wgPT09ICd0ZXJtcycpIHtcbiAgICAgICAgbGV0IG5leHRWYWx1ZTogYm9vbGVhbiA9IGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWyd0ZXJtcyddLnNldFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIHRoaXMudGVybXNDaGVja2JveFN0YXR1cyA9IG5leHRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG5cbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcyg1LCBjb250cm9sLm5hbWUsIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29udHJvbHMuZmlsdGVyKGNvbnRyb2wgPT4gY29udHJvbC5kZXNjcmlwdGlvbiA9PT0gJ011bHRpY3VsdHVyYWxpc21vJykuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUyg1LCBjb250cm9sLm5hbWUpO1xuICAgICAgbGV0IG5leHRWYWx1ZTogYm9vbGVhbiA9IGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgfSlcbiAgfVxuXG4gIGdldENoZWNrYm94Q29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWyd0ZXJtcyddIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgc2VuZEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRml2ZS5pbnZhbGlkIHx8IHRoaXMudGVybXNDaGVja2JveFN0YXR1cyA9PT0gZmFsc2UpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnVzZXJSb2xlID09PSAzMCB8fCB0aGlzLnVzZXJSb2xlID09PSAzMSB8fCB0aGlzLnVzZXJSb2xlID09PSAzMikgdGhpcy5hY3Rpb24uZW1pdCgndXBkYXRlJyk7XG4gICAgaWYgKHRoaXMudXNlclJvbGUgPT09IDQwIHx8IHRoaXMudXNlclJvbGUgPT09IDQxIHx8IHRoaXMudXNlclJvbGUgPT09IDQyKSB0aGlzLmFjdGlvbi5lbWl0KCdjcmVhdGUnKTtcblxuICB9XG5cbiAgY2xlYW5TdG9yYWdlKCl7XG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIC8vIEV2ZW50b3MgZGVsIHNlbGVjdFxuICBzZWxlY3RNYXJrZXRpbmdSZWFzb25zKG1hcmtldGluZ1JlYXNvbnM6IGFueSkge1xuICAgIGlmIChtYXJrZXRpbmdSZWFzb25zICE9PSAnwr9Dw7NtbyBzZSBlbnRlcsOzIGRlbCBwcm9ncmFtYT8nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snbWFya2V0aW5nX3JlYXNvbnMnXS5zZXRWYWx1ZShtYXJrZXRpbmdSZWFzb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0U3R1ZHlSZWFzb25zKHN0dWR5UmVhc29uczogYW55KSB7XG4gICAgaWYgKHN0dWR5UmVhc29ucyAhPT0gJ01vdGl2bycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydzdHVkeV9yZWFzb25zJ10uc2V0VmFsdWUoc3R1ZHlSZWFzb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ3N0dWR5X3JlYXNvbnMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZXREYXRhRnJvbVByZXZpdXNDb2QoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZGl0aW9uYWxfaW5mb3JtYXRpb24ubWFya2V0aW5nX3JlYXNvbnMpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGaXZlLmNvbnRyb2xzWydzdHVkeV9yZWFzb25zJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZGl0aW9uYWxfaW5mb3JtYXRpb24uc3R1ZHlfcmVhc29ucyk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ2Rpc2FiaWxpdHknXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmFkaXRpb25hbF9pbmZvcm1hdGlvbi5kaXNhYmlsaXR5KTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snaGVhbHRoX3JlZ2ltZW4nXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmFkaXRpb25hbF9pbmZvcm1hdGlvbi5oZWFsdGhfcmVnaW1lbik7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ29ic2VydmF0aW9uJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5hZGl0aW9uYWxfaW5mb3JtYXRpb24ub2JzZXJ2YXRpb24pO1xuICB9XG5cblxufVxuIiwiPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJjb2RGb3JtU3RlcEZpdmVcIiBjbGFzcz1cImdyaWRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ11cIlxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ21hcmtldGluZ19yZWFzb25zJ10udmFsdWVcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdE1hcmtldGluZ1JlYXNvbnMoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJtYXJrZXRpbmdSZWFzb25zXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInwr9Dw7NtbyBzZSBlbnRlcsOzIGRlbCBwcm9ncmFtYT8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRGlzY2FwYWNpZGFkJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ2Rpc2FiaWxpdHknXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZpdmUuY29udHJvbHNbJ3N0dWR5X3JlYXNvbnMnXVwiXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snc3R1ZHlfcmVhc29ucyddLnZhbHVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RTdHVkeVJlYXNvbnMoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJzdHVkeVJlYXNvbnNcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidNb3Rpdm8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInUsOpZ2ltZW4gZGUgc2FsdWQnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1snaGVhbHRoX3JlZ2ltZW4nXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC00XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJwLWZsb2F0LWxhYmVsXCI+XG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgaWQ9XCJmbG9hdC1pbnB1dFwiXG4gICAgICAgIHJvd3M9XCI0XCJcbiAgICAgICAgY29scz1cIjMwXCJcbiAgICAgICAgcElucHV0VGV4dGFyZWFcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2JzZXJ2YXRpb25cIlxuICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8bGFiZWwgZm9yPVwiZmxvYXQtaW5wdXRcIj5PYnNlcnZhY2lvbmVzPC9sYWJlbD5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbXVsdGljdWx0dXJhbGl0aWVzOyBpbmRleCBhcyBpXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveCBtdC00IGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxtYXQtY2hlY2tib3ggW2Zvcm1Db250cm9sTmFtZV09XCInbXVsdGljdWx0dXJhbGlzbScgKyAnXycgKyAoaSsxKVwiIGNsYXNzPVwiZXhhbXBsZS1tYXJnaW5cIj48L21hdC1jaGVja2JveD5cbiAgICAgICAgPGxhYmVsIFtmb3JdPVwib3B0aW9uLmNvZGVcIj57eyBvcHRpb24ubmFtZSB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTQgZm9udC1ib2xkXCI+XG4gICAgPHA+XG4gICAgICAqIEVsIGVzdHVkaWFudGUgbyB0aXR1bGFyIHNlIGNvbXByb21ldGVuIGEgY2FuY2VsYXIgbGFzIGN1b3RhcyBlc3RhYmxlY2lkYXMgZW4gZXN0ZSBjb250cmF0bywgbG9zXG4gICAgICBwcmltZXJvcyA1IChjaW5jbykgZMOtYXMgZGVsIG1lcy4gRW4gY2FzbyBkZSBxdWVyZXIgcmV0aXJhcnNlLCBkZWJlcsOhIGluZm9ybWFyIHBvciBlc2NyaXRvIDMwXG4gICAgICAodHJlaW50YSkgZMOtYXMgYW50ZXMgeSBjYW5jZWxhciBsbyBjb3JyZXNwb25kaWVudGUgaGFzdGEgbGEgZmVjaGEgZGVmaW5pZGEgZGUgcmV0aXJvLCBwYXJhIHBvZGVyXG4gICAgICBvYnRlbmVyIHN1IHBheiB5IHNhbHZvLlxuICAgIDwvcD5cbiAgICA8YnI+PGJyPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cInRlcm1zXCIgY2xhc3M9XCJleGFtcGxlLW1hcmdpblwiPjwvbWF0LWNoZWNrYm94PlxuICAgICAgPCEtLSA8cC1jaGVja2JveCBbZm9ybUNvbnRyb2xdPVwiZ2V0Q2hlY2tib3hDb250cm9sKClcIj48L3AtY2hlY2tib3g+IC0tPlxuICAgICAgPCEtLSA8aXB0LWNoZWNrYm94IFtjb250cm9sXT1cImNvZEZvcm1TdGVwRml2ZS5jb250cm9sc1sndGVybXMnXVwiIFtjaGVja2JveE9wdGlvbl09XCJ0ZXJtc0NoZWNrYm94U3RhdHVzXCI+PC9pcHQtY2hlY2tib3g+IC0tPlxuICAgICAgPHA+XG4gICAgICAgIERFQ0xBUk8gSEFCRVIgTEXDjURPIFkgQUNFUFRPIExPUyBUw4lSTUlOT1MgWSBDT05ESUNJT05FUyBERSBMQVMgUE9Mw41USUNBUyBFU1RBQkxFQ0lEQVMgRU4gTEFcbiAgICAgICAgSU5TVElUVUNJw5NOLlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT5cblxuPGRpdiBjbGFzcz1cImZsZXggbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgPHNwYW4gKm5nSWY9XCIoY29kRm9ybVN0ZXBGaXZlLmludmFsaWQgJiYgY29kRm9ybVN0ZXBGaXZlLnRvdWNoZWQpIHx8ICghdGVybXNDaGVja2JveFN0YXR1cyAmJiBjb2RGb3JtU3RlcEZpdmUudG91Y2hlZClcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJtbC1hdXRvIHAtYnV0dG9uLXN1Y2Nlc3MgcC1idXR0b24tc21cIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gW2xhYmVsXT1cInNlbmRGb3JtTXNnXCIgaWNvbj1cInBpIHBpLWNoZWNrXCI+PC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJtbC1hdXRvIHAtYnV0dG9uLWRhbmdlciBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJjbGVhblN0b3JhZ2UoKVwiIHBCdXR0b24gbGFiZWw9XCJDbGVhbiBTdG9yYWdlXCIgaWNvbj1cInBpIHBpLWNoZWNrXCI+PC9idXR0b24+XG48L2Rpdj5cblxuIl19
|
|
@@ -3741,22 +3741,11 @@ class CodFormStepFiveComponent extends CodFormSteps {
|
|
|
3741
3741
|
// Controls del formulario
|
|
3742
3742
|
this.controls = new CodFormControls().controls[4];
|
|
3743
3743
|
}
|
|
3744
|
-
|
|
3745
|
-
// this.initForm();
|
|
3746
|
-
// this.getParameters();
|
|
3747
|
-
// this.startLocalStorageWork();
|
|
3748
|
-
// this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {
|
|
3749
|
-
// this.termsCheckboxStatus = changes;
|
|
3750
|
-
// if (!this.termsCheckboxStatus) this.errorMessage = 'Debe marcar la casilla de términos y condiciones.'
|
|
3751
|
-
// })
|
|
3752
|
-
// if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32) this.sendFormMsg = 'Editar COD'; // Roles Administrativos
|
|
3753
|
-
// if (this.userRole === 40 || this.userRole === 41 || this.userRole === 42) this.sendFormMsg = 'Crear COD'; // Roles comerciales
|
|
3754
|
-
// }
|
|
3755
|
-
ngOnChanges(changes) {
|
|
3744
|
+
ngOnInit() {
|
|
3756
3745
|
console.log(this.initialData);
|
|
3757
3746
|
this.initForm();
|
|
3758
|
-
this.startLocalStorageWork();
|
|
3759
3747
|
this.getParameters();
|
|
3748
|
+
this.startLocalStorageWork();
|
|
3760
3749
|
this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {
|
|
3761
3750
|
this.termsCheckboxStatus = changes;
|
|
3762
3751
|
if (!this.termsCheckboxStatus)
|
|
@@ -3766,15 +3755,32 @@ class CodFormStepFiveComponent extends CodFormSteps {
|
|
|
3766
3755
|
this.sendFormMsg = 'Editar COD'; // Roles Administrativos
|
|
3767
3756
|
if (this.userRole === 40 || this.userRole === 41 || this.userRole === 42)
|
|
3768
3757
|
this.sendFormMsg = 'Crear COD'; // Roles comerciales
|
|
3769
|
-
if (
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
console.log('No hay data cargada para el Paso 5');
|
|
3775
|
-
}
|
|
3758
|
+
if (this.initialData != null) {
|
|
3759
|
+
this.setDataFromPreviusCod();
|
|
3760
|
+
}
|
|
3761
|
+
else {
|
|
3762
|
+
console.log('No hay data cargada para el Paso 5');
|
|
3776
3763
|
}
|
|
3777
3764
|
}
|
|
3765
|
+
// ngOnChanges(changes: SimpleChanges): void {
|
|
3766
|
+
// console.log(this.initialData);
|
|
3767
|
+
// this.initForm();
|
|
3768
|
+
// this.startLocalStorageWork();
|
|
3769
|
+
// this.getParameters();
|
|
3770
|
+
// this.codFormStepFive.controls['terms'].valueChanges.subscribe(changes => {
|
|
3771
|
+
// this.termsCheckboxStatus = changes;
|
|
3772
|
+
// if (!this.termsCheckboxStatus) this.errorMessage = 'Debe marcar la casilla de términos y condiciones.'
|
|
3773
|
+
// })
|
|
3774
|
+
// if (this.userRole === 30 || this.userRole === 31 || this.userRole === 32) this.sendFormMsg = 'Editar COD'; // Roles Administrativos
|
|
3775
|
+
// if (this.userRole === 40 || this.userRole === 41 || this.userRole === 42) this.sendFormMsg = 'Crear COD'; // Roles comerciales
|
|
3776
|
+
// if (changes['initialData']) {
|
|
3777
|
+
// if (this.initialData != null) {
|
|
3778
|
+
// this.setDataFromPreviusCod();
|
|
3779
|
+
// } else {
|
|
3780
|
+
// console.log('No hay data cargada para el Paso 5');
|
|
3781
|
+
// }
|
|
3782
|
+
// }
|
|
3783
|
+
// }
|
|
3778
3784
|
getParameters() {
|
|
3779
3785
|
this.parameterService.getMarketingReasons().subscribe((response) => {
|
|
3780
3786
|
this.marketingReasons = response.data;
|
|
@@ -3879,7 +3885,7 @@ class CodFormStepFiveComponent extends CodFormSteps {
|
|
|
3879
3885
|
}
|
|
3880
3886
|
}
|
|
3881
3887
|
CodFormStepFiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFiveComponent, deps: [{ token: i1$1.FormBuilder }, { token: ParameterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3882
|
-
CodFormStepFiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: { userRole: "userRole", initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent", action: "action" }, usesInheritance: true,
|
|
3888
|
+
CodFormStepFiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodFormStepFiveComponent, selector: "app-cod-form-step-five", inputs: { userRole: "userRole", initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent", action: "action" }, usesInheritance: true, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepFive\" class=\"grid\">\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['marketing_reasons']\"\n [initialValue]=\"codFormStepFive.controls['marketing_reasons'].value\"\n (eventSelect)=\"selectMarketingReasons($event)\"\n [data]=\"marketingReasons\"\n [defaultText]=\"'\u00BFC\u00F3mo se enter\u00F3 del programa?'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Discapacidad'\"\n [control]=\"codFormStepFive.controls['disability']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['study_reasons']\"\n [initialValue]=\"codFormStepFive.controls['study_reasons'].value\"\n (eventSelect)=\"selectStudyReasons($event)\"\n [data]=\"studyReasons\"\n [defaultText]=\"'Motivo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'R\u00E9gimen de salud'\"\n [control]=\"codFormStepFive.controls['health_regimen']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 mt-4\">\n <span class=\"p-float-label\">\n <textarea\n id=\"float-input\"\n rows=\"4\"\n cols=\"30\"\n pInputTextarea\n formControlName=\"observation\"\n ></textarea>\n <label for=\"float-input\">Observaciones</label>\n </span>\n <div class=\"flex flex-wrap justify-content-between gap-2\">\n <div *ngFor=\"let option of multiculturalities; index as i\" class=\"field-checkbox mt-4 flex align-items-center\">\n <mat-checkbox [formControlName]=\"'multiculturalism' + '_' + (i+1)\" class=\"example-margin\"></mat-checkbox>\n <label [for]=\"option.code\">{{ option.name }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 p-4 font-bold\">\n <p>\n * El estudiante o titular se comprometen a cancelar las cuotas establecidas en este contrato, los\n primeros 5 (cinco) d\u00EDas del mes. En caso de querer retirarse, deber\u00E1 informar por escrito 30\n (treinta) d\u00EDas antes y cancelar lo correspondiente hasta la fecha definida de retiro, para poder\n obtener su paz y salvo.\n </p>\n <br><br>\n <div class=\"flex gap-2\">\n <mat-checkbox formControlName=\"terms\" class=\"example-margin\"></mat-checkbox>\n <!-- <p-checkbox [formControl]=\"getCheckboxControl()\"></p-checkbox> -->\n <!-- <ipt-checkbox [control]=\"codFormStepFive.controls['terms']\" [checkboxOption]=\"termsCheckboxStatus\"></ipt-checkbox> -->\n <p>\n DECLARO HABER LE\u00CDDO Y ACEPTO LOS T\u00C9RMINOS Y CONDICIONES DE LAS POL\u00CDTICAS ESTABLECIDAS EN LA\n INSTITUCI\u00D3N.\n </p>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"(codFormStepFive.invalid && codFormStepFive.touched) || (!termsCheckboxStatus && codFormStepFive.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 type=\"submit\" class=\"ml-auto p-button-success p-button-sm\" (click)=\"sendForm()\" pButton [label]=\"sendFormMsg\" icon=\"pi pi-check\"></button>\n <button class=\"ml-auto p-button-danger p-button-sm\" (click)=\"cleanStorage()\" pButton label=\"Clean Storage\" icon=\"pi pi-check\"></button>\n</div>\n\n", styles: [""], 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: "component", type: InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal"], outputs: ["dateSelected"] }, { kind: "component", type: SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "component", type: i6$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i8$1.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }] });
|
|
3883
3889
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodFormStepFiveComponent, decorators: [{
|
|
3884
3890
|
type: Component,
|
|
3885
3891
|
args: [{ selector: 'app-cod-form-step-five', template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepFive\" class=\"grid\">\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['marketing_reasons']\"\n [initialValue]=\"codFormStepFive.controls['marketing_reasons'].value\"\n (eventSelect)=\"selectMarketingReasons($event)\"\n [data]=\"marketingReasons\"\n [defaultText]=\"'\u00BFC\u00F3mo se enter\u00F3 del programa?'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Discapacidad'\"\n [control]=\"codFormStepFive.controls['disability']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 md:col-6\">\n <ipt-select\n [control]=\"codFormStepFive.controls['study_reasons']\"\n [initialValue]=\"codFormStepFive.controls['study_reasons'].value\"\n (eventSelect)=\"selectStudyReasons($event)\"\n [data]=\"studyReasons\"\n [defaultText]=\"'Motivo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'R\u00E9gimen de salud'\"\n [control]=\"codFormStepFive.controls['health_regimen']\"\n ></ipt-input>\n </div>\n <div class=\"col-12 mt-4\">\n <span class=\"p-float-label\">\n <textarea\n id=\"float-input\"\n rows=\"4\"\n cols=\"30\"\n pInputTextarea\n formControlName=\"observation\"\n ></textarea>\n <label for=\"float-input\">Observaciones</label>\n </span>\n <div class=\"flex flex-wrap justify-content-between gap-2\">\n <div *ngFor=\"let option of multiculturalities; index as i\" class=\"field-checkbox mt-4 flex align-items-center\">\n <mat-checkbox [formControlName]=\"'multiculturalism' + '_' + (i+1)\" class=\"example-margin\"></mat-checkbox>\n <label [for]=\"option.code\">{{ option.name }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"col-12 p-4 font-bold\">\n <p>\n * El estudiante o titular se comprometen a cancelar las cuotas establecidas en este contrato, los\n primeros 5 (cinco) d\u00EDas del mes. En caso de querer retirarse, deber\u00E1 informar por escrito 30\n (treinta) d\u00EDas antes y cancelar lo correspondiente hasta la fecha definida de retiro, para poder\n obtener su paz y salvo.\n </p>\n <br><br>\n <div class=\"flex gap-2\">\n <mat-checkbox formControlName=\"terms\" class=\"example-margin\"></mat-checkbox>\n <!-- <p-checkbox [formControl]=\"getCheckboxControl()\"></p-checkbox> -->\n <!-- <ipt-checkbox [control]=\"codFormStepFive.controls['terms']\" [checkboxOption]=\"termsCheckboxStatus\"></ipt-checkbox> -->\n <p>\n DECLARO HABER LE\u00CDDO Y ACEPTO LOS T\u00C9RMINOS Y CONDICIONES DE LAS POL\u00CDTICAS ESTABLECIDAS EN LA\n INSTITUCI\u00D3N.\n </p>\n </div>\n </div>\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"(codFormStepFive.invalid && codFormStepFive.touched) || (!termsCheckboxStatus && codFormStepFive.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 type=\"submit\" class=\"ml-auto p-button-success p-button-sm\" (click)=\"sendForm()\" pButton [label]=\"sendFormMsg\" icon=\"pi pi-check\"></button>\n <button class=\"ml-auto p-button-danger p-button-sm\" (click)=\"cleanStorage()\" pButton label=\"Clean Storage\" icon=\"pi pi-check\"></button>\n</div>\n\n" }]
|