diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a7649c..63fba9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 1.14.3 +- Melhorias README + ## 1.14.2 - intl: `^0.19.0` diff --git a/README.md b/README.md index 3f56105..e511ecb 100644 --- a/README.md +++ b/README.md @@ -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/#/) @@ -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( @@ -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( - 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) @@ -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) @@ -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'), +); ``` --- diff --git a/lib/src/modelos/regioes.dart b/lib/src/modelos/regioes.dart index fb702af..bff8916 100644 --- a/lib/src/modelos/regioes.dart +++ b/lib/src/modelos/regioes.dart @@ -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 listaRegioes = [ 'Centro-Oeste', diff --git a/pubspec.lock b/pubspec.lock index 84ec364..15ea041 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -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 @@ -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: diff --git a/pubspec.yaml b/pubspec.yaml index c4e6a4c..c6d6491 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 @@ -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