import { DataUnit, Record, UnitMetadata } from '@sankhyalabs/core'; import { EventEmitter } from '../../stencil-public-runtime'; import { SIMPLE_CRUD_MODE, VIEW_MODE } from '../../lib/utils/constants'; import { DataState } from '../snk-data-unit/snk-data-unit'; import { FormConfigFetcher } from '../../lib'; import { Action, TaskbarManager } from '../snk-taskbar/snk-taskbar'; import InMemoryLoader from '../../lib/dataUnit/InMemoryLoader'; import { IFieldConfig, IFormConfig } from '@sankhyalabs/ezui/dist/types/utils/form/interfaces'; import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder'; import { IGridConfig } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController'; import SnkMultiSelectionListDataSource from '../snk-grid/filtercolumn/SnkMultiSelectionListDataSource'; import { IAction, ICustomEditor, ICustomRender } from '@sankhyalabs/ezui/dist/types/utils'; import { SnkFormConfigManager } from '../snk-form-config/SnkFormConfigManager'; import { ICustomFormatter } from '@sankhyalabs/ezui/dist/types/components/ez-grid/interfaces'; export declare class SnkSimpleCrud { _viewStack: HTMLEzViewStackElement; _snkConfigurator: HTMLSnkConfiguratorElement; _inMemoryLoader: InMemoryLoader; _metadata: UnitMetadata; _multiSelectionListDataSource: SnkMultiSelectionListDataSource; _columnSearch: HTMLEzSearchElement; _fieldSearch: HTMLEzSearchElement; _splitButton: HTMLEzSplitButtonElement; _splitButtonForm: HTMLEzSplitButtonElement; _grid: HTMLEzGridElement; _snkGridConfig: HTMLSnkGridConfigElement; _resourceID: string; _formConfigManager: SnkFormConfigManager; _gridConfigAlreadyLoaded: boolean; _formConfigAlreadyLoaded: boolean; _formConfigFetcher: FormConfigFetcher; _customEditors: Map; _customRenders: Map; private _taskbarProcessor; private _form; private _rmPrecisionCustomValueFormatter; private _snkDataUnit; private _continuousInsertUtils; private _snkSimpleFormConfig; private _keyboardManager; private _element; _container: HTMLElement; _showPopUpGridConfig: boolean; _currentViewMode: VIEW_MODE; _config: {}; _fieldToGetFocus: string; _customContainerId: string; /** * @description Define se o componente deve usar o LockManager para controle de carregamento da aplicação. */ enableLockManagerLoadingComp?: boolean; /** * @description Ativa o gerenciamento de locks na grade pela Taskbar. */ enableLockManagerTaskbarClick?: boolean; /** * @description Estado atual dos dados. */ dataState: DataState; /** * @description Instância do DataUnit a ser utilizada pelo componente. */ dataUnit: DataUnit; /** * @description Define o nome da entidade que o componente vai utilizar para fazer as operações de CRUD. */ entityName: string; /** * @description Define o modo de operação do CRUD (servidor ou em memória). */ mode: SIMPLE_CRUD_MODE; /** * @description Configuração da grade. */ gridConfig: IGridConfig; /** * @description Configuração do formulário. */ formConfig: IFormConfig; _formFields: IFieldConfig[]; private _fieldsProps; /** * @description Habilita a inserção contínua de registros. */ enableContinuousInsert: boolean; /** * @description Determina se pode haver mais de uma linha selecionada na grade. */ multipleSelection: boolean; /** * @description Determina se será usada mensagem de confirmação padrão na tentativa de cancelar a edição. */ useCancelConfirm: boolean; /** * @description Determina quantas linhas são retornadas por página. */ pageSize: number; /** * @description Identificador de recursos como configurações e acesso. */ resourceID: string; /** * @description Ativa a inserção de registros no modo grade. */ enableGridInsert?: boolean; /** * @description Define o modo de exibição do contador de paginação. */ paginationCounterMode?: 'show' | 'hidden' | 'auto'; /** * @description Emitido quando há qualquer mudança de estado no DataUnit. */ dataStateChange: EventEmitter; /** * @description Emitido quando o DataUnit está pronto. */ dataUnitReady: EventEmitter; /** * @description Emitido sempre que houver clique de botão ou ação na barra de tarefas. */ actionClick: EventEmitter; /** * @description Responsável por notificar quando ocorrer a renderização de itens do formulário. */ formItemsReady: EventEmitter>; /** * @description Emitido quando a configuração no configurador do CRUD é salva. */ configuratorSave: EventEmitter; /** * @description Emitido quando o salvamento da configuração no configurador do CRUD é cancelado. */ configuratorCancel: EventEmitter; /** * @description Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões. */ taskbarManager: TaskbarManager; /** * @description Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção. */ messagesBuilder: SnkMessageBuilder; /** * @description Quando verdadeiro, o ENTER fará a navegação como se fosse a tecla TAB na grade. */ useEnterLikeTab: boolean; /** * @description Ações a serem colocadas no botão "Mais opções" do componente snk-taskbar. */ actionsList: Array; /** * @description Usado para salvar as configurações dos blocos de construção. */ configName: string; /** * @description Usado para exibir os botões de ação do snk-configurator. */ showConfiguratorButtons: boolean; /** * @description Chave da configuração legada da grade. */ gridLegacyConfigName: string; /** * @description Chave da configuração legada do formulário. */ formLegacyConfigName: string; /** * @description Ignora os campos "somente leitura" no modo de inserção. */ ignoreReadOnlyFormFields: boolean; /** * @description Define se a grade será focada ao ser carregada. */ autoFocus?: boolean; /** * @description Define a chave customizada para sobrescrever as mensagens (não pegando pela entidade). */ domainMessagesBuilder: string; /** * @description Habilita a edição de múltiplos registros simultâneos. */ multipleEditionEnabled: boolean; /** * @description Define se o LayoutFormConfig será exibido no configurador. */ layoutFormConfig: boolean; /** * Desabilita a edição na grade. */ disableGridEdition: boolean; /** * @description Registra um editor customizado para campos da grade e do formulário. * @param {string} fieldName - O nome do campo. * @param {ICustomEditor} customEditor - A instância do editor customizado. * @returns {Promise} */ addCustomEditor(fieldName: string, customEditor: ICustomEditor): Promise; /** * @description Registra um renderizador customizado para colunas da grade. * @param {string} fieldName - O nome do campo. * @param {ICustomRender} customRender - A instância do renderizador customizado. * @returns {Promise} */ addGridCustomRender(fieldName: string, customRender: ICustomRender): Promise; /** * @description Define se a carga dos dados será feita assim que o componente for carregado. */ autoLoad?: boolean; /** * @description Altera visualmente as sombras e bordas do componente. * Quando `false`, aplica o padrão de sombras ao componente (utilizar quando for o elemento principal do layout). * Quando `true`, aplica o padrão de contorno ao componente (utilizar quando estiver contido em outro elemento como um painel ou pop-up). */ outlineMode?: boolean; handleResourceIDChanged(newValue: string, oldValue: string): Promise; /** * @description Registra um formatador de valores para uma coluna da grade. * @param {string} columnName - O nome da coluna. * @param {ICustomFormatter} customFormatter - A instância do formatador customizado. * @returns {Promise} */ addCustomValueFormatter(columnName: string, customFormatter: ICustomFormatter): Promise; /** * @description Remove o formatador de valores de uma coluna da grade. * @param {string} columnName - O nome da coluna. * @returns {Promise} */ removeCustomValueFormatter(columnName: string): Promise; /** * @description Altera/adiciona uma propriedade nos metadados do campo. * @param {string} fieldName - O nome do campo. * @param {string} propName - O nome da propriedade. * @param {any} value - O valor da propriedade. * @returns {Promise} */ setFieldProp(fieldName: string, propName: string, value: any): Promise; private loadTaskbarProcessor; private getGridSelectedButtonsCallBack; private getFinishEditionButtonsCallback; private getButtons; private addConfigButton; private get application(); /** * @description Usado para alternar a visão entre GRID e FORM externamente. * @param {VIEW_MODE} view - A visão para a qual navegar. * @returns {Promise} */ goToView(view: VIEW_MODE): Promise; actionClickListener(evt: CustomEvent): void; private handleTaskbarAction; onChangeEntityName(newValue: string): Promise; onModeChange(): void; observeDataState(newValue: DataState, oldValue: DataState): void; observeFormLegacy(newValue: string, oldValue: string): Promise; observeGridLegacy(newValue: string, oldValue: string): Promise; private handleDataStateChange; private processRmPrecision; private handleUpdateGridLegacyConfig; private handleUpdateFormLegacyConfig; private openConfig; private openGridConfig; private openFormConfig; private addGridLegacyConfigName; private loadGridConfig; private formConfigIsLoaded; private loadFormConfig; componentWillRender(): Promise; componentDidRender(): void; componentWillLoad(): void; componentDidLoad(): void; private dataUnitActionHandler; private getMessage; disconnectedCallback(): void; private setCustomRenders; private setCustomEditors; configDatasource(): void; private setFieldsProps; getTaskBarId(): string; initInMemoryDataUnit(): void; /** * @description Define os metadados do DataUnit. * @param {UnitMetadata} metadata - Os metadados a serem definidos. * @returns {Promise} */ setMetadata(metadata: UnitMetadata): Promise; /** * @description Define os registros do DataUnit. * @param {Array} records - Os registros a serem definidos. * @returns {Promise} */ setRecords(records: Array): Promise; /** * @description Obtém os registros do DataUnit. * @returns {Promise>} Uma promessa que resolve com a lista de registros. */ getRecords(): Promise>; /** * @description Usado para abrir o configurador do CRUD. * @returns {Promise} */ openConfigurator(): Promise; /** * @description Usado para fechar o configurador do CRUD. * @returns {Promise} */ closeConfigurator(): Promise; /** * @description Atualiza a configuração do formulário. * @returns {Promise} */ updateConfig(): Promise; processMetadata(): void; private addGridCustomValueFormattters; onDataStateChange(evt: any): void; getTaskBarDisabledButtons(): Array; handleCancelEdit(): void; private handleConfiguratorEvent; private onSelectField; getFieldSearch(splitButton: HTMLEzSplitButtonElement, item: IAction): HTMLElement; private getFormFields; private handleFormSetFields; private fieldsOptionLoader; private isGridInsertActive; getColumnSearch(splitButton: HTMLEzSplitButtonElement, item: IAction): HTMLElement; private getActionsList; private getSettingsListGrid; private getSettingsListForm; private getTopTaskBarId; private clearFieldToFocusHandler; private gridConfigChangeHandler; private modalConfigChangeHandler; private dataExporterProviderStore; private getDataExporterStoreKey; private setGridConfig; private setFormConfig; private closeGridConfig; private getPageSize; private resolveResourceID; private getFormConfig; private updateFormConfig; private handleDataUnitOnInsertionMode; private initKeyboardManager; private handleFormConfigSaved; private focusToGrid; private focusToForm; private renderTaskbarContent; render(): any; }