import { OnInit } from '@angular/core/src/metadata/lifecycle_hooks'; import { FormBuilder, FormGroup } from '@angular/forms'; import { Observable } from 'rxjs/Observable'; import { EvkHttpService } from '../../../services/http.service'; import { EstructureBaseField } from '../../../evk/form-constructor/constructor/component'; import { EstructureBaseFormSection } from '../../../evk/form-constructor/section-form/evk-section-form.component'; import { EstructureBaseExpansionPanelForm } from '../../../evk/form-constructor/expansion-panel-form/evk-expansion-panel-form.component'; import { Logger } from '../../logger/base-logger.utils'; /** * Clase base para los formularios */ export declare abstract class EvkBaseForm implements OnInit { fbuilder: FormBuilder; http: EvkHttpService; /** * uri de la api, esta es obligatoria que laden. */ abstract api: string; /** * Metadatos con los que se forma el formulario. basicamente es un json. */ abstract metadata: (EstructureBaseFormSection | EstructureBaseField | EstructureBaseExpansionPanelForm)[]; /** * El formgroup que administrara el formulario */ form: FormGroup; log: Logger; constructor(fbuilder: FormBuilder, http: EvkHttpService); ngOnInit(): void; /** * Metodo que se ejecutara antes del guardado. Esto sirve para validar algo de _data antes de guardar. * @param _data Datos a guardar */ abstract evkBeforeSave(_data: any): any; /** * Esto sirve para cachar la informacion despues de guardar la informacion. El data es lo que devuelve el servicio. * @param _response Respuesta del servicio */ abstract evkDoneSave(_response: any): void; /** * * @param _error Error de ejecución */ abstract evkErrorSave(_error: any): void; /** * Construye el formulario directamente de los metadatos. * @param extraRules Agrega informcion extra al formulario */ constructFromMetadata(extraRules?: any): void; private constructForm(form, metadata); private findEstructureBaseField(metadata); /** Funcion que se utiliza para guardar */ save(value?: any): Promise; sendRequest(_data: any): Observable; }