# snk-crud



<!-- Auto Generated Below -->


## Properties

| Property                        | Attribute                           | Description                                                                                                                                                       | Type                                                                                        | Default                        |
| ------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------ |
| `actionsList`                   | --                                  | Ações a serem colocadas no botão "Mais opções" do componente snk-taskbar.                                                                                         | `Action[]`                                                                                  | `undefined`                    |
| `autoFocus`                     | `auto-focus`                        | Define se a grid será focada ao ser carregada.                                                                                                                    | `boolean`                                                                                   | `true`                         |
| `autoLoad`                      | `auto-load`                         | Define se a carga dos dados será feita assim que o componente for carregado.                                                                                      | `boolean`                                                                                   | `undefined`                    |
| `configName`                    | `config-name`                       | Usado para salvar as configurações dos blocos de construção.                                                                                                      | `string`                                                                                    | `undefined`                    |
| `disablePersonalizedFilter`     | `disable-personalized-filter`       | Desabilita a apresentação da opção de filtros personalizados na filter bar (chip de filtros) e no modal lateral de filtros (container de filtros personalizados). | `boolean`                                                                                   | `undefined`                    |
| `domainMessagesBuilder`         | `domain-messages-builder`           | Define a chave customizada para sobrescrever as mensagens (Não pegando pela entidade)                                                                             | `string`                                                                                    | `undefined`                    |
| `enableGridInsert`              | `enable-grid-insert`                | Ativa inserção de registros no modo grade.                                                                                                                        | `boolean`                                                                                   | `false`                        |
| `enableLockManagerLoadingComp`  | `enable-lock-manager-loading-comp`  | Define se o componente deve usar o LockManager para controle de carregamento da aplicação                                                                         | `boolean`                                                                                   | `false`                        |
| `enableLockManagerTaskbarClick` | `enable-lock-manager-taskbar-click` | Ativa o gerenciamento de locks na grade pela Taskbar.                                                                                                             | `boolean`                                                                                   | `false`                        |
| `filterBarLegacyConfigName`     | `filter-bar-legacy-config-name`     | Chave da configuração legado da barra de filtros.                                                                                                                 | `string`                                                                                    | `undefined`                    |
| `filterBarTitle`                | `filter-bar-title`                  | Título que será apresentado na barra de filtros                                                                                                                   | `string`                                                                                    | `undefined`                    |
| `formLegacyConfigName`          | `form-legacy-config-name`           | Chave da configuração legado do formulário.                                                                                                                       | `string`                                                                                    | `undefined`                    |
| `gridLegacyConfigName`          | `grid-legacy-config-name`           | Chave da configuração legado da grade.                                                                                                                            | `string`                                                                                    | `undefined`                    |
| `ignoreReadOnlyFormFields`      | `ignore-read-only-form-fields`      | Ignora os campos "somente leitura" no modo de inserção.                                                                                                           | `boolean`                                                                                   | `undefined`                    |
| `layoutFormConfig`              | `layout-form-config`                | Define se o LayoutFormConfig será exibido no configurador.                                                                                                        | `boolean`                                                                                   | `true`                         |
| `messagesBuilder`               | --                                  | Responsável por flexibilizar e padronizar o uso de mensagens nos blocos de construção.                                                                            | `SnkMessageBuilder`                                                                         | `undefined`                    |
| `multipleEditionEnabled`        | `multiple-edition-enabled`          | Habilita a edição de múltiplos registros simultâneos.                                                                                                             | `boolean`                                                                                   | `true`                         |
| `multipleSelection`             | `multiple-selection`                | Determina se pode haver mais de uma linha selecionada na grade.                                                                                                   | `boolean`                                                                                   | `true`                         |
| `paginationCounterMode`         | `pagination-counter-mode`           | Define se a grid será focada ao ser carregada.                                                                                                                    | `"auto" \| "hidden" \| "show"`                                                              | `'auto'`                       |
| `presentationMode`              | `presentation-mode`                 | Altera o modo de apresentação dos botões do snk-taskbar.                                                                                                          | `PresentationMode.PRIMARY \| PresentationMode.SECONDARY \| PresentationMode.SINGLE_TASKBAR` | `PresentationMode.PRIMARY`     |
| `recordsValidator`              | --                                  | Validador responsável por checar a integridade das informações do registro.                                                                                       | `IRecordValidator`                                                                          | `undefined`                    |
| `selectionToastConfig`          | --                                  | Configuração da seleção de grade no toast.                                                                                                                        | `ISelectionToastConfig`                                                                     | `undefined`                    |
| `setCustomFormTitle`            | --                                  | Define uma função para configurar um título cusotmizado no modo formulário.                                                                                       | `() => string`                                                                              | `undefined`                    |
| `showActionButtons`             | `show-action-buttons`               | Usado para exibir os botões de ação do snk-configurator                                                                                                           | `boolean`                                                                                   | `false`                        |
| `statusResolver`                | --                                  | Configuração do valor da coluna de status. Exemplo: { "RECDESP": { "-1" : "#BD0025", "1" : "#157A00" } }                                                          | `((data: object) => string) \| IStatusResolver`                                             | `undefined`                    |
| `strategyExporter`              | `strategy-exporter`                 | Modo de exportação dos dados.                                                                                                                                     | `"ClientSideExporterStrategy" \| "ServerSideExporterStrategy"`                              | `ExporterStrategy.SERVER_SIDE` |
| `taskbarManager`                | --                                  | Gerenciador das barras de tarefas. É possível determinar botões específicos ou mesmo gerenciar o estado dos botões.                                               | `TaskbarManager`                                                                            | `undefined`                    |
| `useEnterLikeTab`               | `use-enter-like-tab`                | Quando verdadeiro, o ENTER fará a navegação como se fosse a tecla TAB na grade.                                                                                   | `boolean`                                                                                   | `false`                        |


## Events

| Event                | Description                                                                     | Type                                                                    |
| -------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `actionClick`        | Emitido pela taskbar sempre que houver click de botão ou ação.                  | `CustomEvent<string>`                                                   |
| `configuratorCancel` | Emitido quando cancela o salvamento da configuração no configurator do CRUD.    | `CustomEvent<any>`                                                      |
| `configuratorSave`   | Emitido quando salva a configuração no configurator do CRUD.                    | `CustomEvent<any>`                                                      |
| `formItemsReady`     | Responsável por notificar quando ocorrer a renderização de itens do formulário. | `CustomEvent<HTMLElement[]>`                                            |
| `viewModeChanged`    |                                                                                 | `CustomEvent<VIEW_MODE.ATTACHMENT \| VIEW_MODE.FORM \| VIEW_MODE.GRID>` |


## Methods

### `addCustomEditor(fieldName: string, customEditor: ICustomEditor) => Promise<void>`

Registra um editor customizado para campos da grade e formulário.

#### Returns

Type: `Promise<void>`

---

### `addCustomValueFormatter(columnName: string, customFormatter: ICustomFormatter) => Promise<void>`

Registra um formatador de valores para uma coluna da grid.

#### Returns

Type: `Promise<void>`

---

### `addGridCustomRender(fieldName: string, customRender: ICustomRender) => Promise<void>`

Registra um render customizado para colunas da grid.

#### Returns

Type: `Promise<void>`

---

### `closeConfigurator() => Promise<void>`

Usado para fechar o configurator do CRUD

#### Returns

Type: `Promise<void>`

---

### `getFilterBar() => Promise<HTMLSnkFilterBarElement>`

Retorna o elemento da filter-bar da grade.

#### Returns

Type: `Promise<HTMLSnkFilterBarElement>`

---

### `goToView(mode: string) => Promise<void>`

Usado para alternar a visão entre GRID e FORM externamente.

#### Returns

Type: `Promise<void>`

---

### `openConfigurator() => Promise<void>`

Usado para abrir o configurator do CRUD

#### Returns

Type: `Promise<void>`

---

### `reloadFilterBar() => Promise<void>`

Faz o recarregamento da filter-bar do crud, buscando o state no servidor.

#### Returns

Type: `Promise<void>`

---

### `removeCustomValueFormatter(columnName: string) => Promise<void>`

Remove o formatador de valores de uma coluna da grid.

#### Returns

Type: `Promise<void>`

---

### `setFieldProp(fieldName: string, propName: string, value: any) => Promise<void>`

Altera/adiciona uma propriedade nos metadados do campo.

#### Returns

Type: `Promise<void>`




## Dependencies

### Depends on

- [snk-grid](../snk-grid)
- [snk-guides-viewer](subcomponents)
- [snk-attach](../snk-attach)
- [snk-configurator](../snk-configurator)
- [snk-data-exporter](../snk-data-exporter)
- [snk-actions-button](../snk-actions-button)
- [taskbar-split-button](../snk-taskbar/elements/taskbar-split-button)
- [taskbar-actions-button](../snk-taskbar/elements/taskbar-actions-button)

### Graph
```mermaid
graph TD;
  snk-crud --> snk-grid
  snk-crud --> snk-guides-viewer
  snk-crud --> snk-attach
  snk-crud --> snk-configurator
  snk-crud --> snk-data-exporter
  snk-crud --> snk-actions-button
  snk-crud --> taskbar-split-button
  snk-crud --> taskbar-actions-button
  snk-grid --> snk-filter-bar
  snk-grid --> snk-taskbar
  snk-grid --> snk-grid-config
  snk-grid --> snk-data-exporter
  snk-grid --> snk-actions-button
  snk-grid --> taskbar-split-button
  snk-grid --> taskbar-actions-button
  snk-filter-bar --> snk-filter-item
  snk-filter-bar --> snk-personalized-filter
  snk-filter-bar --> snk-filter-modal
  snk-filter-item --> snk-filter-detail
  snk-personalized-filter --> snk-filter-field-search
  snk-personalized-filter --> snk-filter-assistent-mode
  snk-personalized-filter --> snk-filter-advanced-mode
  snk-personalized-filter --> snk-simple-bar
  snk-filter-assistent-mode --> snk-expression-group
  snk-expression-group --> snk-expression-item
  snk-expression-group --> snk-expression-group
  snk-expression-item --> snk-filter-field-search
  snk-expression-item --> snk-filter-param-config
  snk-filter-modal --> snk-filter-modal-item
  snk-filter-modal --> snk-default-filter
  snk-taskbar --> snk-data-exporter
  snk-taskbar --> snk-actions-button
  snk-taskbar --> taskbar-split-button
  snk-taskbar --> taskbar-actions-button
  snk-data-exporter --> snk-exporter-email-sender
  snk-grid-config --> snk-select-box
  snk-guides-viewer --> snk-form-view
  snk-guides-viewer --> snk-data-unit
  snk-guides-viewer --> snk-detail-view
  snk-guides-viewer --> snk-taskbar
  snk-guides-viewer --> snk-form-config
  snk-guides-viewer --> snk-configurator
  snk-guides-viewer --> snk-data-exporter
  snk-guides-viewer --> snk-actions-button
  snk-guides-viewer --> taskbar-split-button
  snk-guides-viewer --> taskbar-actions-button
  snk-form-view --> snk-form-summary
  snk-detail-view --> snk-data-unit
  snk-detail-view --> snk-grid
  snk-detail-view --> snk-form-view
  snk-detail-view --> snk-taskbar
  snk-detail-view --> snk-attach
  snk-detail-view --> snk-data-exporter
  snk-detail-view --> snk-actions-button
  snk-detail-view --> taskbar-split-button
  snk-detail-view --> taskbar-actions-button
  snk-attach --> snk-simple-bar
  snk-attach --> snk-simple-crud
  snk-simple-crud --> snk-taskbar
  snk-simple-crud --> snk-data-unit
  snk-simple-crud --> snk-simple-form-config
  snk-simple-crud --> snk-configurator
  snk-simple-crud --> snk-grid-config
  snk-simple-crud --> snk-data-exporter
  snk-simple-crud --> snk-actions-button
  snk-simple-crud --> taskbar-split-button
  snk-simple-crud --> taskbar-actions-button
  snk-configurator --> snk-layout-form-config
  snk-layout-form-config --> snk-view-representation
  snk-form-config --> config-header
  snk-form-config --> guides-configurator
  snk-form-config --> fields-layout
  snk-form-config --> fields-selector
  config-header --> configs-button
  fields-layout --> field-item
  field-item --> field-config
  fields-selector --> field-item
  style snk-crud fill:#f9f,stroke:#333,stroke-width:4px
```

----------------------------------------------


