import { OnDestroy, OnInit } from '@angular/core'; import { MatPaginator } from '@angular/material'; import { Subscription } from 'rxjs/Subscription'; import { EvkHttpService } from '../../../services/http.service'; import { EvkTableDataSource } from '../../table/datasource'; /** * Base para los paginadores */ export declare abstract class EvkBasePagination implements OnInit, OnDestroy { http: EvkHttpService; /** * Api que se consumira para el paginador */ abstract api: string; /** * Columnas de la tabla */ abstract columns: EstructureBaseColumn[]; /** * Headers visibles */ headers: any[]; columnsDefinition: string[]; dataSource: EvkTableDataSource; load: boolean; pageIndex: number; pageFilter: string; pageSize: number; pageSizeOptions: number[]; pageSub: Subscription; totalRows: number; paginator: MatPaginator; constructor(http: EvkHttpService); ngOnInit(): void; ngOnDestroy(): void; /** * Se tiene que renderear la tabla * @param _e atributo que se recibe del cambio de pagina */ changePage(_e: any): void; /** * * @param _event Evento que se activa al filtrar informacion */ filterPage(_event: any): void; getColumnsDef(): void; page(): void; getColumnValue(_element: any, _column: any): any; findIndex(_object: any, _index: any): any; } /** * Estructura base para la definición de las columnas de una tabla */ export interface EstructureBaseColumn { /** * Titulo de la columna que se mostrará en la cabecera */ title: string; /** * Nombre de la llave que se buscará dentro del objeto para mostrar su valor, * en caso de buscar dentro de objectos anidados se coloca la llave con anotación punto * Ejemplo: `pais.nombre` */ column: string; /** * Pipe que recibe la columna en caso de querer dar formato al texto */ pipe?: { /** * Objeto con el pipe que transformará el texto */ pipe: any; /** * Parametros que recibe el pipe */ params: string; }; }