bitfront-library
Version:
Angular CLI project with components and classes used by other Angular projects of the BIT foundation.
104 lines (103 loc) • 5.6 kB
TypeScript
import { EventEmitter, AfterContentInit } from "@angular/core";
import { FormGroup } from "@angular/forms";
import { Router, ActivatedRoute } from "@angular/router";
import { Observable } from "rxjs";
import { BaseComponent } from "./base.component";
import { FormType, PageStatus } from "../../shared/global.constants";
import { Item } from "../../shared/data/item";
import { MessageService } from "../../shared/service/message.service";
import { ToolbarService } from "../../shared/service/toolbar.service";
import { BaseCRUDServiceInterface } from "../shared/base-interface.service";
import * as i0 from "@angular/core";
/**
* Clase base para implementar formularios de elementos. Provee el 95% de la funcionalidad necesaria.
*/
export declare abstract class BaseFormComponent extends BaseComponent implements AfterContentInit {
myForm: FormGroup;
object: Item;
breadcrumb: any[];
messages: Map<PageStatus, string>;
protected formType: FormType;
protected dataService: BaseCRUDServiceInterface;
protected paramsDataService: any;
protected router: Router;
protected activatedRoute: ActivatedRoute;
protected messageService: MessageService;
onSave: EventEmitter<any>;
dialogMode: boolean;
reset: EventEmitter<any>;
protected myTabs: any;
protected initialTab: string;
protected loadedTab: any;
currentTab: number;
/**
* Constructor de la Clase.
* @param dataService: Servicio que implementa la interface BaseCRUDServiceInterface.
* @param router: Objeto de tipo Router para poder navegar (p. ej., al listado).
* @param activateRoute: Objeto de tipo ActivatedRoute que permite acceder a los parámetros de la URL con los que
* hemos accedido a este componente o para navegar.
* @param notificationService: Objeto de tipo NotificationService para poder mostrar diálogos al usuario.
*/
constructor(dataService: BaseCRUDServiceInterface, router: Router, activatedRoute: ActivatedRoute, messageService: MessageService, toolbarService?: ToolbarService, componentId?: string);
ngOnDestroy(): void;
/** Retrocede a la pantalla anterior (normalmente, el listado de elementos de la misma clase). */
abstract goBack(): void;
ngAfterContentInit(): void;
/**
* Inicializa el formulario.
* 1. Identifica si el formulario se carga para insertar un nuevo elemento o consultar/actualizar uno existente.
* 2. En este segundo caso, lee el elemento con el identificador indicado por parámetro desde el servidor.
* 3. Una vez cargado el elemento, invoca el método postInit con el resultado devuelto por el servidor.
* @param id: Identificador del elemento. En el caso de una inserción, puede ser cero o undefined.
*/
init(id?: number): void;
/** Cuando se pulsa un botón del toolbar. */
onToolbarButtonPressed(button: string): void;
/**
* Inserta o actualiza el registro en el servidor.
* Una vez insertado o actualizado, se invoca al método postSave con el resultado de la operación.
*/
save(): void;
/** Elimina el registro en el servidor. Una vez eliminado, se invoca al método postDelete. */
delete(): void;
/** Muestra la ayuda asociada a la pantalla. */
help(): void;
handlePrint(): void;
/** Cualquier otra accion que no sea la típica de guardar o eliminar */
otherAction(action: string): void;
/** Limpia el formulario, estableciendo los valores como si hubieramos entrado por primera vez. */
cleanForm(): void;
/** 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;
/** Método que se ejecuta después de la lectura de los datos desde el servidor. */
protected postInit(result?: any): void;
/** Método que se ejecuta antes de la inserción/modificación de los datos en el servidor. */
protected preSave(): boolean;
/** Método que se ejecuta después de la inserción/modificación de los datos en el servidor. */
protected postSave(result: any, avoidMessage?: boolean): void;
/** Método que se ejecuta después de la eliminación del elemento en el servidor. */
protected postDelete(): void;
get safeBreadcrumb(): any[];
/** Registra una pestaña de visualización de información. */
protected registerTab(index: number, id: string): void;
protected 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;
/** Controla cuando el usuario cambia de tab. */
changeTab(e: any): void;
protected isPreserveQueryParams(): boolean;
static ɵfac: i0.ɵɵFactoryDef<BaseFormComponent, never>;
static ɵdir: i0.ɵɵDirectiveDefWithMeta<BaseFormComponent, never, never, { "dialogMode": "dialogMode"; "reset": "reset"; }, { "onSave": "onSave"; }, never>;
}