new FormGroup({
cpf: new FormControl('', [
Validators.required,
Validators.pattern(/^(\d{3}\.){2}\d{3}\-\d{2}$/),
Validators.minLength(14),
Validators.maxLength(14),
CpfCnpjValidator.validate,
]),
});Inclua a directive CpfCnpjValidatorDirective no módulo onde você deseja utilizá-la e use +- como o seguinte:
<mat-form-field appearance="outline">
<mat-label>CPF</mat-label>
<input matInput name="cpf" type="tel" appCpfCnpjValidate length="14" [textMask]="maskCpfOptions" placeholder="000.000.000-00">
<mat-hint align="start" *ngIf="formSignInGroup.get('cpf').invalid">xxx.xxx.xxx-xx</mat-hint>
<mat-hint align="end">{{ getNumericCharsLength(formSignInGroup.get('cpf').value) }} / 11</mat-hint>
<mat-error align="start" *ngIf="formSignInGroup.get('cpf').hasError('digit')">CPF inválido.</mat-error>
</mat-form-field>
Nesta parte;
if (digit < 2 && isCpf) { return 0; }Para funcionar CNPJ com o primeiro ou segundo (exemplo: 22.289.665/0001-08 / 44.623.381/0001-30) digito 0, tem que ser:
if (digit < 2 && isCpf) { return 0; } else if (digit < 2) { return 0; }