ngx-core-business
Version:
A comprehensive solution designed to streamline the development of enterprise-level Angular applications.
194 lines (193 loc) • 6.98 kB
TypeScript
/**
* Component Base Class
*
* Clase base para componentes que muestran datos en formato de listas o tablas
* cargando datos desde el servidor.
*
* @author Jaime Cruz.
*/
import { OnInit, Injector, AfterViewInit, EventEmitter } from '@angular/core';
import { NotificationsService } from './services/notifications.service';
import { HttpClient } from '@angular/common/http';
import { MatDialog } from '@angular/material/dialog';
import { MatTable } from '@angular/material/table';
import { DialogService } from './services/dialog.service';
import { MatSort } from '@angular/material/sort';
import { MatPaginator } from '@angular/material/paginator';
import { SelectionModel } from '@angular/cdk/collections';
import { ActivatedRoute, Router } from '@angular/router';
import { HttpCollectionService, CollectionQueryParams, QueryFilter } from 'ngx-core-business/http';
import { DataErrorViewComponent } from './data-error-view/data-error-view.component';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class TableViewComponent<T> implements OnInit, AfterViewInit {
protected injector: Injector;
selectionChange: EventEmitter<any[]>;
/**
* Tipo de componente
* - page: Si el componente que extiende está asociado con una ruta.
* - component: Si el componente extendido esta dentro de otro componente
*
*/
protected type: string;
autoload: boolean;
apiUrl: string;
sendModelOnDelete: boolean;
requestParams: {
[key: string]: string | number | boolean;
};
dataPath: string;
displayedColumns: string[];
itemSingularName: string;
itemPluralName: string;
itemSingularArticle: string;
confirmDeleteTitle: string;
confirmDeleteTitleTpl: string;
deleteItemQuestionText: string;
deleteItemQuestionTextTpl: string;
deleteItemConfirmDialogContentTpl: string;
deleteItemConfirmButtonText: string;
successfullyDeletedItemNotificationTpl: string;
protected editorClass: any;
protected editionDisabled: boolean;
pageSize: number;
pageIndex: number;
_rawData: T[];
_rawTransformedData: T[];
data: T[];
selectedRow: any;
totalRecords: number;
selectedRowIndex: number;
selection: SelectionModel<any>;
selectionMultiple: boolean;
modelIdProperty: string;
modelNameProperty: string;
protected notifications: NotificationsService;
protected http: HttpClient;
protected matDialog: MatDialog;
protected dialogService: DialogService;
protected httpGetList: HttpCollectionService;
protected router: Router;
protected route: ActivatedRoute;
table?: MatTable<any>;
sort?: MatSort;
paginator?: MatPaginator;
errorView?: DataErrorViewComponent;
filters: QueryFilter[];
$fields: string;
localSearchFilter: QueryFilter;
searchFilter: QueryFilter;
_isLoadingData: boolean;
_didLoadDataFailed: boolean;
_loadSubcription?: Subscription;
clearDataOnFail: boolean;
private loadObs;
load: import("rxjs").Observable<unknown>;
private errorStatus;
constructor(injector: Injector);
keyEvent(e: KeyboardEvent): void;
loadData(): void;
_subscribeLoadEvent(): void;
onDataServiceResponse(res: any): void;
transformServiceResponseData(data: any[]): any[];
/**
* Hook
* Es llamado antes de solicitar datos al servidor
*/
beforeLoad(): void;
getSelection(): any[];
recordExists(rec: any): boolean;
getRecordByIndex(idx: number): NonNullable<T> | null;
getRecordIndex(rec: any): number;
selectNext(): void;
selectPrevious(): void;
validIndex(index: number): boolean;
getBaseRequestParams(): CollectionQueryParams;
getApiUrl(): string;
getDataPath(): string;
getCollectionUrl(): string;
getDeleteResourceUrl(model: T): string;
getRequestUrl(): string;
getRequestParams(): {
[key: string]: number | string | boolean;
};
/**
* ACTION HANDLERS
*/
addItemHandler(): void;
editItemHandler(rec: any): void;
deleteItemHandler(model: any): void;
deleteResource(model: T): void;
getEditorData(rec?: T): {
[key: string]: any;
model?: T;
};
updateRecord(rec: T): void;
removeRecord(model: T): void;
/**
* Este metodo puede ser sobre escrito para evitar el comportamiento por defecto.
*/
afterCreateEditorClosed(model: T): void;
/**
* Este metodo puede ser sobre escrito para evitar el comportamiento por defecto.
*/
afterUpdateEditorClosed(model: any): void;
/**
* Nota: Sobrescribir este metodo para titulos personalizados.
*/
getDeleteItemConfirmDialogTitle(model: any): string;
/**
* Nota: Sobrescribir este metodo para mensajes personalizados
*/
getDeleteItemConfirmDialogContent(model: T): string;
getDeleteItemConfirmDialogTplData(model: T): any;
/**
* Nota: Sobrescribir este metodo para mensajes personalizados
*/
getSuccessfullyDeletedItemNotificationContent(model: T): string;
getSuccessfullyDeletedItemNotificationTplData(model: T): any;
getItemIdentificationName(model: T): string;
reloadHandler(): void;
ngOnInit(): void;
subscribeRouteParams(): void;
loadDatasets(): void;
_createSelectionModel(): void;
ngAfterViewInit(): void;
/**
* Solo notificará los errores de servidor componentes tipo component
*/
handleServerError(xhr: any): void;
updateView(): void;
applyFilters(filters: QueryFilter[]): void;
resetPageIndex(): void;
getFilters(): QueryFilter[];
applySearchFilter(filter: QueryFilter): void;
applyLocalSearchFilter(filter: QueryFilter): void;
/**
* Determina si se debería o no mostrar el mensaje de cargando
*/
shouldShowProgressView(): false;
shouldShowErrorView(): boolean;
shouldShowTitleBar(): boolean;
shouldShowContent(): boolean;
/** Whether the number of selected elements matches the total number of rows. */
isAllSelected(): boolean;
/** Selects all rows if they are not all selected; otherwise clear selection. */
masterToggle(): void;
ngOnDestroy(): void;
updateValue(model: any, fieldName: string, newValue: string | number | boolean): void;
afterValueUpdated(model: T, fieldName: string, newValue: any, oldValue: any): void;
navigateToItemView(id: number): void;
getBaseHref(): string;
getPageIndex(): number;
getPageSize(): number;
getItemNumber(index: number): number;
/**
* Filtra por todas las columnas
* @param text Texto buscado
*/
filterData(text: string): void;
getErrorStatus(): number;
static ɵfac: i0.ɵɵFactoryDeclaration<TableViewComponent<any>, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<TableViewComponent<any>, never, never, {}, { "selectionChange": "selectionChange"; }, never, never, true, never>;
}