monkey-front-core 0.0.616 → 0.0.617

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -309,7 +309,8 @@ class MonkeyEcxUtils {
309
309
  return `${formated}`;
310
310
  }
311
311
  if (country === 'us') {
312
- return doc;
312
+ formated = doc.replace(/^(\d{2})(\d{7})$/, '$1-$2');
313
+ return `${formated}`;
313
314
  }
314
315
  if (doc.length === 14) {
315
316
  const cleaned = doc.replace(/[^A-Za-z0-9]/g, '').toUpperCase();
@@ -565,6 +566,100 @@ class MonkeyEcxUtils {
565
566
  }
566
567
  return false;
567
568
  }
569
+ static isValidEIN(ein) {
570
+ const cleanedEIN = ein?.replace(/\D/g, '') || '';
571
+ if (cleanedEIN.length !== 9) {
572
+ return false;
573
+ }
574
+ const validPrefixes = [
575
+ '10',
576
+ '12',
577
+ '60',
578
+ '67',
579
+ '50',
580
+ '53',
581
+ '01',
582
+ '02',
583
+ '03',
584
+ '04',
585
+ '05',
586
+ '06',
587
+ '11',
588
+ '13',
589
+ '14',
590
+ '16',
591
+ '21',
592
+ '22',
593
+ '23',
594
+ '25',
595
+ '34',
596
+ '51',
597
+ '52',
598
+ '54',
599
+ '55',
600
+ '56',
601
+ '57',
602
+ '58',
603
+ '59',
604
+ '65',
605
+ '30',
606
+ '32',
607
+ '35',
608
+ '36',
609
+ '37',
610
+ '38',
611
+ '61',
612
+ '15',
613
+ '24',
614
+ '20',
615
+ '26',
616
+ '27',
617
+ '45',
618
+ '46',
619
+ '47',
620
+ '81',
621
+ '82',
622
+ '83',
623
+ '84',
624
+ '85',
625
+ '40',
626
+ '44',
627
+ '94',
628
+ '95',
629
+ '80',
630
+ '90',
631
+ '33',
632
+ '39',
633
+ '41',
634
+ '42',
635
+ '43',
636
+ '46',
637
+ '48',
638
+ '62',
639
+ '63',
640
+ '64',
641
+ '66',
642
+ '68',
643
+ '71',
644
+ '72',
645
+ '73',
646
+ '74',
647
+ '75',
648
+ '76',
649
+ '77',
650
+ '86',
651
+ '87',
652
+ '88',
653
+ '91',
654
+ '92',
655
+ '93',
656
+ '98',
657
+ '99',
658
+ '31'
659
+ ];
660
+ const prefix = cleanedEIN.substring(0, 2);
661
+ return validPrefixes.indexOf(prefix) !== -1;
662
+ }
568
663
  static isValidUrl(txt) {
569
664
  const regex = /(https?:\/\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\d*)\/?([a-z_\\/0-9\-#.]*)\??([a-z_\\/0-9\-#=&]*)/g;
570
665
  return regex.test(txt);
@@ -573,7 +668,8 @@ class MonkeyEcxUtils {
573
668
  const length = {
574
669
  br: 8,
575
670
  cl: 7,
576
- mx: 5
671
+ mx: 5,
672
+ us: 5
577
673
  }[country || 'br'];
578
674
  return `${this.handleOnlyNumbers(zipCode)}`.length === length;
579
675
  }
@@ -1285,6 +1381,20 @@ class DocumentRutValidator {
1285
1381
  return null;
1286
1382
  }
1287
1383
  }
1384
+ class DocumentEINValidator {
1385
+ static do(control) {
1386
+ if (!control.parent || !control)
1387
+ return null;
1388
+ if (control && control.value) {
1389
+ if (!MonkeyEcxUtils.isValidEIN(control.value)) {
1390
+ return {
1391
+ invalidEin: true
1392
+ };
1393
+ }
1394
+ }
1395
+ return null;
1396
+ }
1397
+ }
1288
1398
  class DocumentRFCValidator {
1289
1399
  static do(control) {
1290
1400
  if (!control.parent || !control)
@@ -1462,6 +1572,7 @@ var validateUtils = /*#__PURE__*/Object.freeze({
1462
1572
  DocumentValidator: DocumentValidator,
1463
1573
  AlphanumericDocumentValidator: AlphanumericDocumentValidator,
1464
1574
  DocumentRutValidator: DocumentRutValidator,
1575
+ DocumentEINValidator: DocumentEINValidator,
1465
1576
  DocumentRFCValidator: DocumentRFCValidator,
1466
1577
  ZipCodeValidator: ZipCodeValidator,
1467
1578
  ComboValidator: ComboValidator,
@@ -1619,6 +1730,13 @@ function documentValidator(control, country) {
1619
1730
  };
1620
1731
  }
1621
1732
  }
1733
+ else if (country === 'US') {
1734
+ if (!MonkeyEcxUtils.isValidEIN(control.value)) {
1735
+ return {
1736
+ invalidCpfCnpj: true
1737
+ };
1738
+ }
1739
+ }
1622
1740
  return null;
1623
1741
  }
1624
1742
  function minYearsValidator(param, control) {
@@ -1699,6 +1817,9 @@ function documentValidatorByType(type, control) {
1699
1817
  else if (type === 'RFC') {
1700
1818
  valid = MonkeyEcxUtils.isValidRFC(control.value);
1701
1819
  }
1820
+ else if (type === 'EIN') {
1821
+ valid = MonkeyEcxUtils.isValidEIN(control.value);
1822
+ }
1702
1823
  if (!valid) {
1703
1824
  return {
1704
1825
  [`invalid${MonkeyEcxUtils.capitalize(type.toLowerCase())}`]: true
@@ -1770,6 +1891,9 @@ class Validators {
1770
1891
  static documentMX(control) {
1771
1892
  return documentValidator(control, 'MX');
1772
1893
  }
1894
+ static documentUS(control) {
1895
+ return documentValidator(control, 'US');
1896
+ }
1773
1897
  static date(control) {
1774
1898
  return dateValidator(control);
1775
1899
  }