iptdevs-design-system 2.7.43 → 2.7.44
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/README.md +24 -24
- package/esm2020/iptdevs-design-system.mjs +4 -4
- package/esm2020/lib/cod/cod-documents-section/cod-documents-section.component.mjs +16 -16
- package/esm2020/lib/cod/cod-form/cod-form.component.mjs +227 -227
- package/esm2020/lib/cod/cod.module.mjs +90 -90
- package/esm2020/lib/cod/logic/calculate-quotes.service.mjs +72 -72
- package/esm2020/lib/cod/logic/cod-form-controls.mjs +91 -91
- package/esm2020/lib/cod/logic/cod-form-steps.mjs +29 -29
- package/esm2020/lib/cod/logic/communicator.service.mjs +28 -28
- package/esm2020/lib/cod/logic/local-storage-cod.service.mjs +39 -39
- package/esm2020/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.mjs +146 -146
- package/esm2020/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.mjs +251 -251
- package/esm2020/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.mjs +200 -200
- package/esm2020/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.mjs +175 -175
- package/esm2020/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.mjs +255 -255
- package/esm2020/lib/components/atoms/aside-button/aside-button.component.mjs +50 -50
- package/esm2020/lib/components/atoms/button/button.component.mjs +64 -64
- package/esm2020/lib/components/atoms/checkbox/checkbox.component.mjs +47 -47
- package/esm2020/lib/components/atoms/datalist/datalist.component.mjs +94 -94
- package/esm2020/lib/components/atoms/input/input.component.mjs +145 -145
- package/esm2020/lib/components/atoms/level-button/level-button.component.mjs +64 -64
- package/esm2020/lib/components/atoms/level-text/level-text.component.mjs +19 -19
- package/esm2020/lib/components/atoms/loader/loader.component.mjs +48 -48
- package/esm2020/lib/components/atoms/radio/radio.component.mjs +47 -47
- package/esm2020/lib/components/atoms/select/select.component.mjs +102 -102
- package/esm2020/lib/components/atoms/text-link/text-link.component.mjs +39 -39
- package/esm2020/lib/components/components.module.mjs +123 -123
- package/esm2020/lib/components/forms/create-user-form/create-user-form.component.mjs +228 -228
- package/esm2020/lib/components/forms/login-form/login-form.component.mjs +93 -93
- package/esm2020/lib/components/material.module.mjs +19 -19
- package/esm2020/lib/components/molecules/question-type/edit-question-types.component.mjs +346 -346
- package/esm2020/lib/components/molecules/sidenav/sidenav.component.mjs +150 -150
- package/esm2020/lib/core/core.module.mjs +73 -73
- package/esm2020/lib/core/models/academic/academic.component.mjs +2 -2
- package/esm2020/lib/core/models/activities/activities.interface.mjs +2 -2
- package/esm2020/lib/core/models/attendance/attendance.interface.mjs +2 -2
- package/esm2020/lib/core/models/budget/budget.model.mjs +2 -2
- package/esm2020/lib/core/models/calendar/calendar-rq.models.mjs +2 -2
- package/esm2020/lib/core/models/classroom/classroom-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/cod/cod-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/commercial/commercial.model.mjs +2 -2
- package/esm2020/lib/core/models/course/course-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/course/courses.model.mjs +2 -2
- package/esm2020/lib/core/models/cronogram/cronogram.models.mjs +2 -2
- package/esm2020/lib/core/models/marketing/marketing.model.mjs +2 -2
- package/esm2020/lib/core/models/notes/notes.interface.mjs +2 -2
- package/esm2020/lib/core/models/payment/payment-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/response/response.interface.mjs +2 -2
- package/esm2020/lib/core/models/session/session.model.mjs +3 -3
- package/esm2020/lib/core/models/student/student.interface.mjs +2 -2
- package/esm2020/lib/core/models/table/table-rs.model.mjs +2 -2
- package/esm2020/lib/core/models/test/test.model.mjs +2 -2
- package/esm2020/lib/core/models/url/url.model.mjs +2 -2
- package/esm2020/lib/core/models/user/user-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/user/user-rs.model.mjs +5 -5
- package/esm2020/lib/core/services/academic-service/academic.service.mjs +55 -55
- package/esm2020/lib/core/services/activity-service/activity.service.mjs +87 -87
- package/esm2020/lib/core/services/attendance-service/attendance.service.mjs +64 -64
- package/esm2020/lib/core/services/budget-service/budget-service.mjs +66 -66
- package/esm2020/lib/core/services/calendar-service/calendar.service.mjs +65 -65
- package/esm2020/lib/core/services/certificate-service/certificate.service.mjs +26 -26
- package/esm2020/lib/core/services/classroom-service/classroom-service.service.mjs +36 -36
- package/esm2020/lib/core/services/commercial-service/comercial.service.mjs +49 -49
- package/esm2020/lib/core/services/commercial-service/validators.mjs +4 -4
- package/esm2020/lib/core/services/copies.service.mjs +17 -17
- package/esm2020/lib/core/services/course-service/course-service.model.mjs +70 -70
- package/esm2020/lib/core/services/ekt-service/userekt.service.mjs +29 -29
- package/esm2020/lib/core/services/marketing-service/marketing-service.mjs +52 -52
- package/esm2020/lib/core/services/notes-service/notes.service.mjs +46 -46
- package/esm2020/lib/core/services/parameters-service/parameters.service.mjs +173 -173
- package/esm2020/lib/core/services/service-enviroments.mjs +26 -26
- package/esm2020/lib/core/services/storage-service/storage-service.mjs +50 -50
- package/esm2020/lib/core/services/student-service/student.service.mjs +26 -26
- package/esm2020/lib/core/services/switch-service/switch.service.mjs +16 -16
- package/esm2020/lib/core/services/test-service/test.service.mjs +128 -128
- package/esm2020/lib/core/services/user-service/user-service.mjs +100 -100
- package/esm2020/lib/core/utils/base-service/base.service.mjs +191 -191
- package/esm2020/lib/core/utils/copies.mjs +214 -214
- package/esm2020/lib/core/utils/route-service/route.service.mjs +18 -18
- package/esm2020/lib/design-system.module.mjs +40 -40
- package/esm2020/public-api.mjs +89 -89
- package/fesm2015/iptdevs-design-system.mjs +4592 -4592
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +4589 -4589
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/iptdevs-design-system.d.ts +5 -5
- package/lib/cod/cod-documents-section/cod-documents-section.component.d.ts +8 -8
- package/lib/cod/cod-form/cod-form.component.d.ts +37 -37
- package/lib/cod/cod.module.d.ts +21 -21
- package/lib/cod/logic/calculate-quotes.service.d.ts +14 -14
- package/lib/cod/logic/cod-form-controls.d.ts +16 -16
- package/lib/cod/logic/cod-form-steps.d.ts +15 -15
- package/lib/cod/logic/communicator.service.d.ts +13 -13
- package/lib/cod/logic/local-storage-cod.service.d.ts +8 -8
- package/lib/cod/steps/cod-form-step-five/cod-form-step-five.component.d.ts +31 -31
- package/lib/cod/steps/cod-form-step-four/cod-form-step-four.component.d.ts +47 -47
- package/lib/cod/steps/cod-form-step-one/cod-form-step-one.component.d.ts +46 -46
- package/lib/cod/steps/cod-form-step-three/cod-form-step-three.component.d.ts +35 -35
- package/lib/cod/steps/cod-form-step-two/cod-form-step-two.component.d.ts +44 -44
- package/lib/components/atoms/aside-button/aside-button.component.d.ts +11 -11
- package/lib/components/atoms/button/button.component.d.ts +13 -13
- package/lib/components/atoms/checkbox/checkbox.component.d.ts +11 -11
- package/lib/components/atoms/datalist/datalist.component.d.ts +20 -20
- package/lib/components/atoms/input/input.component.d.ts +26 -26
- package/lib/components/atoms/level-button/level-button.component.d.ts +11 -11
- package/lib/components/atoms/level-text/level-text.component.d.ts +7 -7
- package/lib/components/atoms/loader/loader.component.d.ts +7 -7
- package/lib/components/atoms/radio/radio.component.d.ts +11 -11
- package/lib/components/atoms/select/select.component.d.ts +26 -26
- package/lib/components/atoms/text-link/text-link.component.d.ts +12 -12
- package/lib/components/components.module.d.ts +25 -25
- package/lib/components/forms/create-user-form/create-user-form.component.d.ts +36 -36
- package/lib/components/forms/login-form/login-form.component.d.ts +13 -13
- package/lib/components/material.module.d.ts +11 -11
- package/lib/components/molecules/question-type/edit-question-types.component.d.ts +11 -11
- package/lib/components/molecules/sidenav/sidenav.component.d.ts +25 -25
- package/lib/core/core.module.d.ts +6 -6
- package/lib/core/models/academic/academic.component.d.ts +26 -26
- package/lib/core/models/activities/activities.interface.d.ts +12 -12
- package/lib/core/models/attendance/attendance.interface.d.ts +62 -62
- package/lib/core/models/budget/budget.model.d.ts +69 -69
- package/lib/core/models/calendar/calendar-rq.models.d.ts +27 -27
- package/lib/core/models/classroom/classroom-rq.model.d.ts +23 -23
- package/lib/core/models/cod/cod-rq.model.d.ts +168 -168
- package/lib/core/models/commercial/commercial.model.d.ts +10 -10
- package/lib/core/models/course/course-rq.model.d.ts +86 -86
- package/lib/core/models/course/courses.model.d.ts +18 -18
- package/lib/core/models/cronogram/cronogram.models.d.ts +184 -183
- package/lib/core/models/marketing/marketing.model.d.ts +104 -104
- package/lib/core/models/notes/notes.interface.d.ts +89 -89
- package/lib/core/models/payment/payment-rq.model.d.ts +212 -212
- package/lib/core/models/response/response.interface.d.ts +10 -10
- package/lib/core/models/session/session.model.d.ts +5 -5
- package/lib/core/models/student/student.interface.d.ts +4 -4
- package/lib/core/models/table/table-rs.model.d.ts +7 -7
- package/lib/core/models/test/test.model.d.ts +219 -219
- package/lib/core/models/url/url.model.d.ts +8 -8
- package/lib/core/models/user/user-rq.model.d.ts +90 -90
- package/lib/core/models/user/user-rs.model.d.ts +35 -35
- package/lib/core/services/academic-service/academic.service.d.ts +20 -20
- package/lib/core/services/activity-service/activity.service.d.ts +25 -25
- package/lib/core/services/attendance-service/attendance.service.d.ts +22 -22
- package/lib/core/services/budget-service/budget-service.d.ts +23 -23
- package/lib/core/services/calendar-service/calendar.service.d.ts +23 -23
- package/lib/core/services/certificate-service/certificate.service.d.ts +13 -13
- package/lib/core/services/classroom-service/classroom-service.service.d.ts +15 -15
- package/lib/core/services/commercial-service/comercial.service.d.ts +19 -19
- package/lib/core/services/commercial-service/validators.d.ts +2 -2
- package/lib/core/services/copies.service.d.ts +7 -7
- package/lib/core/services/course-service/course-service.model.d.ts +23 -23
- package/lib/core/services/ekt-service/userekt.service.d.ts +13 -13
- package/lib/core/services/marketing-service/marketing-service.d.ts +19 -19
- package/lib/core/services/notes-service/notes.service.d.ts +18 -18
- package/lib/core/services/parameters-service/parameters.service.d.ts +49 -49
- package/lib/core/services/service-enviroments.d.ts +5 -5
- package/lib/core/services/storage-service/storage-service.d.ts +18 -18
- package/lib/core/services/student-service/student.service.d.ts +13 -13
- package/lib/core/services/switch-service/switch.service.d.ts +8 -8
- package/lib/core/services/test-service/test.service.d.ts +33 -33
- package/lib/core/services/user-service/user-service.d.ts +30 -30
- package/lib/core/utils/base-service/base.service.d.ts +23 -23
- package/lib/core/utils/copies.d.ts +1 -1
- package/lib/core/utils/route-service/route.service.d.ts +9 -9
- package/lib/design-system.module.d.ts +10 -10
- package/package.json +1 -1
- package/public-api.d.ts +76 -76
|
@@ -1,255 +1,255 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { map } from 'rxjs';
|
|
4
|
-
import { CodFormControls } from '../../logic/cod-form-controls';
|
|
5
|
-
import { CodFormSteps } from '../../logic/cod-form-steps';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/forms";
|
|
8
|
-
import * as i2 from "../../../core/services/parameters-service/parameters.service";
|
|
9
|
-
import * as i3 from "../../../components/atoms/input/input.component";
|
|
10
|
-
import * as i4 from "../../../components/atoms/select/select.component";
|
|
11
|
-
import * as i5 from "@angular/common";
|
|
12
|
-
import * as i6 from "primeng/button";
|
|
13
|
-
export class CodFormStepTwoComponent extends CodFormSteps {
|
|
14
|
-
constructor(fb, parameterService) {
|
|
15
|
-
super();
|
|
16
|
-
this.fb = fb;
|
|
17
|
-
this.parameterService = parameterService;
|
|
18
|
-
this.changeStepEvent = new EventEmitter();
|
|
19
|
-
this.errorMessage = 'Faltan campos por llenar.';
|
|
20
|
-
this.hasErrors = false;
|
|
21
|
-
this.genders = [];
|
|
22
|
-
// Controls del formulario
|
|
23
|
-
this.controls = new CodFormControls().controls[1];
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
this.getParameters();
|
|
27
|
-
this.initForm();
|
|
28
|
-
this.startLocalStorageWork();
|
|
29
|
-
this.validateErrors();
|
|
30
|
-
if (this.initialData)
|
|
31
|
-
this.setDataFromPreviusCod();
|
|
32
|
-
this.selectCountry(this.localStorageCOD.getCodFormData(2, 'country'));
|
|
33
|
-
}
|
|
34
|
-
setDataFromPreviusCod() {
|
|
35
|
-
this.codFormStepTwo.controls['student_name'].setValue(this.initialData.name);
|
|
36
|
-
this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.last_name);
|
|
37
|
-
this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.id_card_type);
|
|
38
|
-
this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.id_card);
|
|
39
|
-
this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.phone_indicative);
|
|
40
|
-
this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.phone_number);
|
|
41
|
-
this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.birthdate);
|
|
42
|
-
}
|
|
43
|
-
validateErrors() {
|
|
44
|
-
this.codFormStepTwo.valueChanges.subscribe(changes => {
|
|
45
|
-
if (this.codFormStepTwo.controls['student_name'].hasError('minlength')) {
|
|
46
|
-
this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';
|
|
47
|
-
}
|
|
48
|
-
else if (this.codFormStepTwo.controls['student_last_name'].hasError('minlength')) {
|
|
49
|
-
this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';
|
|
50
|
-
}
|
|
51
|
-
else if (this.codFormStepTwo.controls['password'].hasError('minlength')) {
|
|
52
|
-
this.errorMessage = 'La contraseña debe tener mínimo 6 caracteres';
|
|
53
|
-
}
|
|
54
|
-
else if (this.codFormStepTwo.controls['password'].value !== this.codFormStepTwo.controls['re_password'].value) {
|
|
55
|
-
this.errorMessage = 'Las contraseñas no coinciden';
|
|
56
|
-
}
|
|
57
|
-
else if (this.codFormStepTwo.controls['age'].errors) {
|
|
58
|
-
this.errorMessage = 'Fecha de nacimiento no válida';
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.errorMessage = 'Faltan campos por llenar';
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
startLocalStorageWork() {
|
|
66
|
-
this.controls.forEach(control => {
|
|
67
|
-
let localStorageValue = this.readAndWriteLS(2, control.name);
|
|
68
|
-
this.codFormStepTwo.controls[control.name].setValue(localStorageValue.value);
|
|
69
|
-
this.listenFormChanges(2, control.name, this.codFormStepTwo.controls[control.name].valueChanges);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
initForm() {
|
|
73
|
-
this.codFormStepTwo = this.fb.group({
|
|
74
|
-
student_address: ['', [Validators.required], []],
|
|
75
|
-
birthdate: ['', [Validators.required], []],
|
|
76
|
-
country: ['', [Validators.required], []],
|
|
77
|
-
state: ['', [Validators.required], []],
|
|
78
|
-
city: ['', [Validators.required], []],
|
|
79
|
-
student_id_card_type: ['', [Validators.required], []],
|
|
80
|
-
student_id_card: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],
|
|
81
|
-
student_last_name: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(32)]],
|
|
82
|
-
student_name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(32)]],
|
|
83
|
-
student_email: ['', [Validators.required, Validators.email]],
|
|
84
|
-
nickname: ['', [Validators.required]],
|
|
85
|
-
gender: ['', [Validators.required]],
|
|
86
|
-
age: ['', [Validators.required], []],
|
|
87
|
-
student_occupation: ['', [Validators.required]],
|
|
88
|
-
stratum: ['', [Validators.required]],
|
|
89
|
-
grade: ['', [Validators.required]],
|
|
90
|
-
civil_status: ['', [Validators.required]],
|
|
91
|
-
student_phone_indicative: ['', [Validators.required], []],
|
|
92
|
-
student_phone_number: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(15)]],
|
|
93
|
-
password: ['', [Validators.required, Validators.minLength(6)]],
|
|
94
|
-
re_password: ['', [Validators.required, Validators.minLength(6)]],
|
|
95
|
-
});
|
|
96
|
-
// Calcular edad y setear valor
|
|
97
|
-
this.codFormStepTwo.controls['birthdate'].valueChanges.subscribe({
|
|
98
|
-
next: (change) => {
|
|
99
|
-
let today = new Date();
|
|
100
|
-
let birthday = new Date(change);
|
|
101
|
-
let age = today.getFullYear() - birthday.getFullYear();
|
|
102
|
-
let month = today.getMonth() - birthday.getMonth();
|
|
103
|
-
if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {
|
|
104
|
-
age--;
|
|
105
|
-
}
|
|
106
|
-
if (age < 3) {
|
|
107
|
-
this.errorMessage = 'Fecha de nacimiento no válida';
|
|
108
|
-
this.codFormStepTwo.controls['birthdate'].setErrors({
|
|
109
|
-
invalidAge: true
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
this.codFormStepTwo.controls['birthdate'].setErrors(null);
|
|
114
|
-
}
|
|
115
|
-
this.codFormStepTwo.controls['age'].setValue(age);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
getParameters() {
|
|
120
|
-
this.parameterService.getCardTypes('col').subscribe((response) => {
|
|
121
|
-
this.idTypes = response.data;
|
|
122
|
-
});
|
|
123
|
-
this.parameterService.getIndicatives().subscribe((response) => {
|
|
124
|
-
this.indicatives = response.data;
|
|
125
|
-
});
|
|
126
|
-
this.parameterService.getCountries().subscribe((response) => {
|
|
127
|
-
this.countries = response.data;
|
|
128
|
-
});
|
|
129
|
-
this.parameterService.getStratums().subscribe((response) => {
|
|
130
|
-
this.stratums = response.data;
|
|
131
|
-
});
|
|
132
|
-
this.parameterService.getCivilStatus().subscribe((response) => {
|
|
133
|
-
this.civilStatus = response.data;
|
|
134
|
-
});
|
|
135
|
-
this.parameterService.getGenders().pipe(map((response) => response.data))
|
|
136
|
-
.subscribe((genders) => {
|
|
137
|
-
genders.forEach(gender => {
|
|
138
|
-
let genderItem = {
|
|
139
|
-
code: gender.code,
|
|
140
|
-
name: gender.name_spanish
|
|
141
|
-
};
|
|
142
|
-
this.genders.push(genderItem);
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
sendForm() {
|
|
147
|
-
this.codFormStepTwo.markAllAsTouched();
|
|
148
|
-
if (this.codFormStepTwo.invalid)
|
|
149
|
-
return;
|
|
150
|
-
// Movernos al paso 3
|
|
151
|
-
this.changeStepEvent.emit(2);
|
|
152
|
-
}
|
|
153
|
-
getState(state) {
|
|
154
|
-
this.getCity(state);
|
|
155
|
-
}
|
|
156
|
-
getCity(state) {
|
|
157
|
-
this.parameterService.getCitiesByState(state).subscribe((response) => {
|
|
158
|
-
this.cities = response.data;
|
|
159
|
-
this.selectCity(this.localStorageCOD.getCodFormData(2, 'city'));
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
// Eventos de los select
|
|
163
|
-
selectCountry(country) {
|
|
164
|
-
if (country !== 'País de residencia') {
|
|
165
|
-
this.codFormStepTwo.controls['country'].setValue(country);
|
|
166
|
-
let iso = '';
|
|
167
|
-
if (country === '1')
|
|
168
|
-
iso = 'null';
|
|
169
|
-
if (country === '2')
|
|
170
|
-
iso = 'col';
|
|
171
|
-
if (country === '3')
|
|
172
|
-
iso = 'ven';
|
|
173
|
-
if (country === '4')
|
|
174
|
-
iso = 'usa';
|
|
175
|
-
this.parameterService.getStatesByCountry(iso).subscribe((response) => {
|
|
176
|
-
this.states = response.data;
|
|
177
|
-
this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
this.codFormStepTwo.controls['country'].setValue(null);
|
|
182
|
-
}
|
|
183
|
-
this.countrySelected = country;
|
|
184
|
-
}
|
|
185
|
-
selectState(state) {
|
|
186
|
-
if (state !== 'Departamento o estado') {
|
|
187
|
-
this.codFormStepTwo.controls['state'].setValue(state);
|
|
188
|
-
this.getState(state);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
this.codFormStepTwo.controls['state'].setValue(null);
|
|
192
|
-
this.codFormStepTwo.controls['city'].setValue(null);
|
|
193
|
-
this.cities = [];
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
selectCity(city) {
|
|
197
|
-
if (city !== 'Ciudad de residencia') {
|
|
198
|
-
this.codFormStepTwo.controls['city'].setValue(city);
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
this.codFormStepTwo.controls['city'].setValue(null);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
selectIdType(idType) {
|
|
205
|
-
if (idType !== 'Tipo de documento') {
|
|
206
|
-
this.codFormStepTwo.controls['student_id_card_type'].setValue(idType);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
this.codFormStepTwo.controls['student_id_card_type'].setValue(null);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
selectIndicatives(indicative) {
|
|
213
|
-
if (indicative !== 'Indicativo') {
|
|
214
|
-
this.codFormStepTwo.controls['student_phone_indicative'].setValue(indicative);
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
this.codFormStepTwo.controls['student_phone_indicative'].setValue(null);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
selectGender(gender) {
|
|
221
|
-
if (gender !== 'Género') {
|
|
222
|
-
this.codFormStepTwo.controls['gender'].setValue(gender);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
this.codFormStepTwo.controls['gender'].setValue(null);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
selectStratum(stratum) {
|
|
229
|
-
if (stratum !== 'Estrato') {
|
|
230
|
-
this.codFormStepTwo.controls['stratum'].setValue(stratum);
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
this.codFormStepTwo.controls['stratum'].setValue(null);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
selectCivilStatus(civil_status) {
|
|
237
|
-
if (civil_status !== 'Estado civil') {
|
|
238
|
-
this.codFormStepTwo.controls['civil_status'].setValue(civil_status);
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
this.codFormStepTwo.controls['civil_status'].setValue(null);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
CodFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CodFormStepTwoComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ParameterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
246
|
-
CodFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: { initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent" }, usesInheritance: true, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\
|
|
247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CodFormStepTwoComponent, decorators: [{
|
|
248
|
-
type: Component,
|
|
249
|
-
args: [{ selector: 'app-cod-form-step-two', template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\
|
|
250
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ParameterService }]; }, propDecorators: { initialData: [{
|
|
251
|
-
type: Input
|
|
252
|
-
}], changeStepEvent: [{
|
|
253
|
-
type: Output
|
|
254
|
-
}] } });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2QtZm9ybS1zdGVwLXR3by5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBMEIsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFakYsT0FBTyxFQUFFLEdBQUcsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBTzlFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBb0J2RCxZQUNVLEVBQWUsRUFDZixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCbEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBT3ZELGlCQUFZLEdBQVcsMkJBQTJCLENBQUM7UUFDbkQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUkzQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBR3BCLDBCQUEwQjtRQUMxQixhQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFP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QUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDOztvSEExUFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNktDWnBDLHE1TEFnSkE7MkZEcElhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUI7aUlBS3hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZSc7XHJcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ29kRm9ybVN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1zdGVwcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb2QtZm9ybS1zdGVwLXR3bycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2QtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvZEZvcm1TdGVwVHdvQ29tcG9uZW50IGV4dGVuZHMgQ29kRm9ybVN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpbml0aWFsRGF0YT86IGFueTtcclxuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIGNvZEZvcm1TdGVwVHdvITogRm9ybUdyb3VwO1xyXG4gIGNvdW50cnlTZWxlY3RlZDogYW55O1xyXG4gIGNvdW50cmllczogYW55O1xyXG4gIHN0YXRlczogYW55O1xyXG4gIGNpdGllczogYW55O1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hci4nO1xyXG4gIGhhc0Vycm9yczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlkVHlwZXM6IGFueTtcclxuICBpbmRpY2F0aXZlczogYW55O1xyXG4gIGNpdmlsU3RhdHVzOiBhbnk7XHJcbiAgZ2VuZGVyczogYW55W10gPSBbXTtcclxuICBzdHJhdHVtczogYW55O1xyXG5cclxuICAvLyBDb250cm9scyBkZWwgZm9ybXVsYXJpb1xyXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzFdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFBhcmFtZXRlcnMoKTtcclxuICAgIHRoaXMuaW5pdEZvcm0oKTtcclxuICAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRlRXJyb3JzKClcclxuICAgIGlmICh0aGlzLmluaXRpYWxEYXRhKSB0aGlzLnNldERhdGFGcm9tUHJldml1c0NvZCgpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0Q291bnRyeSh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgyLCAnY291bnRyeScpKTtcclxuICB9XHJcblxyXG4gIHNldERhdGFGcm9tUHJldml1c0NvZCgpIHtcclxuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEubmFtZSk7XHJcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEubGFzdF9uYW1lKTtcclxuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5pZF9jYXJkX3R5cGUpO1xyXG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5pZF9jYXJkKTtcclxuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEucGhvbmVfaW5kaWNhdGl2ZSk7XHJcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEucGhvbmVfbnVtYmVyKTtcclxuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuYmlydGhkYXRlKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRXJyb3JzKCkge1xyXG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9uYW1lJ10uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTG9zIG5vbWJyZXMgZGViZW4gdGVuZXIgbcOtbmltbyAzIGNhcmFjdGVyZXMnO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTG9zIGFwZWxsaWRvcyBkZWJlbiB0ZW5lciBtw61uaW1vIDUgY2FyYWN0ZXJlcyc7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1sncGFzc3dvcmQnXS5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjb250cmFzZcOxYSBkZWJlIHRlbmVyIG3DrW5pbW8gNiBjYXJhY3RlcmVzJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydwYXNzd29yZCddLnZhbHVlICE9PSB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydyZV9wYXNzd29yZCddLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnTGFzIGNvbnRyYXNlw7FhcyBubyBjb2luY2lkZW4nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FnZSddLmVycm9ycykge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZlY2hhIGRlIG5hY2ltaWVudG8gbm8gdsOhbGlkYSc7XHJcbiAgICAgIH1cclxuICAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hcic7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XHJcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzID0gdGhpcy5yZWFkQW5kV3JpdGVMUygyLCBjb250cm9sLm5hbWUpO1xyXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xyXG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDIsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3byA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzdHVkZW50X2FkZHJlc3M6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXHJcbiAgICAgIGJpcnRoZGF0ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcclxuICAgICAgY291bnRyeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcclxuICAgICAgc3RhdGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXHJcbiAgICAgIGNpdHk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXHJcbiAgICAgIHN0dWRlbnRfaWRfY2FyZF90eXBlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxyXG4gICAgICBzdHVkZW50X2lkX2NhcmQ6IFsgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXHJcbiAgICAgIHN0dWRlbnRfbGFzdF9uYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIpXV0sXHJcbiAgICAgIHN0dWRlbnRfbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyKV1dLFxyXG4gICAgICBzdHVkZW50X2VtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXHJcbiAgICAgIG5pY2tuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGdlbmRlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBhZ2U6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXHJcbiAgICAgIHN0dWRlbnRfb2NjdXBhdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzdHJhdHVtOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGdyYWRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGNpdmlsX3N0YXR1czogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXHJcbiAgICAgIHN0dWRlbnRfcGhvbmVfbnVtYmVyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxMCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDE1KV1dLFxyXG4gICAgICBwYXNzd29yZDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildXSxcclxuICAgICAgcmVfcGFzc3dvcmQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDYpXV0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBDYWxjdWxhciBlZGFkIHkgc2V0ZWFyIHZhbG9yXHJcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGNoYW5nZSkgPT4ge1xyXG4gICAgICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgbGV0IGJpcnRoZGF5ID0gbmV3IERhdGUoY2hhbmdlKTtcclxuICAgICAgICBsZXQgYWdlID0gdG9kYXkuZ2V0RnVsbFllYXIoKSAtIGJpcnRoZGF5LmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgbGV0IG1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKSAtIGJpcnRoZGF5LmdldE1vbnRoKCk7XHJcblxyXG4gICAgICAgIGlmIChtb250aCA8IDAgfHwgKG1vbnRoID09PSAwICYmIHRvZGF5LmdldERhdGUoKSA8IGJpcnRoZGF5LmdldERhdGUoKSkpIHtcclxuICAgICAgICAgIGFnZS0tO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGFnZSA8IDMpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZlY2hhIGRlIG5hY2ltaWVudG8gbm8gdsOhbGlkYSdcclxuICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldEVycm9ycyh7XHJcbiAgICAgICAgICAgIGludmFsaWRBZ2U6IHRydWVcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FnZSddLnNldFZhbHVlKGFnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRQYXJhbWV0ZXJzKCkge1xyXG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENhcmRUeXBlcygnY29sJykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmlkVHlwZXMgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0SW5kaWNhdGl2ZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5kaWNhdGl2ZXMgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmNvdW50cmllcyA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRTdHJhdHVtcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5zdHJhdHVtcyA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDaXZpbFN0YXR1cygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5jaXZpbFN0YXR1cyA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRHZW5kZXJzKCkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhKVxyXG4gICAgKVxyXG4gICAgLnN1YnNjcmliZSgoZ2VuZGVyczogYW55W10pID0+IHtcclxuICAgICAgZ2VuZGVycy5mb3JFYWNoKGdlbmRlciA9PiB7XHJcbiAgICAgICAgbGV0IGdlbmRlckl0ZW0gPSB7XHJcbiAgICAgICAgICBjb2RlOiBnZW5kZXIuY29kZSxcclxuICAgICAgICAgIG5hbWU6IGdlbmRlci5uYW1lX3NwYW5pc2hcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5nZW5kZXJzLnB1c2goZ2VuZGVySXRlbSlcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZW5kRm9ybSgpIHtcclxuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gM1xyXG4gICAgdGhpcy5jaGFuZ2VTdGVwRXZlbnQuZW1pdCgyKTtcclxuICB9XHJcblxyXG4gIGdldFN0YXRlKHN0YXRlOiBhbnkpIHtcclxuICAgIHRoaXMuZ2V0Q2l0eShzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDaXR5KHN0YXRlOiBhbnkpIHtcclxuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDaXRpZXNCeVN0YXRlKHN0YXRlKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuY2l0aWVzID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgdGhpcy5zZWxlY3RDaXR5KHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdjaXR5JykpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBFdmVudG9zIGRlIGxvcyBzZWxlY3RcclxuICBzZWxlY3RDb3VudHJ5KGNvdW50cnk6IGFueSkge1xyXG4gICAgaWYgKGNvdW50cnkgIT09ICdQYcOtcyBkZSByZXNpZGVuY2lhJykge1xyXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUoY291bnRyeSk7XHJcbiAgICAgIGxldCBpc28gPSAnJztcclxuICAgICAgaWYgKGNvdW50cnkgPT09ICcxJykgaXNvID0gJ251bGwnO1xyXG4gICAgICBpZiAoY291bnRyeSA9PT0gJzInKSBpc28gPSAnY29sJztcclxuICAgICAgaWYgKGNvdW50cnkgPT09ICczJykgaXNvID0gJ3Zlbic7XHJcbiAgICAgIGlmIChjb3VudHJ5ID09PSAnNCcpIGlzbyA9ICd1c2EnO1xyXG4gICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0U3RhdGVzQnlDb3VudHJ5KGlzbykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdGVzID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICB0aGlzLnNlbGVjdFN0YXRlKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDIsICdzdGF0ZScpKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvdW50cnlTZWxlY3RlZCA9IGNvdW50cnk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdGF0ZShzdGF0ZTogYW55KSB7XHJcbiAgICBpZiAoc3RhdGUgIT09ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nKSB7XHJcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUoc3RhdGUpO1xyXG4gICAgICB0aGlzLmdldFN0YXRlKHN0YXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5jaXRpZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdENpdHkoY2l0eTogYW55KSB7XHJcbiAgICBpZiAoY2l0eSAhPT0gJ0NpdWRhZCBkZSByZXNpZGVuY2lhJykge1xyXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10uc2V0VmFsdWUoY2l0eSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJZFR5cGUoaWRUeXBlOiBhbnkpIHtcclxuICAgIGlmIChpZFR5cGUgIT09ICdUaXBvIGRlIGRvY3VtZW50bycpIHtcclxuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS5zZXRWYWx1ZShpZFR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdEluZGljYXRpdmVzKGluZGljYXRpdmU6IGFueSkge1xyXG4gICAgaWYgKGluZGljYXRpdmUgIT09ICdJbmRpY2F0aXZvJykge1xyXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS5zZXRWYWx1ZShpbmRpY2F0aXZlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0R2VuZGVyKGdlbmRlcjogYW55KSB7XHJcbiAgICBpZiAoZ2VuZGVyICE9PSAnR8OpbmVybycpIHtcclxuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snZ2VuZGVyJ10uc2V0VmFsdWUoZ2VuZGVyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3RyYXR1bShzdHJhdHVtOiBhbnkpIHtcclxuICAgIGlmIChzdHJhdHVtICE9PSAnRXN0cmF0bycpIHtcclxuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RyYXR1bSddLnNldFZhbHVlKHN0cmF0dW0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RyYXR1bSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q2l2aWxTdGF0dXMoY2l2aWxfc3RhdHVzOiBhbnkpIHtcclxuICAgIGlmIChjaXZpbF9zdGF0dXMgIT09ICdFc3RhZG8gY2l2aWwnKSB7XHJcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdmlsX3N0YXR1cyddLnNldFZhbHVlKGNpdmlsX3N0YXR1cyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXZpbF9zdGF0dXMnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJjb2RGb3JtU3RlcFR3b1wiIGNsYXNzPVwiZ3JpZFwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICA8aXB0LWlucHV0XHJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcclxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X25hbWUnXVwiXHJcbiAgICA+PC9pcHQtaW5wdXQ+XHJcbiAgICA8aXB0LXNlbGVjdFxyXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnZhbHVlXCJcclxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ11cIlxyXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS52YWx1ZSA9PT0gbnVsbCA/ICdUaXBvIGRlIGRvY3VtZW50bycgOiBjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS52YWx1ZVwiXHJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICBbZGF0YV09XCJpZFR5cGVzXCJcclxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdElkVHlwZSgkZXZlbnQpXCJcclxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidUaXBvIGRlIGRvY3VtZW50bydcIlxyXG4gICAgPjwvaXB0LXNlbGVjdD5cclxuICAgIDxpcHQtc2VsZWN0XHJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS52YWx1ZVwiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J11cIlxyXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY291bnRyeSddLnZhbHVlID09PSBudWxsID8gJ1Bhw61zIGRlIHJlc2lkZW5jaWEnIDogY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS52YWx1ZVwiXHJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDb3VudHJ5KCRldmVudClcIlxyXG4gICAgICBbZGF0YV09XCJjb3VudHJpZXNcIlxyXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ1Bhw61zIGRlIHJlc2lkZW5jaWEnXCJcclxuICAgID48L2lwdC1zZWxlY3Q+XHJcbiAgICA8aXB0LXNlbGVjdFxyXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10udmFsdWVcIlxyXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddXCJcclxuICAgICAgW3NlbGVjdENvZGVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS52YWx1ZSA9PT0gbnVsbCA/ICdDaXVkYWQgZGUgcmVzaWRlbmNpYScgOiBjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddLnZhbHVlXCJcclxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdENpdHkoJGV2ZW50KVwiXHJcbiAgICAgIFtkYXRhXT1cImNpdGllc1wiXHJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInQ2l1ZGFkIGRlIHJlc2lkZW5jaWEnXCJcclxuICAgID48L2lwdC1zZWxlY3Q+XHJcbiAgICA8aXB0LWlucHV0XHJcbiAgICAgIG9uZm9jdXM9XCIodGhpcy50eXBlPSdkYXRlJylcIlxyXG4gICAgICBbaW5wdXRUeXBlXT1cIidkYXRlJ1wiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydiaXJ0aGRhdGUnXVwiXHJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRmVjaGEgZGUgbmFjaW1pZW50bydcIlxyXG4gICAgPjwvaXB0LWlucHV0PlxyXG4gICAgIDxpcHQtc2VsZWN0XHJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddLnZhbHVlXCJcclxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2dlbmRlciddXCJcclxuICAgICAgW2RhdGFdPVwiZ2VuZGVyc1wiXHJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RHZW5kZXIoJGV2ZW50KVwiXHJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInR8OpbmVybydcIlxyXG4gICAgPjwvaXB0LXNlbGVjdD5cclxuICAgIDxpcHQtc2VsZWN0XHJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0cmF0dW0nXS52YWx1ZVwiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHJhdHVtJ11cIlxyXG4gICAgICBbZGF0YV09XCJzdHJhdHVtc1wiXHJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RTdHJhdHVtKCRldmVudClcIlxyXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0VzdHJhdG8nXCJcclxuICAgID48L2lwdC1zZWxlY3Q+XHJcbiAgICA8aXB0LWlucHV0XHJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcclxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidHcmFkbydcIlxyXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snZ3JhZGUnXVwiXHJcbiAgICA+PC9pcHQtaW5wdXQ+XHJcbiAgICA8aXB0LXNlbGVjdFxyXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS52YWx1ZVwiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXVwiXHJcbiAgICAgIFtkYXRhXT1cImluZGljYXRpdmVzXCJcclxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEluZGljYXRpdmVzKCRldmVudClcIlxyXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0luZGljYXRpdm8nXCJcclxuICAgID48L2lwdC1zZWxlY3Q+XHJcbiAgICA8aXB0LWlucHV0XHJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ2VtYWlsJ1wiXHJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInQ29ycmVvIGVsZWN0csOzbmljbydcIlxyXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9lbWFpbCddXCJcclxuICAgID48L2lwdC1pbnB1dD5cclxuICAgIDxpcHQtaW5wdXRcclxuICAgICAgW2lucHV0VHlwZV09XCIncGFzc3dvcmQnXCJcclxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidSZXBldGlyIGNvbnRyYXNlw7FhJ1wiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydyZV9wYXNzd29yZCddXCJcclxuICAgID48L2lwdC1pbnB1dD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGlwdC1pbnB1dFxyXG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXHJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInQXBlbGxpZG9zJ1wiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddXCJcclxuICAgID48L2lwdC1pbnB1dD5cclxuICAgIDxpcHQtaW5wdXRcclxuICAgICAgW2lucHV0VHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInTsO6bWVybyBkZSBkb2N1bWVudG8nXCJcclxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZCddXCJcclxuICAgID48L2lwdC1pbnB1dD5cclxuICAgIDxpcHQtc2VsZWN0XHJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10udmFsdWVcIlxyXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXVwiXHJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlID09PSBudWxsID8gJ0RlcGFydGFtZW50byBvIGVzdGFkbycgOiBjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXS52YWx1ZVwiXHJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0U3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgIFtkYXRhXT1cInN0YXRlc1wiXHJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInRGVwYXJ0YW1lbnRvIG8gZXN0YWRvJ1wiXHJcbiAgICA+PC9pcHQtc2VsZWN0PlxyXG4gICAgPGlwdC1pbnB1dFxyXG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXHJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRGlyZWNjacOzbidcIlxyXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9hZGRyZXNzJ11cIlxyXG4gICAgPjwvaXB0LWlucHV0PlxyXG4gICAgPGlwdC1pbnB1dFxyXG4gICAgICBbaW5wdXRUeXBlXT1cIidudW1iZXInXCJcclxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidFZGFkJ1wiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydhZ2UnXVwiXHJcbiAgICA+PC9pcHQtaW5wdXQ+XHJcbiAgICA8aXB0LWlucHV0XHJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcclxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidOaWNrbmFtZSdcIlxyXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snbmlja25hbWUnXVwiXHJcbiAgICA+PC9pcHQtaW5wdXQ+XHJcbiAgICA8aXB0LWlucHV0XHJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcclxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidPY3VwYWNpw7NuJ1wiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X29jY3VwYXRpb24nXVwiXHJcbiAgICA+PC9pcHQtaW5wdXQ+XHJcbiAgICA8aXB0LXNlbGVjdFxyXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXZpbF9zdGF0dXMnXS52YWx1ZVwiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXZpbF9zdGF0dXMnXVwiXHJcbiAgICAgIFtkYXRhXT1cImNpdmlsU3RhdHVzXCJcclxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdENpdmlsU3RhdHVzKCRldmVudClcIlxyXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0VzdGFkbyBjaXZpbCdcIlxyXG4gICAgPjwvaXB0LXNlbGVjdD5cclxuICAgIDxpcHQtaW5wdXRcclxuICAgICAgW2lucHV0VHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInTsO6bWVybyBkZSB0ZWzDqWZvbm8nXCJcclxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfbnVtYmVyJ11cIlxyXG4gICAgPjwvaXB0LWlucHV0PlxyXG4gICAgPGlwdC1pbnB1dFxyXG4gICAgICBbaW5wdXRUeXBlXT1cIidwYXNzd29yZCdcIlxyXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0NvbnRyYXNlw7FhJ1wiXHJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydwYXNzd29yZCddXCJcclxuICAgID48L2lwdC1pbnB1dD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPjwvZGl2PlxyXG5cclxuPC9mb3JtPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXggbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuICA8c3BhbiAqbmdJZj1cImNvZEZvcm1TdGVwVHdvLmludmFsaWQgJiYgY29kRm9ybVN0ZXBUd28udG91Y2hlZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtdC0xIHB5LTIgYmctcmVkLTEwMCB3LWZ1bGwgYm9yZGVyLXJvdW5kLXhsXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPlxyXG4gIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtYXV0byBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJzZW5kRm9ybSgpXCIgcEJ1dHRvbiBsYWJlbD1cIlNpZ3VpZW50ZVwiIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiPjwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { CodFormControls } from '../../logic/cod-form-controls';
|
|
5
|
+
import { CodFormSteps } from '../../logic/cod-form-steps';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "../../../core/services/parameters-service/parameters.service";
|
|
9
|
+
import * as i3 from "../../../components/atoms/input/input.component";
|
|
10
|
+
import * as i4 from "../../../components/atoms/select/select.component";
|
|
11
|
+
import * as i5 from "@angular/common";
|
|
12
|
+
import * as i6 from "primeng/button";
|
|
13
|
+
export class CodFormStepTwoComponent extends CodFormSteps {
|
|
14
|
+
constructor(fb, parameterService) {
|
|
15
|
+
super();
|
|
16
|
+
this.fb = fb;
|
|
17
|
+
this.parameterService = parameterService;
|
|
18
|
+
this.changeStepEvent = new EventEmitter();
|
|
19
|
+
this.errorMessage = 'Faltan campos por llenar.';
|
|
20
|
+
this.hasErrors = false;
|
|
21
|
+
this.genders = [];
|
|
22
|
+
// Controls del formulario
|
|
23
|
+
this.controls = new CodFormControls().controls[1];
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.getParameters();
|
|
27
|
+
this.initForm();
|
|
28
|
+
this.startLocalStorageWork();
|
|
29
|
+
this.validateErrors();
|
|
30
|
+
if (this.initialData)
|
|
31
|
+
this.setDataFromPreviusCod();
|
|
32
|
+
this.selectCountry(this.localStorageCOD.getCodFormData(2, 'country'));
|
|
33
|
+
}
|
|
34
|
+
setDataFromPreviusCod() {
|
|
35
|
+
this.codFormStepTwo.controls['student_name'].setValue(this.initialData.name);
|
|
36
|
+
this.codFormStepTwo.controls['student_last_name'].setValue(this.initialData.last_name);
|
|
37
|
+
this.codFormStepTwo.controls['student_id_card_type'].setValue(this.initialData.id_card_type);
|
|
38
|
+
this.codFormStepTwo.controls['student_id_card'].setValue(this.initialData.id_card);
|
|
39
|
+
this.codFormStepTwo.controls['student_phone_indicative'].setValue(this.initialData.phone_indicative);
|
|
40
|
+
this.codFormStepTwo.controls['student_phone_number'].setValue(this.initialData.phone_number);
|
|
41
|
+
this.codFormStepTwo.controls['birthdate'].setValue(this.initialData.birthdate);
|
|
42
|
+
}
|
|
43
|
+
validateErrors() {
|
|
44
|
+
this.codFormStepTwo.valueChanges.subscribe(changes => {
|
|
45
|
+
if (this.codFormStepTwo.controls['student_name'].hasError('minlength')) {
|
|
46
|
+
this.errorMessage = 'Los nombres deben tener mínimo 3 caracteres';
|
|
47
|
+
}
|
|
48
|
+
else if (this.codFormStepTwo.controls['student_last_name'].hasError('minlength')) {
|
|
49
|
+
this.errorMessage = 'Los apellidos deben tener mínimo 5 caracteres';
|
|
50
|
+
}
|
|
51
|
+
else if (this.codFormStepTwo.controls['password'].hasError('minlength')) {
|
|
52
|
+
this.errorMessage = 'La contraseña debe tener mínimo 6 caracteres';
|
|
53
|
+
}
|
|
54
|
+
else if (this.codFormStepTwo.controls['password'].value !== this.codFormStepTwo.controls['re_password'].value) {
|
|
55
|
+
this.errorMessage = 'Las contraseñas no coinciden';
|
|
56
|
+
}
|
|
57
|
+
else if (this.codFormStepTwo.controls['age'].errors) {
|
|
58
|
+
this.errorMessage = 'Fecha de nacimiento no válida';
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.errorMessage = 'Faltan campos por llenar';
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
startLocalStorageWork() {
|
|
66
|
+
this.controls.forEach(control => {
|
|
67
|
+
let localStorageValue = this.readAndWriteLS(2, control.name);
|
|
68
|
+
this.codFormStepTwo.controls[control.name].setValue(localStorageValue.value);
|
|
69
|
+
this.listenFormChanges(2, control.name, this.codFormStepTwo.controls[control.name].valueChanges);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
initForm() {
|
|
73
|
+
this.codFormStepTwo = this.fb.group({
|
|
74
|
+
student_address: ['', [Validators.required], []],
|
|
75
|
+
birthdate: ['', [Validators.required], []],
|
|
76
|
+
country: ['', [Validators.required], []],
|
|
77
|
+
state: ['', [Validators.required], []],
|
|
78
|
+
city: ['', [Validators.required], []],
|
|
79
|
+
student_id_card_type: ['', [Validators.required], []],
|
|
80
|
+
student_id_card: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],
|
|
81
|
+
student_last_name: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(32)]],
|
|
82
|
+
student_name: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(32)]],
|
|
83
|
+
student_email: ['', [Validators.required, Validators.email]],
|
|
84
|
+
nickname: ['', [Validators.required]],
|
|
85
|
+
gender: ['', [Validators.required]],
|
|
86
|
+
age: ['', [Validators.required], []],
|
|
87
|
+
student_occupation: ['', [Validators.required]],
|
|
88
|
+
stratum: ['', [Validators.required]],
|
|
89
|
+
grade: ['', [Validators.required]],
|
|
90
|
+
civil_status: ['', [Validators.required]],
|
|
91
|
+
student_phone_indicative: ['', [Validators.required], []],
|
|
92
|
+
student_phone_number: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(15)]],
|
|
93
|
+
password: ['', [Validators.required, Validators.minLength(6)]],
|
|
94
|
+
re_password: ['', [Validators.required, Validators.minLength(6)]],
|
|
95
|
+
});
|
|
96
|
+
// Calcular edad y setear valor
|
|
97
|
+
this.codFormStepTwo.controls['birthdate'].valueChanges.subscribe({
|
|
98
|
+
next: (change) => {
|
|
99
|
+
let today = new Date();
|
|
100
|
+
let birthday = new Date(change);
|
|
101
|
+
let age = today.getFullYear() - birthday.getFullYear();
|
|
102
|
+
let month = today.getMonth() - birthday.getMonth();
|
|
103
|
+
if (month < 0 || (month === 0 && today.getDate() < birthday.getDate())) {
|
|
104
|
+
age--;
|
|
105
|
+
}
|
|
106
|
+
if (age < 3) {
|
|
107
|
+
this.errorMessage = 'Fecha de nacimiento no válida';
|
|
108
|
+
this.codFormStepTwo.controls['birthdate'].setErrors({
|
|
109
|
+
invalidAge: true
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.codFormStepTwo.controls['birthdate'].setErrors(null);
|
|
114
|
+
}
|
|
115
|
+
this.codFormStepTwo.controls['age'].setValue(age);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
getParameters() {
|
|
120
|
+
this.parameterService.getCardTypes('col').subscribe((response) => {
|
|
121
|
+
this.idTypes = response.data;
|
|
122
|
+
});
|
|
123
|
+
this.parameterService.getIndicatives().subscribe((response) => {
|
|
124
|
+
this.indicatives = response.data;
|
|
125
|
+
});
|
|
126
|
+
this.parameterService.getCountries().subscribe((response) => {
|
|
127
|
+
this.countries = response.data;
|
|
128
|
+
});
|
|
129
|
+
this.parameterService.getStratums().subscribe((response) => {
|
|
130
|
+
this.stratums = response.data;
|
|
131
|
+
});
|
|
132
|
+
this.parameterService.getCivilStatus().subscribe((response) => {
|
|
133
|
+
this.civilStatus = response.data;
|
|
134
|
+
});
|
|
135
|
+
this.parameterService.getGenders().pipe(map((response) => response.data))
|
|
136
|
+
.subscribe((genders) => {
|
|
137
|
+
genders.forEach(gender => {
|
|
138
|
+
let genderItem = {
|
|
139
|
+
code: gender.code,
|
|
140
|
+
name: gender.name_spanish
|
|
141
|
+
};
|
|
142
|
+
this.genders.push(genderItem);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
sendForm() {
|
|
147
|
+
this.codFormStepTwo.markAllAsTouched();
|
|
148
|
+
if (this.codFormStepTwo.invalid)
|
|
149
|
+
return;
|
|
150
|
+
// Movernos al paso 3
|
|
151
|
+
this.changeStepEvent.emit(2);
|
|
152
|
+
}
|
|
153
|
+
getState(state) {
|
|
154
|
+
this.getCity(state);
|
|
155
|
+
}
|
|
156
|
+
getCity(state) {
|
|
157
|
+
this.parameterService.getCitiesByState(state).subscribe((response) => {
|
|
158
|
+
this.cities = response.data;
|
|
159
|
+
this.selectCity(this.localStorageCOD.getCodFormData(2, 'city'));
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// Eventos de los select
|
|
163
|
+
selectCountry(country) {
|
|
164
|
+
if (country !== 'País de residencia') {
|
|
165
|
+
this.codFormStepTwo.controls['country'].setValue(country);
|
|
166
|
+
let iso = '';
|
|
167
|
+
if (country === '1')
|
|
168
|
+
iso = 'null';
|
|
169
|
+
if (country === '2')
|
|
170
|
+
iso = 'col';
|
|
171
|
+
if (country === '3')
|
|
172
|
+
iso = 'ven';
|
|
173
|
+
if (country === '4')
|
|
174
|
+
iso = 'usa';
|
|
175
|
+
this.parameterService.getStatesByCountry(iso).subscribe((response) => {
|
|
176
|
+
this.states = response.data;
|
|
177
|
+
this.selectState(this.localStorageCOD.getCodFormData(2, 'state'));
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
this.codFormStepTwo.controls['country'].setValue(null);
|
|
182
|
+
}
|
|
183
|
+
this.countrySelected = country;
|
|
184
|
+
}
|
|
185
|
+
selectState(state) {
|
|
186
|
+
if (state !== 'Departamento o estado') {
|
|
187
|
+
this.codFormStepTwo.controls['state'].setValue(state);
|
|
188
|
+
this.getState(state);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
this.codFormStepTwo.controls['state'].setValue(null);
|
|
192
|
+
this.codFormStepTwo.controls['city'].setValue(null);
|
|
193
|
+
this.cities = [];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
selectCity(city) {
|
|
197
|
+
if (city !== 'Ciudad de residencia') {
|
|
198
|
+
this.codFormStepTwo.controls['city'].setValue(city);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
this.codFormStepTwo.controls['city'].setValue(null);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
selectIdType(idType) {
|
|
205
|
+
if (idType !== 'Tipo de documento') {
|
|
206
|
+
this.codFormStepTwo.controls['student_id_card_type'].setValue(idType);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
this.codFormStepTwo.controls['student_id_card_type'].setValue(null);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
selectIndicatives(indicative) {
|
|
213
|
+
if (indicative !== 'Indicativo') {
|
|
214
|
+
this.codFormStepTwo.controls['student_phone_indicative'].setValue(indicative);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
this.codFormStepTwo.controls['student_phone_indicative'].setValue(null);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
selectGender(gender) {
|
|
221
|
+
if (gender !== 'Género') {
|
|
222
|
+
this.codFormStepTwo.controls['gender'].setValue(gender);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
this.codFormStepTwo.controls['gender'].setValue(null);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
selectStratum(stratum) {
|
|
229
|
+
if (stratum !== 'Estrato') {
|
|
230
|
+
this.codFormStepTwo.controls['stratum'].setValue(stratum);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
this.codFormStepTwo.controls['stratum'].setValue(null);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
selectCivilStatus(civil_status) {
|
|
237
|
+
if (civil_status !== 'Estado civil') {
|
|
238
|
+
this.codFormStepTwo.controls['civil_status'].setValue(civil_status);
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
this.codFormStepTwo.controls['civil_status'].setValue(null);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
CodFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CodFormStepTwoComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ParameterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
246
|
+
CodFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CodFormStepTwoComponent, selector: "app-cod-form-step-two", inputs: { initialData: "initialData" }, outputs: { changeStepEvent: "changeStepEvent" }, usesInheritance: true, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepTwo.controls['student_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['country'].value\"\n [control]=\"codFormStepTwo.controls['country']\"\n [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codFormStepTwo.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['city'].value\"\n [control]=\"codFormStepTwo.controls['city']\"\n [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepTwo.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n [control]=\"codFormStepTwo.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n [control]=\"codFormStepTwo.controls['stratum']\"\n [data]=\"stratums\"\n (eventSelect)=\"selectStratum($event)\"\n [defaultText]=\"'Estrato'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Grado'\"\n [control]=\"codFormStepTwo.controls['grade']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codFormStepTwo.controls['student_email']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['re_password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepTwo.controls['student_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codFormStepTwo.controls['student_id_card']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['state'].value\"\n [control]=\"codFormStepTwo.controls['state']\"\n [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_address']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Edad'\"\n [control]=\"codFormStepTwo.controls['age']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nickname'\"\n [control]=\"codFormStepTwo.controls['nickname']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_occupation']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n [control]=\"codFormStepTwo.controls['civil_status']\"\n [data]=\"civilStatus\"\n (eventSelect)=\"selectCivilStatus($event)\"\n [defaultText]=\"'Estado civil'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codFormStepTwo.controls['student_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.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-sm\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [""], components: [{ type: i3.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal"], outputs: ["dateSelected"] }, { type: i4.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }] });
|
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CodFormStepTwoComponent, decorators: [{
|
|
248
|
+
type: Component,
|
|
249
|
+
args: [{ selector: 'app-cod-form-step-two', template: "<form autocomplete=\"off\" [formGroup]=\"codFormStepTwo\" class=\"grid\">\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codFormStepTwo.controls['student_name']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_id_card_type'].value\"\n [control]=\"codFormStepTwo.controls['student_id_card_type']\"\n [selectCode]=\"codFormStepTwo.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codFormStepTwo.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['country'].value\"\n [control]=\"codFormStepTwo.controls['country']\"\n [selectCode]=\"codFormStepTwo.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codFormStepTwo.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['city'].value\"\n [control]=\"codFormStepTwo.controls['city']\"\n [selectCode]=\"codFormStepTwo.controls['city'].value === null ? 'Ciudad de residencia' : codFormStepTwo.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codFormStepTwo.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['gender'].value\"\n [control]=\"codFormStepTwo.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['stratum'].value\"\n [control]=\"codFormStepTwo.controls['stratum']\"\n [data]=\"stratums\"\n (eventSelect)=\"selectStratum($event)\"\n [defaultText]=\"'Estrato'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Grado'\"\n [control]=\"codFormStepTwo.controls['grade']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['student_phone_indicative'].value\"\n [control]=\"codFormStepTwo.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codFormStepTwo.controls['student_email']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['re_password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codFormStepTwo.controls['student_last_name']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codFormStepTwo.controls['student_id_card']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['state'].value\"\n [control]=\"codFormStepTwo.controls['state']\"\n [selectCode]=\"codFormStepTwo.controls['state'].value === null ? 'Departamento o estado' : codFormStepTwo.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_address']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Edad'\"\n [control]=\"codFormStepTwo.controls['age']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nickname'\"\n [control]=\"codFormStepTwo.controls['nickname']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"codFormStepTwo.controls['student_occupation']\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"codFormStepTwo.controls['civil_status'].value\"\n [control]=\"codFormStepTwo.controls['civil_status']\"\n [data]=\"civilStatus\"\n (eventSelect)=\"selectCivilStatus($event)\"\n [defaultText]=\"'Estado civil'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codFormStepTwo.controls['student_phone_number']\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"codFormStepTwo.controls['password']\"\n ></ipt-input>\n </div>\n\n <div class=\"col-12\"></div>\n\n</form>\n\n<div class=\"flex mt-3 align-items-center gap-3\">\n <span *ngIf=\"codFormStepTwo.invalid && codFormStepTwo.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-sm\" (click)=\"sendForm()\" pButton label=\"Siguiente\" icon=\"pi pi-arrow-right\"></button>\n</div>\n", styles: [""] }]
|
|
250
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ParameterService }]; }, propDecorators: { initialData: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], changeStepEvent: [{
|
|
253
|
+
type: Output
|
|
254
|
+
}] } });
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2QtZm9ybS1zdGVwLXR3by5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBMEIsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFakYsT0FBTyxFQUFFLEdBQUcsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBTzlFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBb0J2RCxZQUNVLEVBQWUsRUFDZixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCbEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBT3ZELGlCQUFZLEdBQVcsMkJBQTJCLENBQUM7UUFDbkQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUkzQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBR3BCLDBCQUEwQjtRQUMxQixhQUFRLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFP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QUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDOztvSEExUFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNktDWnBDLHFuTEFnSkE7MkZEcElhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUI7aUlBS3hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RGb3JtU3RlcHMsIGxvY2FsU3RvcmFnZVZhbHVlcyB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvZC1mb3JtLXN0ZXBzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1mb3JtLXN0ZXAtdHdvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1TdGVwVHdvQ29tcG9uZW50IGV4dGVuZHMgQ29kRm9ybVN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaW5pdGlhbERhdGE/OiBhbnk7XG4gIEBPdXRwdXQoKSBjaGFuZ2VTdGVwRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBjb2RGb3JtU3RlcFR3byE6IEZvcm1Hcm91cDtcbiAgY291bnRyeVNlbGVjdGVkOiBhbnk7XG4gIGNvdW50cmllczogYW55O1xuICBzdGF0ZXM6IGFueTtcbiAgY2l0aWVzOiBhbnk7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hci4nO1xuICBoYXNFcnJvcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaWRUeXBlczogYW55O1xuICBpbmRpY2F0aXZlczogYW55O1xuICBjaXZpbFN0YXR1czogYW55O1xuICBnZW5kZXJzOiBhbnlbXSA9IFtdO1xuICBzdHJhdHVtczogYW55O1xuXG4gIC8vIENvbnRyb2xzIGRlbCBmb3JtdWxhcmlvXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzFdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcGFyYW1ldGVyU2VydmljZTogUGFyYW1ldGVyU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gICAgdGhpcy52YWxpZGF0ZUVycm9ycygpXG4gICAgaWYgKHRoaXMuaW5pdGlhbERhdGEpIHRoaXMuc2V0RGF0YUZyb21QcmV2aXVzQ29kKCk7XG5cbiAgICB0aGlzLnNlbGVjdENvdW50cnkodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMiwgJ2NvdW50cnknKSk7XG4gIH1cblxuICBzZXREYXRhRnJvbVByZXZpdXNDb2QoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9uYW1lJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5uYW1lKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEubGFzdF9uYW1lKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEuaWRfY2FyZF90eXBlKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmQnXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLmlkX2NhcmQpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKHRoaXMuaW5pdGlhbERhdGEucGhvbmVfaW5kaWNhdGl2ZSk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9waG9uZV9udW1iZXInXS5zZXRWYWx1ZSh0aGlzLmluaXRpYWxEYXRhLnBob25lX251bWJlcik7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ10uc2V0VmFsdWUodGhpcy5pbml0aWFsRGF0YS5iaXJ0aGRhdGUpO1xuICB9XG5cbiAgdmFsaWRhdGVFcnJvcnMoKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMb3Mgbm9tYnJlcyBkZWJlbiB0ZW5lciBtw61uaW1vIDMgY2FyYWN0ZXJlcyc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10uaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xvcyBhcGVsbGlkb3MgZGViZW4gdGVuZXIgbcOtbmltbyA1IGNhcmFjdGVyZXMnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydwYXNzd29yZCddLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjb250cmFzZcOxYSBkZWJlIHRlbmVyIG3DrW5pbW8gNiBjYXJhY3RlcmVzJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1sncGFzc3dvcmQnXS52YWx1ZSAhPT0gdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1sncmVfcGFzc3dvcmQnXS52YWx1ZSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYXMgY29udHJhc2XDsWFzIG5vIGNvaW5jaWRlbic7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FnZSddLmVycm9ycykge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGZWNoYSBkZSBuYWNpbWllbnRvIG5vIHbDoWxpZGEnO1xuICAgICAgfVxuICAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGYWx0YW4gY2FtcG9zIHBvciBsbGVuYXInO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXMgPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDIsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcygyLCBjb250cm9sLm5hbWUsIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbY29udHJvbC5uYW1lXS52YWx1ZUNoYW5nZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3byA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgc3R1ZGVudF9hZGRyZXNzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgYmlydGhkYXRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgY291bnRyeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIHN0YXRlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgY2l0eTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZF90eXBlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkOiBbICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwKV1dLFxuICAgICAgc3R1ZGVudF9sYXN0X25hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDUpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgzMildXSxcbiAgICAgIHN0dWRlbnRfbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyKV1dLFxuICAgICAgc3R1ZGVudF9lbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxuICAgICAgbmlja25hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGdlbmRlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgYWdlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSwgW11dLFxuICAgICAgc3R1ZGVudF9vY2N1cGF0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBzdHJhdHVtOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBncmFkZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY2l2aWxfc3RhdHVzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxNSldXSxcbiAgICAgIHBhc3N3b3JkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KV1dLFxuICAgICAgcmVfcGFzc3dvcmQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDYpXV0sXG4gICAgfSk7XG5cbiAgICAvLyBDYWxjdWxhciBlZGFkIHkgc2V0ZWFyIHZhbG9yXG4gICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoY2hhbmdlKSA9PiB7XG4gICAgICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGxldCBiaXJ0aGRheSA9IG5ldyBEYXRlKGNoYW5nZSk7XG4gICAgICAgIGxldCBhZ2UgPSB0b2RheS5nZXRGdWxsWWVhcigpIC0gYmlydGhkYXkuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgbGV0IG1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKSAtIGJpcnRoZGF5LmdldE1vbnRoKCk7XG5cbiAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCAobW9udGggPT09IDAgJiYgdG9kYXkuZ2V0RGF0ZSgpIDwgYmlydGhkYXkuZ2V0RGF0ZSgpKSkge1xuICAgICAgICAgIGFnZS0tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFnZSA8IDMpIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdGZWNoYSBkZSBuYWNpbWllbnRvIG5vIHbDoWxpZGEnXG4gICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snYmlydGhkYXRlJ10uc2V0RXJyb3JzKHtcbiAgICAgICAgICAgIGludmFsaWRBZ2U6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FnZSddLnNldFZhbHVlKGFnZSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENhcmRUeXBlcygnY29sJykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5pZFR5cGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0SW5kaWNhdGl2ZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmluZGljYXRpdmVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5jb3VudHJpZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRTdHJhdHVtcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuc3RyYXR1bXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDaXZpbFN0YXR1cygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY2l2aWxTdGF0dXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRHZW5kZXJzKCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICApXG4gICAgLnN1YnNjcmliZSgoZ2VuZGVyczogYW55W10pID0+IHtcbiAgICAgIGdlbmRlcnMuZm9yRWFjaChnZW5kZXIgPT4ge1xuICAgICAgICBsZXQgZ2VuZGVySXRlbSA9IHtcbiAgICAgICAgICBjb2RlOiBnZW5kZXIuY29kZSxcbiAgICAgICAgICBuYW1lOiBnZW5kZXIubmFtZV9zcGFuaXNoXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nZW5kZXJzLnB1c2goZ2VuZGVySXRlbSlcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBUd28ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwVHdvLmludmFsaWQpIHJldHVybjtcblxuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gM1xuICAgIHRoaXMuY2hhbmdlU3RlcEV2ZW50LmVtaXQoMik7XG4gIH1cblxuICBnZXRTdGF0ZShzdGF0ZTogYW55KSB7XG4gICAgdGhpcy5nZXRDaXR5KHN0YXRlKTtcbiAgfVxuXG4gIGdldENpdHkoc3RhdGU6IGFueSkge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDaXRpZXNCeVN0YXRlKHN0YXRlKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmNpdGllcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLnNlbGVjdENpdHkodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMiwgJ2NpdHknKSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBFdmVudG9zIGRlIGxvcyBzZWxlY3RcbiAgc2VsZWN0Q291bnRyeShjb3VudHJ5OiBhbnkpIHtcbiAgICBpZiAoY291bnRyeSAhPT0gJ1Bhw61zIGRlIHJlc2lkZW5jaWEnKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUoY291bnRyeSk7XG4gICAgICBsZXQgaXNvID0gJyc7XG4gICAgICBpZiAoY291bnRyeSA9PT0gJzEnKSBpc28gPSAnbnVsbCc7XG4gICAgICBpZiAoY291bnRyeSA9PT0gJzInKSBpc28gPSAnY29sJztcbiAgICAgIGlmIChjb3VudHJ5ID09PSAnMycpIGlzbyA9ICd2ZW4nO1xuICAgICAgaWYgKGNvdW50cnkgPT09ICc0JykgaXNvID0gJ3VzYSc7XG4gICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0U3RhdGVzQnlDb3VudHJ5KGlzbykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMuc2VsZWN0U3RhdGUodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMiwgJ3N0YXRlJykpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gICAgdGhpcy5jb3VudHJ5U2VsZWN0ZWQgPSBjb3VudHJ5O1xuICB9XG5cbiAgc2VsZWN0U3RhdGUoc3RhdGU6IGFueSkge1xuICAgIGlmIChzdGF0ZSAhPT0gJ0RlcGFydGFtZW50byBvIGVzdGFkbycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUoc3RhdGUpO1xuICAgICAgdGhpcy5nZXRTdGF0ZShzdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNpdGllcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENpdHkoY2l0eTogYW55KSB7XG4gICAgaWYgKGNpdHkgIT09ICdDaXVkYWQgZGUgcmVzaWRlbmNpYScpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS5zZXRWYWx1ZShjaXR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdElkVHlwZShpZFR5cGU6IGFueSkge1xuICAgIGlmIChpZFR5cGUgIT09ICdUaXBvIGRlIGRvY3VtZW50bycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10uc2V0VmFsdWUoaWRUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RJbmRpY2F0aXZlcyhpbmRpY2F0aXZlOiBhbnkpIHtcbiAgICBpZiAoaW5kaWNhdGl2ZSAhPT0gJ0luZGljYXRpdm8nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS5zZXRWYWx1ZShpbmRpY2F0aXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0R2VuZGVyKGdlbmRlcjogYW55KSB7XG4gICAgaWYgKGdlbmRlciAhPT0gJ0fDqW5lcm8nKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydnZW5kZXInXS5zZXRWYWx1ZShnZW5kZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydnZW5kZXInXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RTdHJhdHVtKHN0cmF0dW06IGFueSkge1xuICAgIGlmIChzdHJhdHVtICE9PSAnRXN0cmF0bycpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0cmF0dW0nXS5zZXRWYWx1ZShzdHJhdHVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RyYXR1bSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENpdmlsU3RhdHVzKGNpdmlsX3N0YXR1czogYW55KSB7XG4gICAgaWYgKGNpdmlsX3N0YXR1cyAhPT0gJ0VzdGFkbyBjaXZpbCcpIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdmlsX3N0YXR1cyddLnNldFZhbHVlKGNpdmlsX3N0YXR1cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdmlsX3N0YXR1cyddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJjb2RGb3JtU3RlcFR3b1wiIGNsYXNzPVwiZ3JpZFwiPlxuXG4gIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ05vbWJyZXMnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X25hbWUnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnZhbHVlID09PSBudWxsID8gJ1RpcG8gZGUgZG9jdW1lbnRvJyA6IGNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnZhbHVlXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgW2RhdGFdPVwiaWRUeXBlc1wiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0SWRUeXBlKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidUaXBvIGRlIGRvY3VtZW50bydcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdW50cnknXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY291bnRyeSddXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWUgPT09IG51bGwgPyAnUGHDrXMgZGUgcmVzaWRlbmNpYScgOiBjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY291bnRyeSddLnZhbHVlXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDb3VudHJ5KCRldmVudClcIlxuICAgICAgW2RhdGFdPVwiY291bnRyaWVzXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInUGHDrXMgZGUgcmVzaWRlbmNpYSdcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l0eSddXCJcbiAgICAgIFtzZWxlY3RDb2RlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydjaXR5J10udmFsdWUgPT09IG51bGwgPyAnQ2l1ZGFkIGRlIHJlc2lkZW5jaWEnIDogY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdHknXS52YWx1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q2l0eSgkZXZlbnQpXCJcbiAgICAgIFtkYXRhXT1cImNpdGllc1wiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0NpdWRhZCBkZSByZXNpZGVuY2lhJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ2RhdGUnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydiaXJ0aGRhdGUnXVwiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0ZlY2hhIGRlIG5hY2ltaWVudG8nXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydnZW5kZXInXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snZ2VuZGVyJ11cIlxuICAgICAgW2RhdGFdPVwiZ2VuZGVyc1wiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0R2VuZGVyKCRldmVudClcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidHw6luZXJvJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RyYXR1bSddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHJhdHVtJ11cIlxuICAgICAgW2RhdGFdPVwic3RyYXR1bXNcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdFN0cmF0dW0oJGV2ZW50KVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0VzdHJhdG8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInR3JhZG8nXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydncmFkZSddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1zZWxlY3RcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnZhbHVlXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXVwiXG4gICAgICBbZGF0YV09XCJpbmRpY2F0aXZlc1wiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0SW5kaWNhdGl2ZXMoJGV2ZW50KVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ0luZGljYXRpdm8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ2VtYWlsJ1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0NvcnJlbyBlbGVjdHLDs25pY28nXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2VtYWlsJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidSZXBldGlyIGNvbnRyYXNlw7FhJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1sncmVfcGFzc3dvcmQnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidBcGVsbGlkb3MnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ07Dum1lcm8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXVwiXG4gICAgICBbc2VsZWN0Q29kZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3RhdGUnXS52YWx1ZSA9PT0gbnVsbCA/ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nIDogY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0YXRlJ10udmFsdWVcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0U3RhdGUoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJzdGF0ZXNcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidEZXBhcnRhbWVudG8gbyBlc3RhZG8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInRGlyZWNjacOzbidcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ3N0dWRlbnRfYWRkcmVzcyddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCInbnVtYmVyJ1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0VkYWQnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydhZ2UnXVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInTmlja25hbWUnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWyduaWNrbmFtZSddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidPY3VwYWNpw7NuJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snc3R1ZGVudF9vY2N1cGF0aW9uJ11cIlxuICAgID48L2lwdC1pbnB1dD5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcFR3by5jb250cm9sc1snY2l2aWxfc3RhdHVzJ10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NpdmlsX3N0YXR1cyddXCJcbiAgICAgIFtkYXRhXT1cImNpdmlsU3RhdHVzXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDaXZpbFN0YXR1cygkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInRXN0YWRvIGNpdmlsJ1wiXG4gICAgPjwvaXB0LXNlbGVjdD5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbaW5wdXRUeXBlXT1cIidudW1iZXInXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInTsO6bWVybyBkZSB0ZWzDqWZvbm8nXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW2lucHV0VHlwZV09XCIncGFzc3dvcmQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInQ29udHJhc2XDsWEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwVHdvLmNvbnRyb2xzWydwYXNzd29yZCddXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj48L2Rpdj5cblxuPC9mb3JtPlxuXG48ZGl2IGNsYXNzPVwiZmxleCBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICA8c3BhbiAqbmdJZj1cImNvZEZvcm1TdGVwVHdvLmludmFsaWQgJiYgY29kRm9ybVN0ZXBUd28udG91Y2hlZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtdC0xIHB5LTIgYmctcmVkLTEwMCB3LWZ1bGwgYm9yZGVyLXJvdW5kLXhsXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPlxuICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cIm1sLWF1dG8gcC1idXR0b24tc21cIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gbGFiZWw9XCJTaWd1aWVudGVcIiBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cbjwvZGl2PlxuIl19
|