ngx-sp-infra
Version:
Biblioteca de utilitários da Infra.
126 lines (125 loc) • 7.54 kB
TypeScript
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { TableHeaderStructure } from '../../models/table/header-structure.model';
import * as i0 from "@angular/core";
export declare class LibCustomizableTableComponent implements OnInit, AfterViewInit, OnChanges {
private readonly _cdr;
private readonly _renderer;
private _paginationID;
private _recordsList;
private _currentPage;
private _currentItemsPerPage;
/** Lista de registros a serem exibidos na tabela.
* @required */
get list(): any[] | undefined;
set list(value: any[] | undefined);
/** Lista de cabeçalhos para as colunas da tabela, incluindo o nome, a largura da coluna e classes customizadas.
* @see TableHeaderStructure
*/
headers: TableHeaderStructure[];
/** Opções de contagem de itens por página disponíveis para o usuário.
* @required */
counts?: number[];
/** Determina se haverá uma coluna inicial para seleção de registros na tabela. */
useSelection: boolean;
/** Determina o número de registros selecionados. */
selectedCount?: number;
selection: boolean | undefined;
/** Determina se a tabela deve usar paginação.
* @default true */
usePagination: boolean;
/** Informa se o counter de registros deve aparecer ou não.
* @default true */
showCounter: boolean;
/** Informa se as rows da tabela devem ter o efeito de hover.
* @default true */
hoverable: boolean;
/** Informa se a table deve permitir scroll lateral.
* Se for true, todas as colunas terão a largura fixa de 250px, ignorando valores customizados (esta definição pode mudar no futuro).
* @default false */
scrollable: boolean;
/** Informa se a table deve ser exibida com o estilo anterior à atualização.
* @default false */
usePreviousStyle: boolean;
/** Mensagem customizada para lista vazia */
emptyListMessage?: string;
/** Informa se a lógica e elementos de paginação devem ficar fora do componente e serem gerenciados pelo componente pai.
* @default false */
useCustomPagination: boolean;
/**
* DEVE ser utilizada em caso de paginação visível.
* Informa um ID para a paginação da tabela específica, usada para distinguir tabelas distintas.
* @example
* ```html
* <lib-table paginationID="simpleTableExample"></lib-table>
* ```
*/
get paginationID(): string;
set paginationID(value: string);
divBorderClass: string;
tableBorderClass: string;
templates: Record<string, TemplateRef<any> | null>;
upperContentTemplate?: TemplateRef<any>;
/** Evento emitido quando o número de itens por página é alterado. */
itemsPerPageChange: EventEmitter<number>;
/** Evento emitido quando a página é alterada. */
pageChange: EventEmitter<number>;
/** Evento emitido quando o checkbox de seleção se alterar. */
selectionChange: EventEmitter<boolean>;
/** Caso seja usado um ícone na coluna e a opção ```headers.icon.emitClick``` for true, ao clicar nela emite este evento que leva consigo o nome da coluna em questão. */
iconClick: EventEmitter<string>;
/** Evento emitido quando as colunas são modificadas. */
colunasModificadas: EventEmitter<TableHeaderStructure[]>;
/** Página atual da tabela. */
get page(): number;
set page(value: number);
/** Número de itens a serem exibidos por página. */
get itemsPerPage(): number;
set itemsPerPage(value: number);
get firstItemOfPage(): number;
get lastItemOfPage(): number;
get itemsDisplayText(): string;
emptyListTD?: ElementRef<HTMLTableCellElement>;
colspanWidth: string;
constructor(_cdr: ChangeDetectorRef, _renderer: Renderer2);
/** Inicializa o componente e define o número inicial de itens por página. */
ngOnInit(): void;
ngAfterViewInit(): void;
/** Monitora as mudanças nas entradas do componente e realiza ajustes, como resetar a paginação ou validar o layout das colunas.
* @param changes Objeto que contém as mudanças nas entradas do componente. */
ngOnChanges(changes: SimpleChanges): void;
/** Modifica a quantidade de itens a ser mostrada na lista.
* @param event parâmetro de evento que irá selecionar a nova quantidade. */
onSelectChange(event: any): void;
/** Reseta a paginação da listagem com base no número atual de registros.
* @param list Lista de registros para resetar a paginação. */
resetPagination(list: unknown[]): void;
/** Atualiza headers visíveis e emite evento de modificação */
updateHeadersVisibility(headers: TableHeaderStructure[]): void;
/** Emite um evento de correção de página */
emitPageBoundsCorrection(page: number): void;
/** Atualiza as informações relacionadas ao contador (usado no footer da tabela, por exemplo) */
private updateCounterInfo;
/** Atualiza o colspan para a célula de "lista vazia" e força detecção de mudança */
private updateColspanWidth;
/** Valida os headers da tabela quanto ao uso correto de classes de largura */
private validateHeaders;
/** Objeto para armazenar a direção de ordenação de cada coluna */
sortDirection: {
[key: string]: 'asc' | 'desc';
};
/** Coluna atualmente selecionada para ordenação */
currentSortColumn: string;
/** Função chamada quando ocorre uma mudança na ordenação */
onSortChange(event: {
direction: string;
column: string;
}): void;
/** Função de ordenação dos dados da tabela */
private sortData;
/** Compara os valores das propriedades entre dois objetos */
private compareProperties;
/** Obtém o valor de uma propriedade específica de um objeto, com suporte a paths aninhados */
private getProperty;
static ɵfac: i0.ɵɵFactoryDeclaration<LibCustomizableTableComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LibCustomizableTableComponent, "lib-customizable-table", never, { "list": { "alias": "list"; "required": true; }; "headers": { "alias": "headers"; "required": true; }; "counts": { "alias": "counts"; "required": false; }; "useSelection": { "alias": "useSelection"; "required": false; }; "selectedCount": { "alias": "selectedCount"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "usePagination": { "alias": "usePagination"; "required": false; }; "showCounter": { "alias": "showCounter"; "required": false; }; "hoverable": { "alias": "hoverable"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "usePreviousStyle": { "alias": "usePreviousStyle"; "required": false; }; "emptyListMessage": { "alias": "emptyListMessage"; "required": false; }; "useCustomPagination": { "alias": "useCustomPagination"; "required": false; }; "paginationID": { "alias": "paginationID"; "required": false; }; "divBorderClass": { "alias": "divBorderClass"; "required": false; }; "tableBorderClass": { "alias": "tableBorderClass"; "required": false; }; "templates": { "alias": "templates"; "required": false; }; "upperContentTemplate": { "alias": "upperContentTemplate"; "required": false; }; }, { "itemsPerPageChange": "itemsPerPageChange"; "pageChange": "pageChange"; "selectionChange": "selectionChange"; "iconClick": "iconClick"; "colunasModificadas": "colunasModificadas"; }, never, never, true, never>;
}