Skip to content

Commit

Permalink
Melhorias README
Browse files Browse the repository at this point in the history
  • Loading branch information
rubensdemelo committed Feb 3, 2024
1 parent 1907bd4 commit dd40e29
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 80 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## 1.14.3
- Melhorias README

## 1.14.2
- intl: `^0.19.0`

Expand Down
128 changes: 55 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![Brasil Fields](./brasil-fields.svg)

O jeito mais fácil de utilizar padrões e formatos brasileiros em seu projeto Dart.
O jeito mais fácil de utilizar padrões e formatos brasileiros em seu projeto.

[**Testar agora**](https://flutterbootcamp.github.io/brasil_fields/#/)

Expand All @@ -12,41 +12,11 @@ O jeito mais fácil de utilizar padrões e formatos brasileiros em seu projeto D

Este package facilita o desenvolvimento de projetos que utilizam campos com os padrões e formatos brasileiros.

### Formatters

- Altura (2,22)
- Cartão bancário (0000 1111 2222 3333 4444)
- Centavos (R\$) (7,19) (até 3 casas decimais: 7,191)
- CEP (99.999-999)
- CPF (999.999.99-99)
- CNPJ (99.999.999/9999-99)
- Cpf ou Cnpj (se adapta conforme os números são inseridos)
- CNS (111 2222 3333 4444)
- CEST (12.345.67)
- Data (01/01/1900)
- Hora (23:59)
- IOF (1,234567)
- KM (999.999)
- NCM (1234.56.78)
- Peso (111,1)
- Placa de veículo (AAA-1234)
- Real (R\$) (20.550)
- Telefone ( (99) 9999-9999)
- Validade de cartão bancário (12/24 ou 12/2024)
- Temperatura (27,1)

### Padrões

- Estados
- Meses
- Regiões
- Semana

### Como utilizar

Basta incluir o formatter que você quer que o campo tenha, na lista de `inputFormatters` :
Incluir o formatter no parâmetro `inputFormatters`.

**Para garantir que o campo aceite apenas valores numéricos, utilize em conjunto com o formatter `FilteringTextInputFormatter.digitsOnly`.**
>É necessário adicionar o `FilteringTextInputFormatter.digitsOnly` para garantir que o campo aceite apenas valores numéricos.
```dart
TextFormField(
Expand All @@ -58,46 +28,50 @@ TextFormField(
);
```

- `AlturaInputFormatter()`
- `CartaoBancarioInputFormatter()`
- `CentavosInputFormatter()`
- `CepInputFormatter()`
- `CpfInputFormatter()`
- `CnpjInputFormatter()`
- `CpfOuCnpjFormatter()`
- `CESTInputFormatter()`
- `CNSInputFormatter()`
- `DataInputFormatter()`
- `HoraInputFormatter()`
- `IOFInputFormatter()`
- `KmInputFormatter()`
- `NCMInputFormatter()`
- `PesoInputFormatter()`
- `PlacaVeiculoInputFormatter()` (**atenção**: nao utilizar `FilteringTextInputFormatter.digitsOnly`)
- `RealInputFormatter()`
- `TelefoneInputFormatter()`
- `ValidadeCartaoInputFormatter()`

Caso precise de um DropdownButton com algumas das classes de padrões:
### Formatters

| Padrão | Formatter | Formato
|:------------------|:-------------------------------|:----------------
| Altura | AlturaInputFormatter() | 2,22
| Cartão | CartaoBancarioInputFormatter() | 0000 1111 2222 3333 4444
| Centavos | CentavosInputFormatter() | 7,194
| CEP | CepInputFormatter() | 99.999-999
| CPF | CpfInputFormatter() | 999.999.99-99
| CNPJ | CnpjInputFormatter() | 99.999.999/9999-99
| CPF / CNPJ | CpfOuCnpjFormatter() | se adapta conforme os números são inseridos
| CEST | CESTInputFormatter() | 12.345.67
| CNS | CNSInputFormatter() | 111 2222 3333 4444
| Data | DataInputFormatter() | 01/01/1900
| Hora | HoraInputFormatter() | 23:59
| IOF | HoraInputFormatter() | 1,234567
| KM | KmInputFormatter() | 999.999
| NCM | NCMInputFormatter() | 1234.56.78
| Peso | PesoInputFormatter() | 111,1
| Placa | PlacaVeiculoInputFormatter() | AAA-1234 (**não** utilizar `FilteringTextInputFormatter.digitsOnly`)
| Real | RealInputFormatter() | 20.550
| Telefone | TelefoneInputFormatter() | (99) 9999-9999
| Validade cartão | ValidadeCartaoInputFormatter() | 12/24 ou 12/2024
| Temperatura | TemperaturaInputFormatter() |27,1

### Modelos

```dart
DropdownButton<String>(
hint: Text('Região'),
onChanged: (regiaoSelecionada) {
print(regiaoSelecionada);
},
items: Regioes.listaRegioes.map((String regiao) {
return DropdownMenuItem(
value: regiao,
child: Text(regiao),
);
}).toList(),
)
Estados.listaEstados
Estados.listaEstadosSigla
Meses.listaMeses
Meses.mapaMeses
Regioes.listaRegioes
Semana.listaDiasUteis
Semana.mapaDiasUteis
Semana.listaDiasUteisAbvr
Semana.mapaDiasUteisAbvr
Semana.listaDiasSemana
Semana.listaDiasSemanaOrdenada
```

### Métodos úteis
### UtilData

A classe `UtilData` possui métodos que facilitam obter o valor de um objeto `DateTime` em formato `String` (e no padrão brasileiro).
Métodos que facilitam obter o valor de um objeto `DateTime` em formato `String` (e no padrão brasileiro).

- `UtilData.obterDataDDMMAAAA` (DD/MM/AAAA)
- `UtilData.obterDataMMAAAA` (MM/AAAA)
Expand All @@ -110,7 +84,9 @@ A classe `UtilData` possui métodos que facilitam obter o valor de um objeto `Da
- `UtilData.obterDateTimeHora`
- `UtilData.obterDateTimeHoraMinuto`

A classe `UtilBrasilFields` possui métodos que facilitam obter os valores CEP, KM, CPF e CPNJ já formatados:
### UtilBrasilFields

Métodos que facilitam manipular valores:

- `UtilBrasilFields.gerarCPF()` (XXX.XXX.XXX-XX)
- `UtilBrasilFields.gerarCPF(false)` (XXXXXXXXXXX)
Expand All @@ -133,14 +109,20 @@ A classe `UtilBrasilFields` possui métodos que facilitam obter os valores CEP,
- `UtilBrasilFields.removeCaracteres` (remove caracteres especiais)
- `UtilBrasilFields.removerSimboloMoeda` (remove o R$)
- `UtilBrasilFields.converterMoedaParaDouble` (remove o R$ e retorna um double)

A classe `UtilBrasilFields` possui métodos para validar CPF e CNPJ: `isCPFValido` e `isCNPJValido`.
- `UtilBrasilFields.isCPFValido` (remove o R$ e retorna um double)
- `UtilBrasilFields.isCNPJValido` (remove o R$ e retorna um double)

Para inicializar um `TextEditingController` com o texto já formatado, basta escolher o método com o formato desejado e setar no atributo `text`:


### TextEditingController
```dart
final dataController = TextEditingController(text: UtilData.obterDataDDMMAAAA(DateTime(2020, 12, 31)));
final cnpjController = TextEditingController(text: UtilBrasilFields.obterCnpj('11222333444455'));
final dataController = TextEditingController(
text: UtilData.obterDataDDMMAAAA(DateTime(2024, 12, 31)),
);
final cnpjController = TextEditingController(
text: UtilBrasilFields.obterCnpj('11222333444455'),
);
```

---
Expand Down
1 change: 0 additions & 1 deletion lib/src/modelos/regioes.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/// Possui a lista com todas as regiões do Brasil.
///
/// `listaRegioes` lista com todas as regiões.
class Regioes {
static const List<String> listaRegioes = [
'Centro-Oeste',
Expand Down
8 changes: 4 additions & 4 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ packages:
dependency: "direct dev"
description:
name: flutter_lints
sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04
sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7
url: "https://pub.dev"
source: hosted
version: "2.0.3"
version: "3.0.1"
flutter_test:
dependency: "direct dev"
description: flutter
Expand All @@ -79,10 +79,10 @@ packages:
dependency: transitive
description:
name: lints
sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "3.0.0"
matcher:
dependency: transitive
description:
Expand Down
4 changes: 2 additions & 2 deletions pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: brasil_fields
description: O jeito mais fácil de utilizar padrões e formatos brasileiros em seu projeto Dart.
version: 1.14.2
version: 1.14.3
homepage: https://github.com/flutterbootcamp/brasil_fields
repository: https://github.com/flutterbootcamp/brasil_fields
issue_tracker: https://github.com/flutterbootcamp/brasil_fields/issues
Expand All @@ -14,7 +14,7 @@ dependencies:
intl: ^0.19.0

dev_dependencies:
flutter_lints: ^2.0.0
flutter_lints: ^3.0.0
flutter_test:
sdk: flutter

Expand Down

0 comments on commit dd40e29

Please sign in to comment.