UNPKG

bitfront-library

Version:

Angular CLI project with components and classes used by other Angular projects of the BIT foundation.

83 lines (82 loc) 4.05 kB
import { ActivatedRoute } from "@angular/router"; import { Store } from "@ngrx/store"; import { FormGroup } from "@angular/forms"; import { Observable } from "rxjs"; import { MessageService, Item } from "../../../shared"; import { FormType, PageStatus } from "../../../shared/global.constants"; import * as fromModels from "../../models"; import { BaseComponent } from "./base.component"; import * as i0 from "@angular/core"; /** * Componente que implementa un formulario para insertar, modificar, eliminar y/o consultar un elemento. * T: entidad, * V: Definicion de la interface del state */ export declare abstract class BaseFormComponent<T extends Item, V> extends BaseComponent<V> { protected store: Store<V>; protected activatedRoute: ActivatedRoute; protected messageService: MessageService; protected factoryCreateAction: fromModels.FactoryCreateAction; protected fnCreateNewObject?: fromModels.FactoryCreateNewObject<T>; myForm: FormGroup; object: T; status$: Observable<PageStatus>; toolbar$: Observable<{}>; breadcrumb: any[]; formType: FormType; soloLectura: boolean; myTabs: any; initialTab: string; loadedTab: any; currentTab: number; constructor(store: Store<V>, activatedRoute: ActivatedRoute, messageService: MessageService, factoryCreateAction: fromModels.FactoryCreateAction, fnCreateNewObject?: fromModels.FactoryCreateNewObject<T>); ngOnDestroy(): void; /** No sabemos a este nivel como construir el FormGroup */ abstract createFormGroup(): any; /** No sabemos a este nivel como iniciarlizar el formulario. Entre otras cosas se creará el breadcrumb */ abstract initForm(id: any): any; /** Devuelve true si el formulario edita un elemento existente, o false si inserta un nuevo elemento. */ get isEditMode(): boolean; /** * Devuelve true si hay algún valor cambiado en la ficha. * Puede ser por un campo del formulario (this.myForm.dirty) o por modificaciones en elementos relacionados. */ get isDataChanged(): boolean; /** Devuelve true si el formulario es válido (campos validados automáticamente, elementos relacionados, etc.). */ get isFormValid(): boolean; /** Evalúa si el usuario puede desactivar/cerrar el componente sin perder cambios todavía no guardados. */ canDeactivate(): Observable<boolean> | boolean; unloadWithUnsavedChanges($event: any): string; /** el componente toolbar nos comunica que se ha pulsado un botón */ onToolbarButtonPressed(button: string): void; /** Muestra la ayuda asociada a la pantalla. */ help(): void; /** el componente toolbar nos comunica que se ha pulsado un botón */ handlePrint(): void; /** contiene toda la lógica para enviar el formulario al servidor*/ save(): void; /** función útil que los componentes pueden extender para hacar algo antes de enviar el formulario al servidor */ preSave(): boolean; /** contiene la lógica para eliminar el objeto representado en el formulario */ delete(): void; /** Cualquier otra accion que no sea la típica de guardar o eliminar */ otherAction(action: string): void; /** Limpia el formulario. */ cleanForm(): void; /** Cierra el formulario y vuelve a la pantalla anterior. */ goBack(): void; isPreserveQueryParams(): boolean; /** Información de debug. */ get diagnostic(): string; /** función para hacer algo si queremos al cambiar de pestaña */ changeTab(e: any): void; /** Registra una pestaña de visualización de información. */ registerTab(index: number, id: string): void; initTabs(): void; /** Indica si la pestaña correspondiente es la inicial. */ isInitialTab(tab: string): boolean; /** Indica si la pestaña correspondiente está cargada. */ isLoadedTab(tab: string): any; static ɵfac: i0.ɵɵFactoryDef<BaseFormComponent<any, any>, never>; static ɵdir: i0.ɵɵDirectiveDefWithMeta<BaseFormComponent<any, any>, never, never, {}, {}, never>; }