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
TypeScript
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>;
}