> ## Documentation Index
> Fetch the complete documentation index at: https://docs-fw.madbuilder.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# TEntry

> O `TEntry` é um componente de entrada de dados simples (derivado da classe `TField`), ou seja, serve para o usuário informar algum texto, como por exemplo, o nome de um produto.

## \_\_construct

Construtor da classe `TEntry`.

**Parâmetros:**
<ResponseField name="$name" type="mixed" required>Nome do campo que será utilizado no formulário.</ResponseField>

**Exemplo de código:**

```php theme={null}
$cnpj = new TEntry('cnpj');
```

<br />

## setValue

Define o valor do campo.

**Parâmetros:**
<ResponseField name="$value" type="mixed" required>Uma string contendo o valor do campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$cnpj = new TEntry('cnpj');
$cnpj->setValue('00.000.000/0000-00');
```

<br />

## setMask

Define a máscara do campo.

**Parâmetros:**
<ResponseField name="$mask" type="mixed" required>Máscara para os dados de entrada.</ResponseField>
<ResponseField name="$replaceOnPost" type="bool" default="false">(Opcional) Booleano indicando se a máscara deve ser substituída após o envio do formulário.</ResponseField>

**Exemplo de código:**

```php theme={null}
$cpf = new TEntry('cpf');
$cpf->setMask('000.000.000-00');
```

<br />

## setNumericMask

Define a máscara numérica do campo.

**Parâmetros:**
<ResponseField name="$decimals" type="mixed" required>Número de casas decimais.</ResponseField>
<ResponseField name="$decimalsSeparator" type="mixed" required>Separador para o ponto decimal.</ResponseField>
<ResponseField name="$thousandSeparator" type="mixed" required>Separador de milhares.</ResponseField>
<ResponseField name="$replaceOnPost" type="bool" default="false">(Opcional) Booleano indicando se a máscara deve ser substituída após o envio do formulário.</ResponseField>
<ResponseField name="$reverse" type="bool" default="false">(Opcional) Booleano indicando se a máscara deve ser invertida.</ResponseField>
<ResponseField name="$allowNegative" type="bool" default="true">(Opcional) Booleano indicando se valores negativos são permitidos.</ResponseField>

**Exemplo de código:**

```php theme={null}
$preco = new TEntry('preco');
$preco->setNumericMask(2, ',', '.');    
```

**Exemplo de código (com parâmetros opcionais):**

```php theme={null}
$preco = new TEntry('preco');
$preco->setNumericMask(2, ',', '.', true, true, false); 
```

<br />

## setCompletion

Define as opções de preenchimento automático para o campo.

**Parâmetros:**
<ResponseField name="$options" type="array" required>Array de opções para conclusão.</ResponseField>

**Exemplo de código:**

```php theme={null}
$genero = new TEntry('genero');
$genero->setCompletion(['Feminino', 'Masculino', 'Outro', 'Prefiro não dizer']);    
```

<br />

## setMaxLength

Define o comprimento máximo do campo.

**Parâmetros:**
<ResponseField name="$length" type="mixed" required>Comprimento máximo do campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$rg = new TEntry('rg');
$rg->setMaxLength(10);
```

<br />

## setMinLength

Define o comprimento mínimo para pesquisa (requer uso do 'setCompletion').

**Parâmetros:**
<ResponseField name="$length" type="mixed" required>Comprimento mínimo para pesquisa.</ResponseField>

**Exemplo de código:**

```php theme={null}
$genero = new TEntry('genero');
$genero->setCompletion(['Feminino', 'Masculino', 'Outro', 'Prefiro não dizer']);
$genero->setMinLength(3);
```

<br />

## setExitAction

Define a ação a ser executada quando o usuário sair do campo.

**Parâmetros:**
<ResponseField name="$action" type="TAction" required>Objeto `TAction`.</ResponseField>

**Exemplo de código:**

```php theme={null}
$cep = new TEntry('cep');
$cep->setExitAction(new TAction(['NomeClasseDeControle', 'onExitCampo']))
```

Código de exemplo da função a ser chamada, lembrando que essa função precisa ser estática (static function).

```php theme={null}
public static function onExitCampo($param = null)
{
    new TMessage('info', print_r($param, true));
}
```

<br />

## setExitFunction

Define a função JavaScript a ser executada quando o usuário sair do campo.

**Parâmetros:**
<ResponseField name="$function" type="mixed" required>Função JavaScript.</ResponseField>

**Exemplo de código:**

```php theme={null}
$toast = new TEntry('usuario');
$toast->setExitFunction('alert("Você saiu do campo Nome de Usuário.");');
```

<br />

## enableToggleVisibility

Ativa ou desativa a opção de alternar a visibilidade do campo.

**Parâmetros:**
<ResponseField name="$toggleVisibility" type="bool" default="true">(Opcional) Booleano indicando se a opção deve ser ativada.</ResponseField>

**Exemplo de código:**

```php theme={null}
$cnpj = new TEntry('cnpj');
$cnpj->setValue('00.000.000/0000-00');
$cnpj->setSize(200);
$cnpj->enableToggleVisibility();
```

<br />

## setDelimiter

Define o delimitador de conclusão automática (permite múltiplas inserções).

**Parâmetros:**
<ResponseField name="$delimiter" type="mixed" required>Delimitador de conclusão automática.</ResponseField>

**Exemplo de código:**

```php theme={null}
$genero = new TEntry('genero');
$genero->setCompletion(['Feminino', 'Masculino', 'Outro', 'Prefiro não dizer']);
$genero->setDelimiter(',');
```

<br />

## disableAutoComplete

Desativa o preenchimento automático do navegador.

**Exemplo de código:**

```php theme={null}
$senha = new TEntry('senha');
$senha->disableAutoComplete();
```

<br />

## forceLowerCase

Força letras minúsculas no campo.

**Exemplo de código:**

```php theme={null}
$codigo = new TEntry('codigo');
$codigo->forceLowerCase();
```

<br />

## forceUpperCase

Força letras maiúsculas no campo.

**Exemplo de código:**

```php theme={null}
$placaVeiculo = new TEntry('placaVeiculo');
$placaVeiculo->forceUpperCase();
```

<br />

## setInnerIcon

Define o ícone interno do campo.

**Parâmetros:**
<ResponseField name="$image" type="TImage" required>Objeto `TImage` representando o ícone.</ResponseField>
<ResponseField name="$side" type="string" default="right">(Opcional) Lado do ícone.</ResponseField>

**Exemplo de código:**

```php theme={null}
$nomeUsuario = new TEntry('nomeUsuario');
$icone = new TImage('fas fa-user');
$nomeUsuario->setInnerIcon($icone, 'left');
```

<br />

## getPostData

Obtém os dados enviados no POST (transformará valores de acordo com a máscara do banco de dados).

**Exemplo de código (com máscara):**

```php theme={null}
$cpf = new TEntry('cpf');
$cpf->setMask('000.000.000-00', true);

$dadosPostados = $cpf->getPostData();
```

**Exemplo de código (com máscara numérica):**

```php theme={null}
$preco = new TEntry('preco');
$preco->setNumericMask(2, ',', '.', true);

$dadosPostados = $preco->getPostData();
```

<br />

## exitOnEnter

Ativa a ação de saída ao pressionar Enter no campo.

**Exemplo de código:**

```php theme={null}
$email = new TEntry('email');
$email->setExitAction(new TAction(['NomeClasseDeControle', 'onExitCampo']));
$email->exitOnEnter();
```

Código de exemplo da função a ser chamada, lembrando que essa função precisa ser estática (static function).

```php theme={null}
public static function onExitCampo($param = null)
{
    new TMessage('info', print_r($param, true));
}
```

<br />

## reloadCompletion

(Método estático) Recarrega as opções de conclusão de um campo de entrada de forma dinâmica.

**Parâmetros:**
<ResponseField name="$field" type="mixed" required>Nome ou ID do campo.</ResponseField>
<ResponseField name="$list" type="mixed" required>Lista de opções para a conclusão.</ResponseField>
<ResponseField name="$options" type="mixed" default="null">(Opcional) Opções adicionais para a conclusão.</ResponseField>

**Exemplo de código:**

```php theme={null}
$genero = new TEntry('genero');
$genero->setCompletion(['Feminino', 'Masculino']);

$btnGenero = new TButton('btnReloadCompletion');
$btnGenero->addStyleClass('btn-default');
$btnGenero->setImage('far:circle #000000');
$btnGenero->setAction(new TAction([$this, 'alterarOpcoes']), 'Alterar Opções');
```

Código de exemplo da função a ser chamada, lembrando que essa função precisa ser estática (static function).

```php theme={null}
public static function alterarOpcoes($param = null)
{
    TEntry::reloadCompletion('genero', ['Masculino', 'Feminino', 'Outro', 'Prefiro não dizer']);
}
```

<br />

## changeMask

(Método estático) Altera a máscara de um campo de entrada dinamicamente.

**Parâmetros:**
<ResponseField name="$formName" type="mixed" required>Nome do formulário.</ResponseField>
<ResponseField name="$name" type="mixed" required>Nome do campo no formulário.</ResponseField>
<ResponseField name="$mask" type="mixed" required>Nova máscara para o campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$cnpj = new TEntry('cnpj');
$cnpj->setValue('1234567800019900000');

$btnCnpj = new TButton('btnCnpjChangeMask');
$btnCnpj->addStyleClass('btn-default');
$btnCnpj->setImage('far:circle #000000');
$btnCnpj->setAction(new TAction([$this, 'alterarMascara']), 'Alterar Máscara');
```

Código de exemplo da função a ser chamada, lembrando que essa função precisa ser estática (static function).

```php theme={null}
public static function alterarMascara($param = null)
{
    TEntry::changeMask('nomeForm', 'cnpj', '00.000.000/0000-00');
}
```
