import * as i0 from '@angular/core'; import { AfterViewInit, EventEmitter, ElementRef, OnChanges, TemplateRef, SimpleChanges } from '@angular/core'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort, SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { MatMenuTrigger } from '@angular/material/menu'; import { SelectionModel } from '@angular/cdk/collections'; import { MatListOption } from '@angular/material/list'; import { CsvService } from 'ngx-redi-core/Helper'; interface FilterItem { name: string; isSelected: boolean; isVisible: boolean; } /** * Interface que define una columna */ interface ColumnDefinition { /** Contiene la etiqueta para la columna */ etiqueta: string; /** * Contiene el identificador de la columna */ identificador: string; filters: Array; isSort: boolean; sortDirection: string; haveFilters: boolean; customTemplate: boolean; } /** * Interface que define una acción en el row */ interface RowAction { /** * Contiene el icono para la acción */ icono: string; tooltip: string; accion: (item: T) => void; deshabilitar: (item: T) => boolean; } /** * Interfaz que define la estructura de configuración y datos para una tabla */ interface DataTable { /** * Contiene el arreglo con los datos */ dataSource: Array; /** * Contiene la definición de las columnas que se mostraran en la tabla */ columnas: Array; /** * Contiene las acciones a realizar para los datos de la tabla */ acciones: Array>; /** * Contiene los elementos seleccionados */ seleccion: SelectionModel; csvName: string; emptyMessage: string; } declare class FilterDataComponent implements AfterViewInit { set filtrosColumnas(value: Array); _refFiltro: Array; filtros: Array; allItemControl: MatListOption; filterEnd: EventEmitter; control: ElementRef; constructor(); ngAfterViewInit(): void; selectedChange(): void; setAllCheck(value: boolean): void; isAllChecked(filters: Array): boolean; changeFilter(): void; aplicarFiltros(): void; cancelarFiltro(): void; loadData(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** Librerías angular */ /** * Componente que muestra los datos en una tabla * @decorators ´@Component´ */ declare class RediTableComponent implements OnChanges { private csv; /** * Propiedad que indica si se pueden seleccionar las filas */ seleccionarFilas: boolean; /** * Propiedad que indica si se habilitan los filtros para la tabla */ filtrarDatos: boolean; descargaCsv: boolean; /** * Propiedad que indica si se paginan los datos */ paginar: boolean; /** * Propiedad que indica si se habilita el ordenamiento de datos */ ordenarDatos: boolean; /** * Datos y configuración de la tabla */ set dataTable(data: DataTable); get dataTable(): DataTable; templateAction: TemplateRef; templateRow: TemplateRef; /** * Origen interno de datos para la tabla */ private internalTable; dataSource: MatTableDataSource; /** * Objeto de la vista para el ordenamiento */ sort: MatSort; /** * Objeto de la vista para la paginación */ paginator: MatPaginator; /** * Contiene las columnas que se mostraran en la tabla */ columnas: Array; /** * Contiene los datos de las columnas */ datosColumna: Array; componenteFiltro: FilterDataComponent; inputFiltro: ElementRef; /** * Crea un nuevo componente Tabla */ constructor(csv: CsvService); closeMenu(header: HTMLTableCellElement): void; openMenu(header: HTMLTableCellElement): void; /** * Eventos que se ejecutan al iniciar */ private actualizarTabla; /** * Construye los datos de las columnas para la tabla */ private construirDatosColumna; private generateFilterData; /** * Activa las columnas que se van a mostrar */ private mostrarColumnas; /** * Método que ejecuta los cambios en la selección de filas * @param currentValue - Valor actual */ private changeSelection; /** * Método que valida los cambios en los datos de entrada * @param changer - Cambios realizados en la vista */ ngOnChanges(changes: SimpleChanges): void; private actualizarSeleccion; private actualizarFiltro; private reasignarPaginacion; private actualizarPaginacion; /** * Método que aplica el filtro a los datos de la tabla * @param filtro - Evento de filtrado */ applyFilter(filtro: string): void; private limpiarColumnas; /** * Método que indica si se debe mostrar la columna de acciones * @returns True si se debe mostrar las acciones */ verAcciones(): boolean; /** * Método que inicializa el Paginador */ private inicializarPaginador; /** * Indica si el ordenamiento esta activo */ ordenamientoActivo(): boolean; asignarOrden(column: ColumnDefinition, orden: SortDirection): void; /** Alterna la selección de registros de la tabla */ alternarSeleccion(): void; /** * Indica si todo el contenido esta seleccionado * @returns True si todo el contenido esta seleccionado */ todoSeleccionado(): boolean; /** * Obtiene el estado de la etiqueta de seleccionado * @param fila - Fila que se validara * @returns Estado de selección en modo texto */ validarEtiqueta(fila?: any): string; generaCsv(archivo: string, soloSeleccionados?: boolean): void; onRowSelect(event: T): void; onRowClick: EventEmitter; stopPropagation(clickEvent: MouseEvent): void; cambioFiltro(menu: MatMenuTrigger, isChange: boolean, columna: ColumnDefinition): void; customParameter(data: T, filter: string): boolean; accionDesactivada(action: RowAction, element: T): boolean; getElementContext(data: unknown): T; buildTemplateData(key: string, value: unknown): any; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "redi-table", never, { "seleccionarFilas": { "alias": "seleccionarFilas"; "required": false; }; "filtrarDatos": { "alias": "filtrarDatos"; "required": false; }; "descargaCsv": { "alias": "descargaCsv"; "required": false; }; "paginar": { "alias": "paginar"; "required": false; }; "ordenarDatos": { "alias": "ordenarDatos"; "required": false; }; "dataTable": { "alias": "dataTable"; "required": false; }; "templateAction": { "alias": "templateAction"; "required": false; }; "templateRow": { "alias": "templateRow"; "required": false; }; }, { "onRowClick": "onRowClick"; }, never, never, true, never>; } declare class RediTableColComponent { data: { column: ColumnDefinition; value: T; }; colName: string; showContent: boolean; constructor(); ngAfterViewInit(): void; private isShow; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "redi-table-col", never, { "data": { "alias": "data"; "required": false; }; "colName": { "alias": "colName"; "required": false; }; }, {}, never, ["*"], true, never>; } export { RediTableColComponent, RediTableComponent }; export type { ColumnDefinition, DataTable, RowAction };