UNPKG

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