import { DataUnit, KeyboardManager } from '@sankhyalabs/core'; import { IGridConfig, IStatusResolver, StatusResolverFunction } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController'; import { ICustomFormatter, ISelectionToastConfig } from '@sankhyalabs/ezui/dist/types/components/ez-grid/interfaces'; import { IMultiSelectionListDataSource } from '@sankhyalabs/ezui/dist/types/components/ez-multi-selection-list/interfaces/IMultiSelectionListDataSource'; import { ICustomEditor, ICustomRender } from '@sankhyalabs/ezui/dist/types/utils'; import { IRecordValidator } from '@sankhyalabs/ezui/dist/types/utils/form/interfaces'; import { EventEmitter } from '../../stencil-public-runtime'; import { PresentationMode } from '../../lib/@types'; import RmPrecisionCustomValueFormatter from '../../lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter'; import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder'; import { SnkApplication } from '../snk-application/snk-application'; import { IExporterStrategyMode } from '../snk-data-exporter/interfaces/IRecordID'; import { DataState, SnkDataUnit } from '../snk-data-unit/snk-data-unit'; import { SnkFilterItemConfig } from '../snk-filter-bar/filter-item/snk-filter-item'; import TaskbarProcessor from '../snk-taskbar/processor/taskbar-processor'; import { Action, TaskbarManager } from '../snk-taskbar/snk-taskbar'; export declare class SnkGrid { _grid: HTMLEzGridElement; _snkDataUnit: HTMLSnkDataUnitElement; _snkGridConfig: HTMLSnkGridConfigElement; _snkEmailSender: HTMLSnkExporterEmailSenderElement; _snkFilterBar: HTMLSnkFilterBarElement; _columnSearch: HTMLEzSearchElement; _moreOptions: HTMLEzActionsButtonElement; _customEditors: Map; _customRenders: Map; _snkDataUnitInstance: SnkDataUnit; _rmPrecisionCustomValueFormatter: RmPrecisionCustomValueFormatter; _keyboardManager: KeyboardManager; _topTaskbarProcessor: TaskbarProcessor; _headerTaskbarProcessor: TaskbarProcessor; private getGridHeaderSelectedBtns; private _continuousInsertUtils; _element: HTMLElement; _dataUnit: DataUnit; _dataState: DataState; _gridConfig: IGridConfig; _popUpGridConfig: boolean; _showSnkFilterBar: boolean; _enableContinuousInsert: boolean; _application: SnkApplication; /** * Define o data source para o filtro de colunas. */ columnFilterDataSource: IMultiSelectionListDataSource; refreshColumnFilterDataSource(): Promise; /** * Define se o componente deve usar o LockManager para controle de carregamento da aplicação. */ enableLockManagerLoadingComp?: boolean; /** * Ativa o gerenciamento de locks na grade pela Taskbar. */ enableLockManagerTaskbarClick?: boolean; /** * Nome usado para salvar e recuperar a configuração da grade. */ configName: string; /** * Título que será apresentado na barra de filtros. */ filterBarTitle: string; /** * Identificador de recursos, como configurações e permissões de acesso. */ resourceID: string; /** * Configuração do toast de seleção da grade. */ selectionToastConfig: ISelectionToastConfig; /** * Lista de ações que devem ser usadas no botão "Mais opções" do `snk-taskbar`. */ actionsList: Array; /** * Determina se a grade está vinculada a um detalhe de outra tela. */ isDetail: boolean; /** * Gerenciador das barras de tarefas. Permite determinar botões específicos * ou gerenciar o estado dos botões. */ taskbarManager: TaskbarManager; /** * Define a configuração de cores para a coluna de status. * @example * ```json * '{ "RECDESP": { "-1" : "#BD0025", "1" : "#157A00" } }' * ``` */ statusResolver: IStatusResolver | StatusResolverFunction; /** * Determina se a seleção de múltiplas linhas é permitida. */ multipleSelection: boolean; /** * Altera o modo de apresentação dos botões do `snk-taskbar`. */ presentationMode: PresentationMode; /** * Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção. */ messagesBuilder: SnkMessageBuilder; /** * Quando `true`, a tecla ENTER navega entre as células como a tecla TAB. */ useEnterLikeTab: boolean; /** * Validador responsável por verificar a integridade dos dados de um registro. */ recordsValidator: IRecordValidator; /** * Define se a edição de dados na grade está habilitada. */ canEdit: boolean; /** * Define o identificador do contêiner de elementos customizados da `Taskbar`. */ taskbarCustomContainerId: string; /** * Define o nome do slot para elementos customizados na `Taskbar` do cabeçalho da grade. */ gridHeaderCustomSlotId: string; /** * Define o nome do slot para elementos customizados na `Taskbar` principal do componente. */ topTaskbarCustomSlotId: string; /** * Desabilita a apresentação da opção de filtros personalizados na barra de filtros (chip de filtros) * e no modal lateral de filtros (contêiner de filtros personalizados). */ disablePersonalizedFilter: boolean; /** * Chave da configuração legada da grade. */ gridLegacyConfigName: string; /** * Chave da configuração legada da barra de filtros. */ filterBarLegacyConfigName: string; /** * Define se os dados serão carregados automaticamente na inicialização do componente. */ autoLoad?: boolean; /** * Define se a grade receberá o foco automaticamente ao ser carregada. */ autoFocus?: boolean; /** * Habilita a inserção de registros diretamente na grade. */ enableGridInsert?: boolean; /** * Altera a aparência das bordas e sombras do componente. * Se `false`, aplica o padrão de sombras (ideal para o elemento principal do layout). * Se `true`, aplica um contorno (ideal para quando o componente está dentro de outro, como um painel ou pop-up). */ outlineMode?: boolean; /** * Define se a grade deve suprimir a barra de rolagem horizontal. */ suppressHorizontalScroll: boolean; /** * Define o modo de exportação dos dados. */ strategyExporter: IExporterStrategyMode; /** * Define se a grade deve exibir um buscador de colunas ao pressionar `Ctrl+F`. */ useSearchColumn: boolean; /** * Habilita a edição de múltiplos registros simultaneamente. */ multipleEditionEnabled: boolean; /** * Define o modo de exibição do contador de paginação. */ paginationCounterMode?: 'show' | 'hidden' | 'auto'; /** * Informa se a coluna de checkbox deve ser suprimida. */ suppressCheckboxColumn: boolean; /** * Informa se a grade deve suprimir o filtro de coluna. */ suppressFilterColumn?: boolean; /** * Define se a grade deve ser exibida em modo compacto. */ compact: boolean; /** * @description Configuração customizada dos filtros. * @param {Array} config - Lista de configurações de filtros. */ filterCustomConfig?: Array; /** * @description Intercepta a configuração dos filtros antes de serem aplicadas. * @param {Array} config - Lista de configurações de filtros. * @returns {Array} Retorna a lista de configurações de filtros. */ filterCustomConfigInterceptor?: (config: Array) => Array; /** * Emitido ao clicar em um botão de ação ou item de menu. * @description Este evento é acionado quando o usuário clica em um botão de ação ou item de menu na grade, permitindo a execução de ações específicas. * @param {string} detail - O identificador da ação clicada, que pode ser usado para determinar qual ação executar. */ actionClick: EventEmitter; /** * Emitido ao realizar um duplo clique em uma linha da grade. * @description Este evento é acionado quando o usuário clica duas vezes em uma linha da grade, permitindo ações como edição rápida ou visualização de detalhes. * @param {any} detail - Detalhes do evento, contendo a linha clicada. */ gridDoubleClick: EventEmitter; /** * Emitido quando o componente estiver completamente carregado. */ componentReady: EventEmitter; /** * Recarrega a configuração da grade. * @description Este método força o recarregamento da configuração da grade a partir do `ConfigStorage`. A operação é assíncrona, mas o método não aguarda sua conclusão. */ reloadConfig(): void; /** * Exibe a janela de configurações da grade. * @async * @description Este método abre o pop-up de configuração de colunas da grade, permitindo ao usuário ajustar a visibilidade, ordem e largura das colunas. * @returns {Promise} Uma promessa que é resolvida quando a janela de configuração é exibida. */ showConfig(): Promise; /** * Fecha a janela de configurações da grade. * @async * @description Este método fecha o pop-up de configuração de colunas da grade. * @returns {Promise} Uma promessa que é resolvida quando a janela de configuração é fechada. */ hideConfig(): Promise; /** * Define a configuração da grade. * @async * @description Aplica uma nova configuração de colunas e ordenação à grade. * @param {IGridConfig} config O objeto de configuração a ser aplicado na grade. * @returns {Promise} Uma promessa que é resolvida quando a configuração é aplicada. */ setConfig(config: IGridConfig): Promise; /** * Recarrega a barra de filtros da grade, buscando o estado do servidor. * @async * @description Força o recarregamento da barra de filtros, atualizando suas configurações e filtros a partir do servidor. * @returns {Promise} Uma promessa que é resolvida quando a barra de filtros é recarregada. */ reloadFilterBar(): Promise; /** * Retorna o elemento da barra de filtros da grade. * @async * @description Este método permite acessar o elemento da barra de filtros, que pode ser útil para manipulações adicionais ou para obter o estado atual dos filtros aplicados. * @returns {Promise} O elemento da barra de filtros. */ getFilterBar(): Promise; /** * Registra um editor customizado para um campo da grade ou formulário. * @async * @description Adiciona um componente de edição personalizado para um campo específico. Este editor será usado tanto na edição em linha na grade quanto em formulários de detalhe. * @param {string} fieldName O nome do campo que receberá o editor customizado. * @param {ICustomEditor} customEditor A instância do editor customizado. * @param {string} [detailContext] O contexto de detalhe onde o editor será aplicado (opcional). * @returns {Promise} Uma promessa que é resolvida quando o editor é registrado. */ addCustomEditor(fieldName: string, customEditor: ICustomEditor, detailContext?: string): Promise; /** * Registra um renderizador customizado para uma coluna da grade. * @async * @description Adiciona um componente de renderização personalizado para uma coluna específica, permitindo a exibição de conteúdo customizado nas células. * @param {string} fieldName O nome do campo (coluna) que receberá o renderizador customizado. * @param {ICustomRender} customRender A instância do renderizador customizado. * @param {string} [detailContext] O contexto de detalhe onde o renderizador será aplicado (opcional). * @returns {Promise} Uma promessa que é resolvida quando o renderizador é registrado. */ addGridCustomRender(fieldName: string, customRender: ICustomRender, detailContext?: string): Promise; /** * Registra um formatador de valor customizado para uma coluna da grade. * @async * @description Adiciona uma função de formatação personalizada para os valores de uma coluna específica, afetando como os dados são exibidos. * @param {string} columnName O nome da coluna que receberá o formatador. * @param {ICustomFormatter} customFormatter A instância do formatador de valor. * @returns {Promise} Uma promessa que é resolvida quando o formatador é registrado. */ addCustomValueFormatter(columnName: string, customFormatter: ICustomFormatter): Promise; /** * Remove um formatador de valor customizado de uma coluna da grade. * @async * @description Remove uma função de formatação personalizada previamente registrada para uma coluna. * @param {string} columnName O nome da coluna da qual o formatador será removido. * @returns {Promise} Uma promessa que é resolvida quando o formatador é removido. */ removeCustomValueFormatter(columnName: string): Promise; /** * Atribui o foco para a grade. * @async * @description Move o foco do navegador para o componente da grade, permitindo a navegação por teclado. * @returns {Promise} Uma promessa que é resolvida quando o foco é atribuído. */ setFocus(): Promise; handleClick(event: MouseEvent): Promise; private hasToBlockEvent; handleGridLegacyConfigName(newLegacyConfig: string, oldLegacyConfig: string): Promise; private handleAddFormMode; private openGridConfig; private closeGridConfig; private setGridConfig; private fixColumNameCharset; private normalizeGridConfig; private loadConfig; private addGridLegacyConfigName; private hasCalculatedFields; private gridConfigChangeHandler; private modalConfigChangeHandler; private hasToForceClientSideExporter; private dataExporterProviderStore; private addElementID; private loadGridCustomFormatters; private interceptMetadataLoaded; private interceptLoadData; private dataUnitInterceptor; private finishLoading; private setCustomRenders; private setCustomEditors; componentWillLoad(): void; componentDidRender(): void; private handleDataStateChange; getHeaderDisabledButtons(): Array; private getInvisibleButtons; componentWillRender(): void; private getHeaderTaskbarId; private getTopTaskBarId; private getPrimaryButton; private getColumnSearch; private getActionsList; private getActionsSettingsList; private handleFilterConfigUpdated; private getGridHeaderButtons; private isGridInsertActive; render(): any; }