<commit_before># BrazilFields [![Build Status](http://img.shields.io/travis/gustavohenke/BrazilFields.svg?style=flat-square)](https://travis-ci.org/gustavohenke/BrazilFields)
Conjunto de utilidades Angular.js para documentos brasileiros.

## Instalação

* __Via Git:__  
  ```shell
  git clone git@github.com:gustavohenke/BrazilFields.git
  ```

* __Via Bower:__  
  ```shell
  bower install brazilfields --save
  ```

* __Via NPM:__  
  ```shell
  npm install brazilfields --save
  ```

* __Via download:__  
  Download: [https://github.com/gustavohenke/BrazilFields/archive/master.zip](https://github.com/gustavohenke/BrazilFields/archive/master.zip).

Depois, basta incluir o script `dist/brazilfields.js` em sua página.

## Utilização
Primeiramente, injete o módulo `brazilfields` no seu app Angular:

```javascript
var app = angular.module( "app", [ "brazilfields" ] );
```

### Validações
É possível realizar validações de CPFs, CNPJs e estados brasileiros usando o service `brValidate`:

```javascript
app.controller( "MeuController", [ "$scope", "brValidate", function( $scope, brValidate ) {
    brValidate.cpf( "20620614803" );
    // => true
    
    brValidate.cpf( "206.206.148-03" );
    // => true, pontuações . e - são permitidas
    
    brValidate.cpf( "   206206.148-03 " );
    // => true, esquecer-se da pontuação padrão ou espaços ao redor são permitidos
    
    brValidate.cpf( "206.206.148-13" );
    // => false, dígito verificador inválido!
    
    // -----
    
    brValidate.cnpj( "06439677000107" );
    // => true
    
    brValidate.cnpj( "06.439.677/0001-07" );
    // => true, pontuações ., / e - são permitidas
    
    brValidate.cnpj( " 06.4396770001-07   " );
    // => true, esquecer-se da pontuação padrão ou espaços ao redor são permitidos
    
    brValidate.cnpj( "06.439.677/0001-08" );
    // => false, dígito verificador inválido!
    
    // -----
    
    brValidate.state( "RS" ); // => true
    brValidate.state( "sp" ); // => true, case insensitive
    brValidate.state( "XX" ); // => false, estado não existe
    brValidate.state( "Sao Paulo" ); // => true, busca por nome do estado sem considerar acentuação
    brValidate.state( "Foobar" ); // => false, estado inexistente
}]);
```<commit_msg>docs(brCpf, brCnpj): documenta como usar as diretivas<commit_after># BrazilFields [![Build Status](http://img.shields.io/travis/gustavohenke/BrazilFields.svg?style=flat-square)](https://travis-ci.org/gustavohenke/BrazilFields)
Conjunto de utilidades Angular.js para documentos brasileiros.

## Instalação

* __Via Git:__  
  ```shell
  git clone git@github.com:gustavohenke/BrazilFields.git
  ```

* __Via Bower:__  
  ```shell
  bower install brazilfields --save
  ```

* __Via NPM:__  
  ```shell
  npm install brazilfields --save
  ```

* __Via download:__  
  Download: [https://github.com/gustavohenke/BrazilFields/archive/master.zip](https://github.com/gustavohenke/BrazilFields/archive/master.zip).

Depois, basta incluir o script `dist/brazilfields.js` em sua página.

## Utilização
Primeiramente, injete o módulo `brazilfields` no seu app Angular:

```javascript
var app = angular.module( "app", [ "brazilfields" ] );
```

### Validações
É possível realizar validações de CPFs, CNPJs e estados brasileiros usando o service `brValidate`:

```javascript
app.controller( "MeuController", [ "$scope", "brValidate", function( $scope, brValidate ) {
    brValidate.cpf( "20620614803" );
    // => true
    
    brValidate.cpf( "206.206.148-03" );
    // => true, pontuações . e - são permitidas
    
    brValidate.cpf( "   206206.148-03 " );
    // => true, esquecer-se da pontuação padrão ou espaços ao redor são permitidos
    
    brValidate.cpf( "206.206.148-13" );
    // => false, dígito verificador inválido!
    
    // -----
    
    brValidate.cnpj( "06439677000107" );
    // => true
    
    brValidate.cnpj( "06.439.677/0001-07" );
    // => true, pontuações ., / e - são permitidas
    
    brValidate.cnpj( " 06.4396770001-07   " );
    // => true, esquecer-se da pontuação padrão ou espaços ao redor são permitidos
    
    brValidate.cnpj( "06.439.677/0001-08" );
    // => false, dígito verificador inválido!
    
    // -----
    
    brValidate.state( "RS" ); // => true
    brValidate.state( "sp" ); // => true, case insensitive
    brValidate.state( "XX" ); // => false, estado não existe
    brValidate.state( "Sao Paulo" ); // => true, busca por nome do estado sem considerar acentuação
    brValidate.state( "Foobar" ); // => false, estado inexistente
}]);
```

### Diretivas

#### br-cpf
Valida um campo de CPF com `ng-model` e define a chave de validação `cpf` quando o mesmo estiver inválido.

Exemplo:

```html
<form name="form">
  <input type="text" name="cpf" ng-model="cpf" br-cpf>
  <p ng-show="form.cpf.$error.cpf">Digite um CPF válido!</p>
</form>
```

#### br-cnpj
Valida um campo de CNPJ com `ng-model` e define a chave de validação `cnpj` quando o mesmo estiver inválido.

Exemplo:

```html
<form name="form">
  <input type="text" name="cnpj" ng-model="cnpj" br-cnpj>
  <p ng-show="form.cnpj.$error.cnpj">Digite um CNPJ válido!</p>
</form>
```
{'fraction_non_alphanumeric': 0.1552395792754188, 'fraction_numerical': 0.038955979742890535, 'mean_word_length': 3.195261437908497, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 39, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3883548', 'n_tokens_mistral': 2061, 'n_tokens_neox': 1912, 'n_words': 423}