iptdevs-design-system 3.1.970 → 3.1.971

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.
@@ -1890,10 +1890,11 @@ class updateUserFormComponent {
1890
1890
  }
1891
1891
  ngOnInit() {
1892
1892
  this.getParameters();
1893
+ this.trackIdTypeChanges();
1893
1894
  }
1894
1895
  ngOnChanges(changes) {
1895
1896
  if (changes['visibleModal'] && changes['visibleModal'].currentValue) {
1896
- console.log("entro a getParameters por visible modal, donde el change es:", changes['visibleModal']);
1897
+ // console.log("entro a getParameters por visible modal, donde el change es:", changes['visibleModal']);
1897
1898
  this.initializeForm();
1898
1899
  this.setJustifyOptions();
1899
1900
  this.trackIdTypeChanges();
@@ -2128,7 +2129,7 @@ class updateUserFormComponent {
2128
2129
  this.initialFormValue = Object.assign({}, this.updateUserForm.value);
2129
2130
  this.updateIdCardValidators(this.DataStudent.id_card_type);
2130
2131
  if (formValue.country) {
2131
- console.log("en populateForm se envio dato para setearse country");
2132
+ // console.log("en populateForm se envio dato para setearse country");
2132
2133
  this.countries = (_x = this.parametersAll) === null || _x === void 0 ? void 0 : _x.country;
2133
2134
  this.selectCountry((_y = this.DataStudent.city) === null || _y === void 0 ? void 0 : _y.country);
2134
2135
  }
@@ -2202,6 +2203,7 @@ class updateUserFormComponent {
2202
2203
  ]);
2203
2204
  }
2204
2205
  idCardControl.updateValueAndValidity();
2206
+ console.log(idCardControl.updateValueAndValidity(), "llegue al final");
2205
2207
  }
2206
2208
  selectRol(role) {
2207
2209
  var _a, _b;
@@ -2244,7 +2246,7 @@ class updateUserFormComponent {
2244
2246
  const countryNumber = typeof country === 'string' ? parseInt(country, 10) : country;
2245
2247
  if (country != null) {
2246
2248
  this.updateUserForm.controls['country'].setValue(countryNumber);
2247
- console.log("se seteo country con el valor que entro en selectCountry");
2249
+ // console.log("se seteo country con el valor que entro en selectCountry");
2248
2250
  if (this.parametersAll && ((_a = this.parametersAll) === null || _a === void 0 ? void 0 : _a.State)) {
2249
2251
  this.states = this.parametersAll.State.filter((course) => {
2250
2252
  const state = typeof course.country === 'string'
@@ -2510,10 +2512,10 @@ class updateUserFormComponent {
2510
2512
  }
2511
2513
  }
2512
2514
  updateUserFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: updateUserFormComponent, deps: [{ token: i1$1.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: ParameterService }, { token: BaseService }, { token: UserService }], target: i0.ɵɵFactoryTarget.Component });
2513
- updateUserFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: updateUserFormComponent, selector: "ipt-update-user-form", inputs: { DataStudent: "DataStudent", visibleModal: "visibleModal" }, outputs: { closeModalIS: "closeModalIS", userUpdatedEvent: "userUpdatedEvent" }, usesOnChanges: true, ngImport: i0, template: "<main *ngIf=\"visibleModal\">\n <div class=\"modal_container\">\n <div class=\"header_modal yellow-300\">\n <h1>Actualizar usuario</h1>\n <button (click)=\"closeTable()\">x</button>\n </div>\n <div class=\"grid_container\">\n <div>\n <form *ngIf=\"updateUserForm\" autocomplete=\"off\" [formGroup]=\"updateUserForm\">\n <!-- User Information Section -->\n <div class=\"section-header\">\n <h2>Informaci\u00F3n del usuario</h2>\n </div>\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['name']\"\n [validateText]=\"updateUserForm.controls['name'].hasError('required') ? 'Debe ingresar el nombre' :\n updateUserForm.controls['name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['last_name']\"\n [validateText]=\"updateUserForm.controls['last_name'].hasError('required') ? 'Debe ingresar los apellidos' :\n updateUserForm.controls['last_name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['last_name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['last_name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['last_name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['last_name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['email']\"\n [validateText]=\"updateUserForm.controls['email'].hasError('required') ? 'Debe ingresar un correo v\u00E1lido' :\n updateUserForm.controls['email'].hasError('maxlength') ? 'M\u00E1ximo 300 caracteres' :\n updateUserForm.controls['email'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email IPT'\"\n [control]=\"updateUserForm.controls['email_ipt']\"\n [validateText]=\"updateUserForm.controls['email_ipt'].hasError('required') ? 'Debe ingresar un correo IPT v\u00E1lido' :\n updateUserForm.controls['email_ipt'].hasError('maxlength') ? 'M\u00E1ximo 255 caracteres' :\n updateUserForm.controls['email_ipt'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email_ipt'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email_ipt'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo IPT v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Horas de servicio'\"\n [control]=\"updateUserForm.controls['service_hour']\"\n [validateText]=\"'Debe ingresar las horas de servicio'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Rol'\"\n [control]=\"updateUserForm.controls['role']\"\n [validateText]=\"'Rol requerido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['gender'].value\"\n [control]=\"updateUserForm.controls['gender']\"\n [selectCode]=\"updateUserForm.controls['gender'].value === null ? 'Seleccione g\u00E9nero' : (updateUserForm.controls['gender'].value | genderDisplay)\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Seleccione g\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['phone_indicative'].value\"\n [control]=\"updateUserForm.controls['phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['id_card_type'].value\"\n [control]=\"updateUserForm.controls['id_card_type']\"\n [selectCode]=\"updateUserForm.controls['id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'text' : 'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['id_card']\"\n [validateText]=\"updateUserForm.controls['id_card'].hasError('required') ? 'Debe ingresar el n\u00FAmero de documento' :\n updateUserForm.controls['id_card'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['id_card'].hasError('maxlength') ? 'M\u00E1ximo 20 caracteres' :\n updateUserForm.controls['id_card'].hasError('pattern') ? (updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'Solo letras y n\u00FAmeros permitidos' : 'Solo n\u00FAmeros permitidos') :\n 'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['country'].value\"\n [control]=\"updateUserForm.controls['country']\"\n [selectCode]=\"updateUserForm.controls['country'].value === null ? 'Pa\u00EDs de residencia' : updateUserForm.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['state'].value\"\n [control]=\"updateUserForm.controls['state']\"\n [selectCode]=\"updateUserForm.controls['state'].value === null ? 'Departamento o estado' : updateUserForm.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['city'].value\"\n [control]=\"updateUserForm.controls['city']\"\n [selectCode]=\"updateUserForm.controls['city'].value === null ? 'Ciudad de residencia' : updateUserForm.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div class=\"card-status\">\n <span>Estado</span>\n <p-selectButton \n [options]=\"justifyOptions\" \n formControlName=\"status\" \n optionLabel=\"name\" \n optionValue=\"code\"\n [disabled]=\"isStudent\">\n </p-selectButton>\n </div>\n <div class=\"field\">\n <p-checkbox\n formControlName=\"changePassword\"\n label=\"Cambio de contrase\u00F1a\"\n [binary]=\"true\"\n ></p-checkbox>\n </div>\n </div>\n <div class=\"form-grid\" *ngIf=\"updateUserForm.controls['changePassword'].value\">\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['password']\"\n [validateText]=\"updateUserForm.controls['password'].hasError('required') ? 'La contrase\u00F1a es requerida' :\n updateUserForm.controls['password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n 'Ingrese una contrase\u00F1a v\u00E1lida'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['re_password']\"\n [validateText]=\"updateUserForm.controls['re_password'].hasError('required') ? 'Debe repetir la contrase\u00F1a' :\n updateUserForm.controls['re_password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['re_password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.hasError('mismatch') ? 'Las contrase\u00F1as no coinciden' :\n 'Repita la contrase\u00F1a'\"\n ></ipt-input>\n </div>\n\n <!-- Mensaje adicional para el error de mismatch (opcional, si quieres mostrarlo por separado) -->\n\n <div *ngIf=\"updateUserForm.hasError('mismatch') && updateUserForm.controls['changePassword'].value\" class=\"error-message\">\n <small >Las contrase\u00F1as no coinciden</small>\n </div>\n <!-- Parent Information Section -->\n <div class=\"section-header\" *ngIf=\"DataStudent?.cods\">\n <h2>Informaci\u00F3n del acudiente</h2>\n </div>\n <div *ngIf=\"DataStudent?.cods\">\n <div *ngIf=\"showParentSection; else noParentMessage\">\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['parent_name']\"\n [validateText]=\"'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['parent_last_name']\"\n [validateText]=\"'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"updateUserForm.controls['parent_occupation']\"\n [validateText]=\"'Debe ingresar la ocupaci\u00F3n'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['parent_email']\"\n [validateText]=\"'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_id_card_type'].value\"\n [control]=\"updateUserForm.controls['parent_id_card_type']\"\n [selectCode]=\"updateUserForm.controls['parent_id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['parent_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('parent_id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['parent_id_card']\"\n [validateText]=\"'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_phone_indicative'].value\"\n [control]=\"updateUserForm.controls['parent_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('parent_phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['parent_phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n de oficina'\"\n [control]=\"updateUserForm.controls['parent_office_adrress']\"\n [validateText]=\"'Debe ingresar la direcci\u00F3n'\"\n ></ipt-input>\n </div>\n </div>\n <ng-template #noParentMessage>\n <div class=\"no-parent-message\">\n <p>Sin acudiente</p>\n </div>\n </ng-template>\n </div>\n\n <div class=\"buttons-container\">\n <div class=\"buttons-container-inner\">\n <ipt-button\n [buttonType]=\"'button'\"\n [label]=\"'Cerrar'\"\n [primary]=\"false\"\n [isEnabled]=\"true\"\n (onClick)=\"closeTable()\"\n ></ipt-button>\n\n <ipt-button\n [label]=\"'Actualizar'\"\n [isEnabled]=\"!loader && updateUserForm.valid && !updateUserForm.hasError('mismatch') && hasFormChanged()\"\n (onClick)=\"updateUser()\"\n [primary]=\"true\"\n ></ipt-button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</main>", styles: ["@media screen and (min-width: 320px){main{background:rgba(0,0,0,.472);color:#fff;position:fixed;top:0;left:0;height:100vh;width:100vw;transition:all .5s}main .modal_container{width:90%;height:-moz-fit-content;height:fit-content;max-height:90vh;overflow-y:auto;position:fixed;inset:0;margin:auto;background-color:#fff;border-radius:5px}.header_modal{display:flex;padding:15px 15px 0;gap:1rem;align-items:center}.header_modal h1{padding:.5rem;background-color:#1c77f7;color:#fff;width:100%;border-radius:10px;font-size:1.25rem;font-weight:700}.header_modal button{margin-left:auto;font-size:26px;padding:1.2rem;font-weight:200;color:#6c7f7d;display:flex;width:25px;height:25px;align-items:center;justify-content:center;transition:50ms;background-color:transparent;border:none}.header_modal button:hover{cursor:pointer;border-radius:50%;background-color:#d4d4d4}.grid_container{display:grid;grid-template-columns:1fr;padding:0 15px}form{display:grid;grid-template-columns:1fr;gap:.25rem;justify-content:center;padding:0 1rem}.section-header{margin:1.5rem 0 .5rem;border-bottom:2px solid #1c77f7}.section-header h2{font-size:1.2rem;color:#1c77f7;font-weight:600;margin-bottom:.5rem}.form-grid{display:grid;grid-template-columns:1fr;gap:0px .25rem}.buttons-container{margin-top:2rem;margin-bottom:2rem;display:flex;justify-content:flex-end;align-items:center;flex-direction:row}.buttons-container-inner{gap:1rem;width:auto;display:flex}.user-type-image{display:none}.no-parent-message{padding:1rem;text-align:center;color:#666;font-size:1rem;font-weight:500;background-color:#f8f9fa;border-radius:.5rem;margin-top:.5rem}}@media screen and (min-width: 768px){.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0px 1rem}}@media screen and (min-width: 1366px){form{padding:0}}.field{margin-top:15px;height:1px;max-width:70%;font-family:Poppins,sans-serif;color:#000;font-size:.875rem}.error-message{color:red;font-size:12px;margin-top:5px}:host ::ng-deep .p-selectbutton{display:flex;flex-wrap:wrap;justify-content:center;width:100%;min-width:10rem;margin-top:1rem}:host ::ng-deep .p-selectbutton .p-button{padding:.5rem;font-size:.875rem;height:30px}:host ::ng-deep .p-buttonset .p-button:first-of-type{height:30px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "tabindex", "multiple", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey"], outputs: ["onOptionClick", "onChange"] }, { kind: "component", type: i7.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }, { kind: "component", type: InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "label", "control"], outputs: ["eventSelect"] }, { kind: "pipe", type: GenderDisplayPipe, name: "genderDisplay" }] });
2515
+ updateUserFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: updateUserFormComponent, selector: "ipt-update-user-form", inputs: { DataStudent: "DataStudent", visibleModal: "visibleModal" }, outputs: { closeModalIS: "closeModalIS", userUpdatedEvent: "userUpdatedEvent" }, usesOnChanges: true, ngImport: i0, template: "<main *ngIf=\"visibleModal\">\n <div class=\"modal_container\">\n <div class=\"header_modal yellow-300\">\n <h1>Actualizar usuario</h1>\n <button (click)=\"closeTable()\">x</button>\n </div>\n <div>\n <pre>{{ updateUserForm.value | json }}</pre>\n <div>\n <pre>{{ updateUserForm.valid | json }}</pre>\n </div>\n</div>\n <div class=\"grid_container\">\n <div>\n <form *ngIf=\"updateUserForm\" autocomplete=\"off\" [formGroup]=\"updateUserForm\">\n <!-- User Information Section -->\n <div class=\"section-header\">\n <h2>Informaci\u00F3n del usuario</h2>\n </div>\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['name']\"\n [validateText]=\"updateUserForm.controls['name'].hasError('required') ? 'Debe ingresar el nombre' :\n updateUserForm.controls['name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['last_name']\"\n [validateText]=\"updateUserForm.controls['last_name'].hasError('required') ? 'Debe ingresar los apellidos' :\n updateUserForm.controls['last_name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['last_name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['last_name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['last_name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['last_name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['email']\"\n [validateText]=\"updateUserForm.controls['email'].hasError('required') ? 'Debe ingresar un correo v\u00E1lido' :\n updateUserForm.controls['email'].hasError('maxlength') ? 'M\u00E1ximo 300 caracteres' :\n updateUserForm.controls['email'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email IPT'\"\n [control]=\"updateUserForm.controls['email_ipt']\"\n [validateText]=\"updateUserForm.controls['email_ipt'].hasError('required') ? 'Debe ingresar un correo IPT v\u00E1lido' :\n updateUserForm.controls['email_ipt'].hasError('maxlength') ? 'M\u00E1ximo 255 caracteres' :\n updateUserForm.controls['email_ipt'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email_ipt'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email_ipt'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo IPT v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Horas de servicio'\"\n [control]=\"updateUserForm.controls['service_hour']\"\n [validateText]=\"'Debe ingresar las horas de servicio'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Rol'\"\n [control]=\"updateUserForm.controls['role']\"\n [validateText]=\"'Rol requerido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['gender'].value\"\n [control]=\"updateUserForm.controls['gender']\"\n [selectCode]=\"updateUserForm.controls['gender'].value === null ? 'Seleccione g\u00E9nero' : (updateUserForm.controls['gender'].value | genderDisplay)\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Seleccione g\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['phone_indicative'].value\"\n [control]=\"updateUserForm.controls['phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['id_card_type'].value\"\n [control]=\"updateUserForm.controls['id_card_type']\"\n [selectCode]=\"updateUserForm.controls['id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'text' : 'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['id_card']\"\n [validateText]=\"updateUserForm.controls['id_card'].hasError('required') ? 'Debe ingresar el n\u00FAmero de documento' :\n updateUserForm.controls['id_card'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['id_card'].hasError('maxlength') ? 'M\u00E1ximo 20 caracteres' :\n updateUserForm.controls['id_card'].hasError('pattern') ? (updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'Solo letras y n\u00FAmeros permitidos' : 'Solo n\u00FAmeros permitidos') :\n 'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['country'].value\"\n [control]=\"updateUserForm.controls['country']\"\n [selectCode]=\"updateUserForm.controls['country'].value === null ? 'Pa\u00EDs de residencia' : updateUserForm.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['state'].value\"\n [control]=\"updateUserForm.controls['state']\"\n [selectCode]=\"updateUserForm.controls['state'].value === null ? 'Departamento o estado' : updateUserForm.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['city'].value\"\n [control]=\"updateUserForm.controls['city']\"\n [selectCode]=\"updateUserForm.controls['city'].value === null ? 'Ciudad de residencia' : updateUserForm.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div class=\"card-status\">\n <span>Estado</span>\n <p-selectButton \n [options]=\"justifyOptions\" \n formControlName=\"status\" \n optionLabel=\"name\" \n optionValue=\"code\"\n [disabled]=\"isStudent\">\n </p-selectButton>\n </div>\n <div class=\"field\">\n <p-checkbox\n formControlName=\"changePassword\"\n label=\"Cambio de contrase\u00F1a\"\n [binary]=\"true\"\n ></p-checkbox>\n </div>\n </div>\n <div class=\"form-grid\" *ngIf=\"updateUserForm.controls['changePassword'].value\">\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['password']\"\n [validateText]=\"updateUserForm.controls['password'].hasError('required') ? 'La contrase\u00F1a es requerida' :\n updateUserForm.controls['password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n 'Ingrese una contrase\u00F1a v\u00E1lida'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['re_password']\"\n [validateText]=\"updateUserForm.controls['re_password'].hasError('required') ? 'Debe repetir la contrase\u00F1a' :\n updateUserForm.controls['re_password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['re_password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.hasError('mismatch') ? 'Las contrase\u00F1as no coinciden' :\n 'Repita la contrase\u00F1a'\"\n ></ipt-input>\n </div>\n\n <!-- Mensaje adicional para el error de mismatch (opcional, si quieres mostrarlo por separado) -->\n\n <div *ngIf=\"updateUserForm.hasError('mismatch') && updateUserForm.controls['changePassword'].value\" class=\"error-message\">\n <small >Las contrase\u00F1as no coinciden</small>\n </div>\n <!-- Parent Information Section -->\n <div class=\"section-header\" *ngIf=\"DataStudent?.cods\">\n <h2>Informaci\u00F3n del acudiente</h2>\n </div>\n <div *ngIf=\"DataStudent?.cods\">\n <div *ngIf=\"showParentSection; else noParentMessage\">\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['parent_name']\"\n [validateText]=\"'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['parent_last_name']\"\n [validateText]=\"'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"updateUserForm.controls['parent_occupation']\"\n [validateText]=\"'Debe ingresar la ocupaci\u00F3n'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['parent_email']\"\n [validateText]=\"'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_id_card_type'].value\"\n [control]=\"updateUserForm.controls['parent_id_card_type']\"\n [selectCode]=\"updateUserForm.controls['parent_id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['parent_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('parent_id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['parent_id_card']\"\n [validateText]=\"'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_phone_indicative'].value\"\n [control]=\"updateUserForm.controls['parent_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('parent_phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['parent_phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n de oficina'\"\n [control]=\"updateUserForm.controls['parent_office_adrress']\"\n [validateText]=\"'Debe ingresar la direcci\u00F3n'\"\n ></ipt-input>\n </div>\n </div>\n <ng-template #noParentMessage>\n <div class=\"no-parent-message\">\n <p>Sin acudiente</p>\n </div>\n </ng-template>\n </div>\n\n <div class=\"buttons-container\">\n <div class=\"buttons-container-inner\">\n <ipt-button\n [buttonType]=\"'button'\"\n [label]=\"'Cerrar'\"\n [primary]=\"false\"\n [isEnabled]=\"true\"\n (onClick)=\"closeTable()\"\n ></ipt-button>\n\n <ipt-button\n [label]=\"'Actualizar'\"\n [isEnabled]=\"!loader && updateUserForm.valid && !updateUserForm.hasError('mismatch') && hasFormChanged()\"\n (onClick)=\"updateUser()\"\n [primary]=\"true\"\n ></ipt-button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</main>", styles: ["@media screen and (min-width: 320px){main{background:rgba(0,0,0,.472);color:#fff;position:fixed;top:0;left:0;height:100vh;width:100vw;transition:all .5s}main .modal_container{width:90%;height:-moz-fit-content;height:fit-content;max-height:90vh;overflow-y:auto;position:fixed;inset:0;margin:auto;background-color:#fff;border-radius:5px}.header_modal{display:flex;padding:15px 15px 0;gap:1rem;align-items:center}.header_modal h1{padding:.5rem;background-color:#1c77f7;color:#fff;width:100%;border-radius:10px;font-size:1.25rem;font-weight:700}.header_modal button{margin-left:auto;font-size:26px;padding:1.2rem;font-weight:200;color:#6c7f7d;display:flex;width:25px;height:25px;align-items:center;justify-content:center;transition:50ms;background-color:transparent;border:none}.header_modal button:hover{cursor:pointer;border-radius:50%;background-color:#d4d4d4}.grid_container{display:grid;grid-template-columns:1fr;padding:0 15px}form{display:grid;grid-template-columns:1fr;gap:.25rem;justify-content:center;padding:0 1rem}.section-header{margin:1.5rem 0 .5rem;border-bottom:2px solid #1c77f7}.section-header h2{font-size:1.2rem;color:#1c77f7;font-weight:600;margin-bottom:.5rem}.form-grid{display:grid;grid-template-columns:1fr;gap:0px .25rem}.buttons-container{margin-top:2rem;margin-bottom:2rem;display:flex;justify-content:flex-end;align-items:center;flex-direction:row}.buttons-container-inner{gap:1rem;width:auto;display:flex}.user-type-image{display:none}.no-parent-message{padding:1rem;text-align:center;color:#666;font-size:1rem;font-weight:500;background-color:#f8f9fa;border-radius:.5rem;margin-top:.5rem}}@media screen and (min-width: 768px){.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0px 1rem}}@media screen and (min-width: 1366px){form{padding:0}}.field{margin-top:15px;height:1px;max-width:70%;font-family:Poppins,sans-serif;color:#000;font-size:.875rem}.error-message{color:red;font-size:12px;margin-top:5px}:host ::ng-deep .p-selectbutton{display:flex;flex-wrap:wrap;justify-content:center;width:100%;min-width:10rem;margin-top:1rem}:host ::ng-deep .p-selectbutton .p-button{padding:.5rem;font-size:.875rem;height:30px}:host ::ng-deep .p-buttonset .p-button:first-of-type{height:30px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "tabindex", "multiple", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey"], outputs: ["onOptionClick", "onChange"] }, { kind: "component", type: i7.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }, { kind: "component", type: InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "label", "control"], outputs: ["eventSelect"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }, { kind: "pipe", type: GenderDisplayPipe, name: "genderDisplay" }] });
2514
2516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: updateUserFormComponent, decorators: [{
2515
2517
  type: Component,
2516
- args: [{ selector: 'ipt-update-user-form', template: "<main *ngIf=\"visibleModal\">\n <div class=\"modal_container\">\n <div class=\"header_modal yellow-300\">\n <h1>Actualizar usuario</h1>\n <button (click)=\"closeTable()\">x</button>\n </div>\n <div class=\"grid_container\">\n <div>\n <form *ngIf=\"updateUserForm\" autocomplete=\"off\" [formGroup]=\"updateUserForm\">\n <!-- User Information Section -->\n <div class=\"section-header\">\n <h2>Informaci\u00F3n del usuario</h2>\n </div>\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['name']\"\n [validateText]=\"updateUserForm.controls['name'].hasError('required') ? 'Debe ingresar el nombre' :\n updateUserForm.controls['name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['last_name']\"\n [validateText]=\"updateUserForm.controls['last_name'].hasError('required') ? 'Debe ingresar los apellidos' :\n updateUserForm.controls['last_name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['last_name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['last_name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['last_name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['last_name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['email']\"\n [validateText]=\"updateUserForm.controls['email'].hasError('required') ? 'Debe ingresar un correo v\u00E1lido' :\n updateUserForm.controls['email'].hasError('maxlength') ? 'M\u00E1ximo 300 caracteres' :\n updateUserForm.controls['email'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email IPT'\"\n [control]=\"updateUserForm.controls['email_ipt']\"\n [validateText]=\"updateUserForm.controls['email_ipt'].hasError('required') ? 'Debe ingresar un correo IPT v\u00E1lido' :\n updateUserForm.controls['email_ipt'].hasError('maxlength') ? 'M\u00E1ximo 255 caracteres' :\n updateUserForm.controls['email_ipt'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email_ipt'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email_ipt'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo IPT v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Horas de servicio'\"\n [control]=\"updateUserForm.controls['service_hour']\"\n [validateText]=\"'Debe ingresar las horas de servicio'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Rol'\"\n [control]=\"updateUserForm.controls['role']\"\n [validateText]=\"'Rol requerido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['gender'].value\"\n [control]=\"updateUserForm.controls['gender']\"\n [selectCode]=\"updateUserForm.controls['gender'].value === null ? 'Seleccione g\u00E9nero' : (updateUserForm.controls['gender'].value | genderDisplay)\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Seleccione g\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['phone_indicative'].value\"\n [control]=\"updateUserForm.controls['phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['id_card_type'].value\"\n [control]=\"updateUserForm.controls['id_card_type']\"\n [selectCode]=\"updateUserForm.controls['id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'text' : 'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['id_card']\"\n [validateText]=\"updateUserForm.controls['id_card'].hasError('required') ? 'Debe ingresar el n\u00FAmero de documento' :\n updateUserForm.controls['id_card'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['id_card'].hasError('maxlength') ? 'M\u00E1ximo 20 caracteres' :\n updateUserForm.controls['id_card'].hasError('pattern') ? (updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'Solo letras y n\u00FAmeros permitidos' : 'Solo n\u00FAmeros permitidos') :\n 'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['country'].value\"\n [control]=\"updateUserForm.controls['country']\"\n [selectCode]=\"updateUserForm.controls['country'].value === null ? 'Pa\u00EDs de residencia' : updateUserForm.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['state'].value\"\n [control]=\"updateUserForm.controls['state']\"\n [selectCode]=\"updateUserForm.controls['state'].value === null ? 'Departamento o estado' : updateUserForm.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['city'].value\"\n [control]=\"updateUserForm.controls['city']\"\n [selectCode]=\"updateUserForm.controls['city'].value === null ? 'Ciudad de residencia' : updateUserForm.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div class=\"card-status\">\n <span>Estado</span>\n <p-selectButton \n [options]=\"justifyOptions\" \n formControlName=\"status\" \n optionLabel=\"name\" \n optionValue=\"code\"\n [disabled]=\"isStudent\">\n </p-selectButton>\n </div>\n <div class=\"field\">\n <p-checkbox\n formControlName=\"changePassword\"\n label=\"Cambio de contrase\u00F1a\"\n [binary]=\"true\"\n ></p-checkbox>\n </div>\n </div>\n <div class=\"form-grid\" *ngIf=\"updateUserForm.controls['changePassword'].value\">\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['password']\"\n [validateText]=\"updateUserForm.controls['password'].hasError('required') ? 'La contrase\u00F1a es requerida' :\n updateUserForm.controls['password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n 'Ingrese una contrase\u00F1a v\u00E1lida'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['re_password']\"\n [validateText]=\"updateUserForm.controls['re_password'].hasError('required') ? 'Debe repetir la contrase\u00F1a' :\n updateUserForm.controls['re_password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['re_password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.hasError('mismatch') ? 'Las contrase\u00F1as no coinciden' :\n 'Repita la contrase\u00F1a'\"\n ></ipt-input>\n </div>\n\n <!-- Mensaje adicional para el error de mismatch (opcional, si quieres mostrarlo por separado) -->\n\n <div *ngIf=\"updateUserForm.hasError('mismatch') && updateUserForm.controls['changePassword'].value\" class=\"error-message\">\n <small >Las contrase\u00F1as no coinciden</small>\n </div>\n <!-- Parent Information Section -->\n <div class=\"section-header\" *ngIf=\"DataStudent?.cods\">\n <h2>Informaci\u00F3n del acudiente</h2>\n </div>\n <div *ngIf=\"DataStudent?.cods\">\n <div *ngIf=\"showParentSection; else noParentMessage\">\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['parent_name']\"\n [validateText]=\"'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['parent_last_name']\"\n [validateText]=\"'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"updateUserForm.controls['parent_occupation']\"\n [validateText]=\"'Debe ingresar la ocupaci\u00F3n'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['parent_email']\"\n [validateText]=\"'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_id_card_type'].value\"\n [control]=\"updateUserForm.controls['parent_id_card_type']\"\n [selectCode]=\"updateUserForm.controls['parent_id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['parent_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('parent_id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['parent_id_card']\"\n [validateText]=\"'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_phone_indicative'].value\"\n [control]=\"updateUserForm.controls['parent_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('parent_phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['parent_phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n de oficina'\"\n [control]=\"updateUserForm.controls['parent_office_adrress']\"\n [validateText]=\"'Debe ingresar la direcci\u00F3n'\"\n ></ipt-input>\n </div>\n </div>\n <ng-template #noParentMessage>\n <div class=\"no-parent-message\">\n <p>Sin acudiente</p>\n </div>\n </ng-template>\n </div>\n\n <div class=\"buttons-container\">\n <div class=\"buttons-container-inner\">\n <ipt-button\n [buttonType]=\"'button'\"\n [label]=\"'Cerrar'\"\n [primary]=\"false\"\n [isEnabled]=\"true\"\n (onClick)=\"closeTable()\"\n ></ipt-button>\n\n <ipt-button\n [label]=\"'Actualizar'\"\n [isEnabled]=\"!loader && updateUserForm.valid && !updateUserForm.hasError('mismatch') && hasFormChanged()\"\n (onClick)=\"updateUser()\"\n [primary]=\"true\"\n ></ipt-button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</main>", styles: ["@media screen and (min-width: 320px){main{background:rgba(0,0,0,.472);color:#fff;position:fixed;top:0;left:0;height:100vh;width:100vw;transition:all .5s}main .modal_container{width:90%;height:-moz-fit-content;height:fit-content;max-height:90vh;overflow-y:auto;position:fixed;inset:0;margin:auto;background-color:#fff;border-radius:5px}.header_modal{display:flex;padding:15px 15px 0;gap:1rem;align-items:center}.header_modal h1{padding:.5rem;background-color:#1c77f7;color:#fff;width:100%;border-radius:10px;font-size:1.25rem;font-weight:700}.header_modal button{margin-left:auto;font-size:26px;padding:1.2rem;font-weight:200;color:#6c7f7d;display:flex;width:25px;height:25px;align-items:center;justify-content:center;transition:50ms;background-color:transparent;border:none}.header_modal button:hover{cursor:pointer;border-radius:50%;background-color:#d4d4d4}.grid_container{display:grid;grid-template-columns:1fr;padding:0 15px}form{display:grid;grid-template-columns:1fr;gap:.25rem;justify-content:center;padding:0 1rem}.section-header{margin:1.5rem 0 .5rem;border-bottom:2px solid #1c77f7}.section-header h2{font-size:1.2rem;color:#1c77f7;font-weight:600;margin-bottom:.5rem}.form-grid{display:grid;grid-template-columns:1fr;gap:0px .25rem}.buttons-container{margin-top:2rem;margin-bottom:2rem;display:flex;justify-content:flex-end;align-items:center;flex-direction:row}.buttons-container-inner{gap:1rem;width:auto;display:flex}.user-type-image{display:none}.no-parent-message{padding:1rem;text-align:center;color:#666;font-size:1rem;font-weight:500;background-color:#f8f9fa;border-radius:.5rem;margin-top:.5rem}}@media screen and (min-width: 768px){.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0px 1rem}}@media screen and (min-width: 1366px){form{padding:0}}.field{margin-top:15px;height:1px;max-width:70%;font-family:Poppins,sans-serif;color:#000;font-size:.875rem}.error-message{color:red;font-size:12px;margin-top:5px}:host ::ng-deep .p-selectbutton{display:flex;flex-wrap:wrap;justify-content:center;width:100%;min-width:10rem;margin-top:1rem}:host ::ng-deep .p-selectbutton .p-button{padding:.5rem;font-size:.875rem;height:30px}:host ::ng-deep .p-buttonset .p-button:first-of-type{height:30px}\n"] }]
2518
+ args: [{ selector: 'ipt-update-user-form', template: "<main *ngIf=\"visibleModal\">\n <div class=\"modal_container\">\n <div class=\"header_modal yellow-300\">\n <h1>Actualizar usuario</h1>\n <button (click)=\"closeTable()\">x</button>\n </div>\n <div>\n <pre>{{ updateUserForm.value | json }}</pre>\n <div>\n <pre>{{ updateUserForm.valid | json }}</pre>\n </div>\n</div>\n <div class=\"grid_container\">\n <div>\n <form *ngIf=\"updateUserForm\" autocomplete=\"off\" [formGroup]=\"updateUserForm\">\n <!-- User Information Section -->\n <div class=\"section-header\">\n <h2>Informaci\u00F3n del usuario</h2>\n </div>\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['name']\"\n [validateText]=\"updateUserForm.controls['name'].hasError('required') ? 'Debe ingresar el nombre' :\n updateUserForm.controls['name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['last_name']\"\n [validateText]=\"updateUserForm.controls['last_name'].hasError('required') ? 'Debe ingresar los apellidos' :\n updateUserForm.controls['last_name'].hasError('minlength') ? 'M\u00EDnimo 3 caracteres' :\n updateUserForm.controls['last_name'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.controls['last_name'].hasError('pattern') ? 'Solo letras, espacios y guiones' :\n updateUserForm.controls['last_name'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['last_name'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['email']\"\n [validateText]=\"updateUserForm.controls['email'].hasError('required') ? 'Debe ingresar un correo v\u00E1lido' :\n updateUserForm.controls['email'].hasError('maxlength') ? 'M\u00E1ximo 300 caracteres' :\n updateUserForm.controls['email'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'text'\"\n [placeHolder]=\"'Email IPT'\"\n [control]=\"updateUserForm.controls['email_ipt']\"\n [validateText]=\"updateUserForm.controls['email_ipt'].hasError('required') ? 'Debe ingresar un correo IPT v\u00E1lido' :\n updateUserForm.controls['email_ipt'].hasError('maxlength') ? 'M\u00E1ximo 255 caracteres' :\n updateUserForm.controls['email_ipt'].hasError('pattern') ? 'Tiene que ser un email correcto' :\n updateUserForm.controls['email_ipt'].hasError('hasWhitespace') ? 'No se permiten espacios al inicio o final' :\n updateUserForm.controls['email_ipt'].hasError('onlyWhitespace') ? 'No se permiten solo espacios' :\n 'Debe ingresar un correo IPT v\u00E1lido'\"\n ></ipt-input>\n <ipt-input\n *ngIf=\"showEmailIpt\"\n [inputType]=\"'number'\"\n [placeHolder]=\"'Horas de servicio'\"\n [control]=\"updateUserForm.controls['service_hour']\"\n [validateText]=\"'Debe ingresar las horas de servicio'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Rol'\"\n [control]=\"updateUserForm.controls['role']\"\n [validateText]=\"'Rol requerido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['gender'].value\"\n [control]=\"updateUserForm.controls['gender']\"\n [selectCode]=\"updateUserForm.controls['gender'].value === null ? 'Seleccione g\u00E9nero' : (updateUserForm.controls['gender'].value | genderDisplay)\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'Seleccione g\u00E9nero'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['phone_indicative'].value\"\n [control]=\"updateUserForm.controls['phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['id_card_type'].value\"\n [control]=\"updateUserForm.controls['id_card_type']\"\n [selectCode]=\"updateUserForm.controls['id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'text' : 'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['id_card']\"\n [validateText]=\"updateUserForm.controls['id_card'].hasError('required') ? 'Debe ingresar el n\u00FAmero de documento' :\n updateUserForm.controls['id_card'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['id_card'].hasError('maxlength') ? 'M\u00E1ximo 20 caracteres' :\n updateUserForm.controls['id_card'].hasError('pattern') ? (updateUserForm.controls['id_card_type'].value === '7' || updateUserForm.controls['id_card_type'].value === '5' ? 'Solo letras y n\u00FAmeros permitidos' : 'Solo n\u00FAmeros permitidos') :\n 'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['country'].value\"\n [control]=\"updateUserForm.controls['country']\"\n [selectCode]=\"updateUserForm.controls['country'].value === null ? 'Pa\u00EDs de residencia' : updateUserForm.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['state'].value\"\n [control]=\"updateUserForm.controls['state']\"\n [selectCode]=\"updateUserForm.controls['state'].value === null ? 'Departamento o estado' : updateUserForm.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['city'].value\"\n [control]=\"updateUserForm.controls['city']\"\n [selectCode]=\"updateUserForm.controls['city'].value === null ? 'Ciudad de residencia' : updateUserForm.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div class=\"card-status\">\n <span>Estado</span>\n <p-selectButton \n [options]=\"justifyOptions\" \n formControlName=\"status\" \n optionLabel=\"name\" \n optionValue=\"code\"\n [disabled]=\"isStudent\">\n </p-selectButton>\n </div>\n <div class=\"field\">\n <p-checkbox\n formControlName=\"changePassword\"\n label=\"Cambio de contrase\u00F1a\"\n [binary]=\"true\"\n ></p-checkbox>\n </div>\n </div>\n <div class=\"form-grid\" *ngIf=\"updateUserForm.controls['changePassword'].value\">\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['password']\"\n [validateText]=\"updateUserForm.controls['password'].hasError('required') ? 'La contrase\u00F1a es requerida' :\n updateUserForm.controls['password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n 'Ingrese una contrase\u00F1a v\u00E1lida'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'password'\"\n [placeHolder]=\"'Repetir contrase\u00F1a'\"\n [control]=\"updateUserForm.controls['re_password']\"\n [validateText]=\"updateUserForm.controls['re_password'].hasError('required') ? 'Debe repetir la contrase\u00F1a' :\n updateUserForm.controls['re_password'].hasError('minlength') ? 'M\u00EDnimo 5 caracteres' :\n updateUserForm.controls['re_password'].hasError('maxlength') ? 'M\u00E1ximo 32 caracteres' :\n updateUserForm.hasError('mismatch') ? 'Las contrase\u00F1as no coinciden' :\n 'Repita la contrase\u00F1a'\"\n ></ipt-input>\n </div>\n\n <!-- Mensaje adicional para el error de mismatch (opcional, si quieres mostrarlo por separado) -->\n\n <div *ngIf=\"updateUserForm.hasError('mismatch') && updateUserForm.controls['changePassword'].value\" class=\"error-message\">\n <small >Las contrase\u00F1as no coinciden</small>\n </div>\n <!-- Parent Information Section -->\n <div class=\"section-header\" *ngIf=\"DataStudent?.cods\">\n <h2>Informaci\u00F3n del acudiente</h2>\n </div>\n <div *ngIf=\"DataStudent?.cods\">\n <div *ngIf=\"showParentSection; else noParentMessage\">\n <div class=\"form-grid\">\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"updateUserForm.controls['parent_name']\"\n [validateText]=\"'Debe ingresar el nombre'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"updateUserForm.controls['parent_last_name']\"\n [validateText]=\"'Debe ingresar los apellidos'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Ocupaci\u00F3n'\"\n [control]=\"updateUserForm.controls['parent_occupation']\"\n [validateText]=\"'Debe ingresar la ocupaci\u00F3n'\"\n ></ipt-input>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Email'\"\n [control]=\"updateUserForm.controls['parent_email']\"\n [validateText]=\"'Debe ingresar un correo v\u00E1lido'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_id_card_type'].value\"\n [control]=\"updateUserForm.controls['parent_id_card_type']\"\n [selectCode]=\"updateUserForm.controls['parent_id_card_type'].value === null ? 'Tipo de documento' : updateUserForm.controls['parent_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType('parent_id_card_type', $event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Documento'\"\n [control]=\"updateUserForm.controls['parent_id_card']\"\n [validateText]=\"'Debe ingresar el n\u00FAmero de documento'\"\n ></ipt-input>\n <ipt-select\n [initialValue]=\"updateUserForm.controls['parent_phone_indicative'].value\"\n [control]=\"updateUserForm.controls['parent_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicative('parent_phone_indicative', $event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'Tel\u00E9fono'\"\n [control]=\"updateUserForm.controls['parent_phone_number']\"\n [validateText]=\"'Debe ingresar un n\u00FAmero de tel\u00E9fono v\u00E1lido'\"\n ></ipt-input>\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Direcci\u00F3n de oficina'\"\n [control]=\"updateUserForm.controls['parent_office_adrress']\"\n [validateText]=\"'Debe ingresar la direcci\u00F3n'\"\n ></ipt-input>\n </div>\n </div>\n <ng-template #noParentMessage>\n <div class=\"no-parent-message\">\n <p>Sin acudiente</p>\n </div>\n </ng-template>\n </div>\n\n <div class=\"buttons-container\">\n <div class=\"buttons-container-inner\">\n <ipt-button\n [buttonType]=\"'button'\"\n [label]=\"'Cerrar'\"\n [primary]=\"false\"\n [isEnabled]=\"true\"\n (onClick)=\"closeTable()\"\n ></ipt-button>\n\n <ipt-button\n [label]=\"'Actualizar'\"\n [isEnabled]=\"!loader && updateUserForm.valid && !updateUserForm.hasError('mismatch') && hasFormChanged()\"\n (onClick)=\"updateUser()\"\n [primary]=\"true\"\n ></ipt-button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</main>", styles: ["@media screen and (min-width: 320px){main{background:rgba(0,0,0,.472);color:#fff;position:fixed;top:0;left:0;height:100vh;width:100vw;transition:all .5s}main .modal_container{width:90%;height:-moz-fit-content;height:fit-content;max-height:90vh;overflow-y:auto;position:fixed;inset:0;margin:auto;background-color:#fff;border-radius:5px}.header_modal{display:flex;padding:15px 15px 0;gap:1rem;align-items:center}.header_modal h1{padding:.5rem;background-color:#1c77f7;color:#fff;width:100%;border-radius:10px;font-size:1.25rem;font-weight:700}.header_modal button{margin-left:auto;font-size:26px;padding:1.2rem;font-weight:200;color:#6c7f7d;display:flex;width:25px;height:25px;align-items:center;justify-content:center;transition:50ms;background-color:transparent;border:none}.header_modal button:hover{cursor:pointer;border-radius:50%;background-color:#d4d4d4}.grid_container{display:grid;grid-template-columns:1fr;padding:0 15px}form{display:grid;grid-template-columns:1fr;gap:.25rem;justify-content:center;padding:0 1rem}.section-header{margin:1.5rem 0 .5rem;border-bottom:2px solid #1c77f7}.section-header h2{font-size:1.2rem;color:#1c77f7;font-weight:600;margin-bottom:.5rem}.form-grid{display:grid;grid-template-columns:1fr;gap:0px .25rem}.buttons-container{margin-top:2rem;margin-bottom:2rem;display:flex;justify-content:flex-end;align-items:center;flex-direction:row}.buttons-container-inner{gap:1rem;width:auto;display:flex}.user-type-image{display:none}.no-parent-message{padding:1rem;text-align:center;color:#666;font-size:1rem;font-weight:500;background-color:#f8f9fa;border-radius:.5rem;margin-top:.5rem}}@media screen and (min-width: 768px){.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0px 1rem}}@media screen and (min-width: 1366px){form{padding:0}}.field{margin-top:15px;height:1px;max-width:70%;font-family:Poppins,sans-serif;color:#000;font-size:.875rem}.error-message{color:red;font-size:12px;margin-top:5px}:host ::ng-deep .p-selectbutton{display:flex;flex-wrap:wrap;justify-content:center;width:100%;min-width:10rem;margin-top:1rem}:host ::ng-deep .p-selectbutton .p-button{padding:.5rem;font-size:.875rem;height:30px}:host ::ng-deep .p-buttonset .p-button:first-of-type{height:30px}\n"] }]
2517
2519
  }], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: ParameterService }, { type: BaseService }, { type: UserService }]; }, propDecorators: { DataStudent: [{
2518
2520
  type: Input
2519
2521
  }], visibleModal: [{