@zydon/common 2.9.23 → 2.9.24

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.
package/README.md CHANGED
@@ -91,11 +91,11 @@ enqueueSnackbar('Mensagem', { variant: 'error' });
91
91
  - **cssStyles:** utils para lidar com estilos CSS `(bgBlur, bgGradient, textGradient, filterStyles, hideScrollbarY, hideScrollbarX)`
92
92
  - **routes:** utils para lidar com rotas `(getRoot)`
93
93
  - **sort:** utils para lidar com ordenação de arrys de objetos `(sort, updatePosition)`
94
- - **validators:** utils para validação de dados `(cpfIsValid, cnpjIsValid)`
94
+ - **validators:** utils para validação de dados `(cpfIsValid, cnpjIsValid, cpfCnpjIsValid, sanitizeDocument)` e validadores prontos para `rules` do react-hook-form `(validateCpf, validateCnpj, validateCpfCnpj, validateOptionalCpf, validateOptionalCnpj, validateOptionalCpfCnpj)`. O CNPJ segue o padrão alfanumérico da Receita Federal: os 12 primeiros caracteres aceitam letras e números, e os 2 dígitos verificadores continuam numéricos
95
95
  - **number:** utils para lidar com números `(isMultiple, roundIfNecessary)`
96
96
  - **uuidv4:** utils para gerar um UUID v4
97
97
  - **loadable:** util para utilizar com code split. Ele irá carregar o compomente e exibirá um loading fixo no topo da tela
98
- - **mask:** utils para aplicação de máscaras em strings `(applyMask, cpfMask, cnpjMask, cepMask, phoneMask)`
98
+ - **mask:** utils para aplicação de máscaras em strings `(applyMask, cpfMask, cnpjMask, cepMask, phoneMask, cpfMaskOrCnpjMask)` e máscaras prontas para o `MaskedInput` `(CPF_INPUT_MASK, CNPJ_INPUT_MASK, CPF_CNPJ_INPUT_MASK)`
99
99
 
100
100
  ### Hooks
101
101
  - **useActiveElement:** hook que indicar qual compnente (input, button, etc.) está com foco ativo
@@ -0,0 +1,4 @@
1
+ var o=t=>{if(!t||(t=t?.replace(/[^\d]+/g,""),t.length!==11||t==="00000000000"||t==="11111111111"||t==="22222222222"||t==="33333333333"||t==="44444444444"||t==="55555555555"||t==="66666666666"||t==="77777777777"||t==="88888888888"||t==="99999999999"))return !1;let e=0;for(let n=0;n<9;n++)e+=parseInt(t.charAt(n))*(10-n);let r=11-e%11;if((r===10||r===11)&&(r=0),r!==parseInt(t.charAt(9)))return !1;e=0;for(let n=0;n<10;n++)e+=parseInt(t.charAt(n))*(11-n);return r=11-e%11,(r===10||r===11)&&(r=0),r===parseInt(t.charAt(10))},E=11,_=14;var g=/^[0-9A-Z]{12}[0-9]{2}$/,f=/^(.)\1+$/,s=(t="")=>t.toUpperCase().replace(/[^0-9A-Z]/g,""),N=t=>t.charCodeAt(0)-48,l=t=>{let e=0,r=2;for(let i=t.length-1;i>=0;i--)e+=N(t.charAt(i))*r,r=r===9?2:r+1;let n=e%11;return n<2?0:11-n},a=t=>{if(!t)return !1;let e=s(t);if(e.length!==14||!g.test(e)||f.test(e))return !1;let r=e.slice(0,12),n=l(r),i=l(`${r}${n}`);return e.slice(12)===`${n}${i}`},A=t=>{if(!t)return !1;let e=s(t);return e.length===11?o(e):a(e)},h=t=>{if(!t)return "CPF inv\xE1lido";let e=s(t);return e.length!==11?"CPF deve ter 11 d\xEDgitos":o(e)||"CPF inv\xE1lido"},P=t=>{if(!t)return "CNPJ inv\xE1lido";let e=s(t);return e.length!==14?"CNPJ deve ter 14 caracteres":a(e)||"CNPJ inv\xE1lido"},p=t=>{if(!t)return "CPF/CNPJ inv\xE1lido";let e=s(t);return e.length===11?o(e)||"CPF inv\xE1lido":e.length===14?a(e)||"CNPJ inv\xE1lido":"CPF/CNPJ inv\xE1lido"},x=t=>t?p(t):!0,J=t=>t?P(t):!0,T=t=>t?h(t):!0,F=(t="")=>t?!!t.trim().toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/):!1,m=(t="",e=[8,20],r=!1,n=!1,i=!1)=>{let C=t.length>=e[0]&&t.length<=e[1],u=!i||/[A-Z]/.test(t),c=!n||/[!@#$%^&*(),.?":{}|<>]/.test(t),d=!r||/\d/.test(t);return {isLengthValid:C,hasUpperCaseChar:u,hasSpecialCharacter:c,hasNumberChar:d}},H=t=>t&&t.trim().length>0?!0:"N\xE3o pode ser apenas espa\xE7os em branco",L=t=>{if(t&&t.length!==8)return "CEP inv\xE1lido"};
2
+
3
+ export { o as a, E as b, _ as c, s as d, a as e, A as f, h as g, P as h, p as i, x as j, J as k, T as l, F as m, m as n, H as o, L as p };
4
+ //# sourceMappingURL=chunk-55XSPNSX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/validators.ts"],"names":["cpfIsValid","cpf","add","i","rev","CPF_LENGTH","CNPJ_LENGTH","CNPJ_FORMAT","REPEATED_CHARACTERS","sanitizeDocument","value","cnpjCharacterValue","character","cnpjCheckDigit","base","sum","weight","remainder","cnpjIsValid","cnpj","document","firstDigit","secondDigit","cpfCnpjIsValid","validateCpf","validateCnpj","validateCpfCnpj","validateOptionalCpfCnpj","validateOptionalCnpj","validateOptionalCpf","emailIsValid","email","validatePassword","password","passwordSize","numberChar","specialCharacter","upperCaseChar","isLengthValid","hasUpperCaseChar","hasSpecialCharacter","hasNumberChar","notOnlySpaces","validNumberCep","v"],"mappings":"AAAO,IAAMA,EAAcC,GAAgB,CAGzC,GAFI,CAACA,IACLA,EAAMA,GAAK,QAAQ,UAAW,EAAE,EAE9BA,EAAI,SAAW,IACfA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eAER,MAAO,GACT,IAAIC,EAAM,EACV,QAASC,EAAI,EAAGA,EAAI,EAAGA,IAAKD,GAAO,SAASD,EAAI,OAAOE,CAAC,CAAC,GAAK,GAAKA,GACnE,IAAIC,EAAM,GAAMF,EAAM,GAEtB,IADIE,IAAQ,IAAMA,IAAQ,MAAIA,EAAM,GAChCA,IAAQ,SAASH,EAAI,OAAO,CAAC,CAAC,EAAG,MAAO,GAC5CC,EAAM,EACN,QAASC,EAAI,EAAGA,EAAI,GAAIA,IAAKD,GAAO,SAASD,EAAI,OAAOE,CAAC,CAAC,GAAK,GAAKA,GAGpE,OAFAC,EAAM,GAAMF,EAAM,IACdE,IAAQ,IAAMA,IAAQ,MAAIA,EAAM,GAChCA,IAAQ,SAASH,EAAI,OAAO,EAAE,CAAC,CAErC,EAEaI,EAAa,GAEbC,EAAc,GAM3B,IAAMC,EAAc,yBAEdC,EAAsB,WAEfC,EAAmB,CAACC,EAAQ,KACvCA,EAAM,YAAY,EAAE,QAAQ,aAAc,EAAE,EAExCC,EAAsBC,GAC1BA,EAAU,WAAW,CAAC,EAAI,GAEtBC,EAAkBC,GAAiB,CACvC,IAAIC,EAAM,EACNC,EAAS,EAEb,QAAS,EAAIF,EAAK,OAAS,EAAG,GAAK,EAAG,IACpCC,GAAOJ,EAAmBG,EAAK,OAAO,CAAC,CAAC,EAAIE,EAC5CA,EAASA,IAAW,EAAI,EAAIA,EAAS,EAGvC,IAAMC,EAAYF,EAAM,GAExB,OAAOE,EAAY,EAAI,EAAI,GAAKA,CAClC,EAEaC,EAAeC,GAAiB,CAC3C,GAAI,CAACA,EAAM,MAAO,GAElB,IAAMC,EAAWX,EAAiBU,CAAI,EAMtC,GAJIC,EAAS,SAAW,IAEpB,CAACb,EAAY,KAAKa,CAAQ,GAE1BZ,EAAoB,KAAKY,CAAQ,EAAG,MAAO,GAE/C,IAAMN,EAAOM,EAAS,MAAM,EAAG,EAAgB,EACzCC,EAAaR,EAAeC,CAAI,EAChCQ,EAAcT,EAAe,GAAGC,IAAOO,GAAY,EAEzD,OAAOD,EAAS,MAAM,EAAgB,IAAM,GAAGC,IAAaC,GAC9D,EAEaC,EAAkBb,GAAkB,CAC/C,GAAI,CAACA,EAAO,MAAO,GAEnB,IAAMU,EAAWX,EAAiBC,CAAK,EAEvC,OAAIU,EAAS,SAAW,GAAmBpB,EAAWoB,CAAQ,EAEvDF,EAAYE,CAAQ,CAC7B,EAEaI,EAAed,GAAkC,CAC5D,GAAI,CAACA,EAAO,MAAO,kBAEnB,IAAMU,EAAWX,EAAiBC,CAAK,EAEvC,OAAIU,EAAS,SAAW,GAAmB,6BAEpCpB,EAAWoB,CAAQ,GAAK,iBACjC,EAEaK,EAAgBf,GAAkC,CAC7D,GAAI,CAACA,EAAO,MAAO,mBAEnB,IAAMU,EAAWX,EAAiBC,CAAK,EAEvC,OAAIU,EAAS,SAAW,GAAoB,8BAErCF,EAAYE,CAAQ,GAAK,kBAClC,EAEaM,EAAmBhB,GAAkC,CAChE,GAAI,CAACA,EAAO,MAAO,uBAEnB,IAAMU,EAAWX,EAAiBC,CAAK,EAEvC,OAAIU,EAAS,SAAW,GACfpB,EAAWoB,CAAQ,GAAK,kBAE7BA,EAAS,SAAW,GACfF,EAAYE,CAAQ,GAAK,mBAE3B,sBACT,EAEaO,EAA2BjB,GACjCA,EAEEgB,EAAgBhB,CAAK,EAFT,GAKRkB,EAAwBlB,GAC9BA,EAEEe,EAAaf,CAAK,EAFN,GAKRmB,EAAuBnB,GAC7BA,EAEEc,EAAYd,CAAK,EAFL,GAKRoB,EAAe,CAACC,EAAQ,KAC9BA,EASE,CAAC,CAPQA,EACb,KAAK,EACL,YAAY,EACZ,MACC,uJACF,EAPiB,GAYRC,EAAmB,CAC9BC,EAAW,GACXC,EAAe,CAAC,EAAG,EAAE,EACrBC,EAAa,GACbC,EAAmB,GACnBC,EAAgB,KACb,CACH,IAAMC,EACJL,EAAS,QAAUC,EAAa,CAAC,GAAKD,EAAS,QAAUC,EAAa,CAAC,EACnEK,EAAmB,CAACF,GAAiB,QAAQ,KAAKJ,CAAQ,EAC1DO,EACJ,CAACJ,GAAoB,yBAAyB,KAAKH,CAAQ,EACvDQ,EAAgB,CAACN,GAAc,KAAK,KAAKF,CAAQ,EAEvD,MAAO,CACL,cAAAK,EACA,iBAAAC,EACA,oBAAAC,EACA,cAAAC,CACF,CACF,EAEaC,EAAiBhC,GAC5BA,GAASA,EAAM,KAAK,EAAE,OAAS,EAC3B,GACA,8CAEOiC,EAAkBC,GAA0B,CACvD,GAAIA,GAAKA,EAAE,SAAW,EAAG,MAAO,iBAElC","sourcesContent":["export const cpfIsValid = (cpf: string) => {\n if (!cpf) return false;\n cpf = cpf?.replace(/[^\\d]+/g, '');\n if (\n cpf.length !== 11 ||\n cpf === '00000000000' ||\n cpf === '11111111111' ||\n cpf === '22222222222' ||\n cpf === '33333333333' ||\n cpf === '44444444444' ||\n cpf === '55555555555' ||\n cpf === '66666666666' ||\n cpf === '77777777777' ||\n cpf === '88888888888' ||\n cpf === '99999999999'\n )\n return false;\n let add = 0;\n for (let i = 0; i < 9; i++) add += parseInt(cpf.charAt(i)) * (10 - i);\n let rev = 11 - (add % 11);\n if (rev === 10 || rev === 11) rev = 0;\n if (rev !== parseInt(cpf.charAt(9))) return false;\n add = 0;\n for (let i = 0; i < 10; i++) add += parseInt(cpf.charAt(i)) * (11 - i);\n rev = 11 - (add % 11);\n if (rev === 10 || rev === 11) rev = 0;\n if (rev !== parseInt(cpf.charAt(10))) return false;\n return true;\n};\n\nexport const CPF_LENGTH = 11;\n\nexport const CNPJ_LENGTH = 14;\n\nconst CNPJ_BASE_LENGTH = 12;\n\nconst CNPJ_CHAR_CODE_OFFSET = 48;\n\nconst CNPJ_FORMAT = /^[0-9A-Z]{12}[0-9]{2}$/;\n\nconst REPEATED_CHARACTERS = /^(.)\\1+$/;\n\nexport const sanitizeDocument = (value = '') =>\n value.toUpperCase().replace(/[^0-9A-Z]/g, '');\n\nconst cnpjCharacterValue = (character: string) =>\n character.charCodeAt(0) - CNPJ_CHAR_CODE_OFFSET;\n\nconst cnpjCheckDigit = (base: string) => {\n let sum = 0;\n let weight = 2;\n\n for (let i = base.length - 1; i >= 0; i--) {\n sum += cnpjCharacterValue(base.charAt(i)) * weight;\n weight = weight === 9 ? 2 : weight + 1;\n }\n\n const remainder = sum % 11;\n\n return remainder < 2 ? 0 : 11 - remainder;\n};\n\nexport const cnpjIsValid = (cnpj: string) => {\n if (!cnpj) return false;\n\n const document = sanitizeDocument(cnpj);\n\n if (document.length !== CNPJ_LENGTH) return false;\n\n if (!CNPJ_FORMAT.test(document)) return false;\n\n if (REPEATED_CHARACTERS.test(document)) return false;\n\n const base = document.slice(0, CNPJ_BASE_LENGTH);\n const firstDigit = cnpjCheckDigit(base);\n const secondDigit = cnpjCheckDigit(`${base}${firstDigit}`);\n\n return document.slice(CNPJ_BASE_LENGTH) === `${firstDigit}${secondDigit}`;\n};\n\nexport const cpfCnpjIsValid = (value: string) => {\n if (!value) return false;\n\n const document = sanitizeDocument(value);\n\n if (document.length === CPF_LENGTH) return cpfIsValid(document);\n\n return cnpjIsValid(document);\n};\n\nexport const validateCpf = (value?: string): true | string => {\n if (!value) return 'CPF inválido';\n\n const document = sanitizeDocument(value);\n\n if (document.length !== CPF_LENGTH) return 'CPF deve ter 11 dígitos';\n\n return cpfIsValid(document) || 'CPF inválido';\n};\n\nexport const validateCnpj = (value?: string): true | string => {\n if (!value) return 'CNPJ inválido';\n\n const document = sanitizeDocument(value);\n\n if (document.length !== CNPJ_LENGTH) return 'CNPJ deve ter 14 caracteres';\n\n return cnpjIsValid(document) || 'CNPJ inválido';\n};\n\nexport const validateCpfCnpj = (value?: string): true | string => {\n if (!value) return 'CPF/CNPJ inválido';\n\n const document = sanitizeDocument(value);\n\n if (document.length === CPF_LENGTH)\n return cpfIsValid(document) || 'CPF inválido';\n\n if (document.length === CNPJ_LENGTH)\n return cnpjIsValid(document) || 'CNPJ inválido';\n\n return 'CPF/CNPJ inválido';\n};\n\nexport const validateOptionalCpfCnpj = (value?: string): true | string => {\n if (!value) return true;\n\n return validateCpfCnpj(value);\n};\n\nexport const validateOptionalCnpj = (value?: string): true | string => {\n if (!value) return true;\n\n return validateCnpj(value);\n};\n\nexport const validateOptionalCpf = (value?: string): true | string => {\n if (!value) return true;\n\n return validateCpf(value);\n};\n\nexport const emailIsValid = (email = '') => {\n if (!email) return false;\n\n const isValid = email\n .trim()\n .toLowerCase()\n .match(\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n );\n\n return !!isValid;\n};\n\nexport const validatePassword = (\n password = '',\n passwordSize = [8, 20],\n numberChar = false,\n specialCharacter = false,\n upperCaseChar = false,\n) => {\n const isLengthValid =\n password.length >= passwordSize[0] && password.length <= passwordSize[1];\n const hasUpperCaseChar = !upperCaseChar || /[A-Z]/.test(password);\n const hasSpecialCharacter =\n !specialCharacter || /[!@#$%^&*(),.?\":{}|<>]/.test(password);\n const hasNumberChar = !numberChar || /\\d/.test(password);\n\n return {\n isLengthValid,\n hasUpperCaseChar,\n hasSpecialCharacter,\n hasNumberChar,\n };\n};\n\nexport const notOnlySpaces = (value: string) =>\n value && value.trim().length > 0\n ? true\n : 'Não pode ser apenas espaços em branco';\n\nexport const validNumberCep = (v: string | undefined) => {\n if (v && v.length !== 8) return 'CEP inválido';\n return undefined;\n};\n"]}
@@ -11,7 +11,7 @@ interface ImageContainerProps {
11
11
 
12
12
  declare const Avatar: react.MemoExoticComponent<react.ForwardRefExoticComponent<Omit<PropsWithChildren<ImageContainerProps & _mui_material_Avatar.AvatarOwnProps & _mui_material_Avatar.AvatarSlotsAndSlotProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
13
13
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
14
- }, "children" | "className" | "style" | "classes" | "sx" | "variant" | "slots" | "slotProps" | "alt" | "src" | "sizes" | "srcSet" | "imgProps"> & {
14
+ }, "children" | "className" | "style" | "classes" | "sx" | "variant" | "slots" | "slotProps" | "sizes" | "alt" | "src" | "srcSet" | "imgProps"> & {
15
15
  component?: react.ElementType<any, keyof react.JSX.IntrinsicElements> | undefined;
16
16
  }>, "ref"> & react.RefAttributes<HTMLDivElement>>>;
17
17
 
@@ -1,11 +1,10 @@
1
1
  import * as react from 'react';
2
2
  import * as _mui_material_TextField from '@mui/material/TextField';
3
+ import { I as InputMask } from '../../maskedInputProps-34f2a8d9.js';
3
4
 
4
5
  declare const MaskedInput: react.MemoExoticComponent<react.ForwardRefExoticComponent<(Omit<{
5
6
  name: string;
6
- mask: {
7
- mask: string;
8
- }[];
7
+ mask: InputMask[];
9
8
  onChange: (event: {
10
9
  target: {
11
10
  name: string;
@@ -14,9 +13,7 @@ declare const MaskedInput: react.MemoExoticComponent<react.ForwardRefExoticCompo
14
13
  }) => void;
15
14
  } & _mui_material_TextField.FilledTextFieldProps, "ref"> | Omit<{
16
15
  name: string;
17
- mask: {
18
- mask: string;
19
- }[];
16
+ mask: InputMask[];
20
17
  onChange: (event: {
21
18
  target: {
22
19
  name: string;
@@ -25,9 +22,7 @@ declare const MaskedInput: react.MemoExoticComponent<react.ForwardRefExoticCompo
25
22
  }) => void;
26
23
  } & _mui_material_TextField.OutlinedTextFieldProps, "ref"> | Omit<{
27
24
  name: string;
28
- mask: {
29
- mask: string;
30
- }[];
25
+ mask: InputMask[];
31
26
  onChange: (event: {
32
27
  target: {
33
28
  name: string;
@@ -1,4 +1,4 @@
1
- import { d } from '../../chunk-A3QLGMSB.js';
1
+ import { n } from '../../chunk-55XSPNSX.js';
2
2
  import { a as a$1 } from '../../chunk-JGASCDBR.js';
3
3
  import '../../chunk-TPOL2YXC.js';
4
4
  import a from '@mui/material/Typography';
@@ -6,7 +6,7 @@ import i from '@mui/material/Stack';
6
6
  import { styled, alpha } from '@mui/material/styles';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
8
8
 
9
- var R=styled(i)(({theme:e})=>({width:"100%",borderColor:`${alpha(e.palette.grey[500],.32)}`,padding:16,borderRadius:8,gap:8})),y=styled(i)(()=>({gap:4})),t=styled(i,{shouldForwardProp:e=>e!=="themeColor"})(({theme:e,themeColor:s})=>({flexDirection:"row",alignItems:"center",gap:8,color:s==="light"?e.palette.text.secondary:e.palette.common.white,div:{fontSize:12},strong:{fontWeight:700,color:s==="light"?e.palette.text.primary:e.palette.common.white}}));var l=({passed:e})=>e?jsx(a$1,{icon:"SIMPLE_CHECK",color:"success.main"}):jsx(a$1,{icon:"WARNING_TRIANGULE",color:"warning.main"}),I=({password:e,passwordSize:s,numberChar:d$1=!1,specialCharacter:m=!1,upperCaseChar:g=!1,match:u,title:f="Sua senha deve conter:",theme:n="light",containerProps:P})=>{let{hasSpecialCharacter:C,hasUpperCaseChar:v,isLengthValid:T,hasNumberChar:w}=d(e,s,d$1,m,g);return jsxs(R,{border:"1px solid",...P,children:[f&&jsx(a,{color:"text.secondary",variant:"body2",children:"Sua senha deve conter:"}),jsxs(y,{children:[jsxs(t,{themeColor:n,children:[jsx(l,{passed:T}),jsxs(a,{component:"div",children:[jsxs("strong",{children:[s[0],"-",s[1]]})," ","caracteres"]})]}),g&&jsxs(t,{themeColor:n,children:[jsx(l,{passed:v}),jsxs(a,{component:"div",children:["Pelo menos uma ",jsx("strong",{children:"letra mai\xFAscula"})]})]}),d$1&&jsxs(t,{themeColor:n,children:[jsx(l,{passed:w}),jsxs(a,{component:"div",children:["Pelo menos ",jsx("strong",{children:"um n\xFAmero"})]})]}),m&&jsxs(t,{themeColor:n,children:[jsx(l,{passed:C}),jsxs(a,{component:"div",children:["Pelo menos um ",jsx("strong",{children:"caracter especial"})," ",jsx("span",{children:"(#,@,!,?)"})]})]}),u&&jsxs(t,{themeColor:n,children:[jsx(l,{passed:u.passwordMatch}),jsx(a,{component:"div",children:"Senha e confirma\xE7\xE3o de senha devem ser iguais"})]})]})]})},G=I;
9
+ var R=styled(i)(({theme:e})=>({width:"100%",borderColor:`${alpha(e.palette.grey[500],.32)}`,padding:16,borderRadius:8,gap:8})),y=styled(i)(()=>({gap:4})),t=styled(i,{shouldForwardProp:e=>e!=="themeColor"})(({theme:e,themeColor:s})=>({flexDirection:"row",alignItems:"center",gap:8,color:s==="light"?e.palette.text.secondary:e.palette.common.white,div:{fontSize:12},strong:{fontWeight:700,color:s==="light"?e.palette.text.primary:e.palette.common.white}}));var l=({passed:e})=>e?jsx(a$1,{icon:"SIMPLE_CHECK",color:"success.main"}):jsx(a$1,{icon:"WARNING_TRIANGULE",color:"warning.main"}),I=({password:e,passwordSize:s,numberChar:d=!1,specialCharacter:m=!1,upperCaseChar:g=!1,match:u,title:f="Sua senha deve conter:",theme:n$1="light",containerProps:P})=>{let{hasSpecialCharacter:C,hasUpperCaseChar:v,isLengthValid:T,hasNumberChar:w}=n(e,s,d,m,g);return jsxs(R,{border:"1px solid",...P,children:[f&&jsx(a,{color:"text.secondary",variant:"body2",children:"Sua senha deve conter:"}),jsxs(y,{children:[jsxs(t,{themeColor:n$1,children:[jsx(l,{passed:T}),jsxs(a,{component:"div",children:[jsxs("strong",{children:[s[0],"-",s[1]]})," ","caracteres"]})]}),g&&jsxs(t,{themeColor:n$1,children:[jsx(l,{passed:v}),jsxs(a,{component:"div",children:["Pelo menos uma ",jsx("strong",{children:"letra mai\xFAscula"})]})]}),d&&jsxs(t,{themeColor:n$1,children:[jsx(l,{passed:w}),jsxs(a,{component:"div",children:["Pelo menos ",jsx("strong",{children:"um n\xFAmero"})]})]}),m&&jsxs(t,{themeColor:n$1,children:[jsx(l,{passed:C}),jsxs(a,{component:"div",children:["Pelo menos um ",jsx("strong",{children:"caracter especial"})," ",jsx("span",{children:"(#,@,!,?)"})]})]}),u&&jsxs(t,{themeColor:n$1,children:[jsx(l,{passed:u.passwordMatch}),jsx(a,{component:"div",children:"Senha e confirma\xE7\xE3o de senha devem ser iguais"})]})]})]})},G=I;
10
10
 
11
11
  export { G as default };
12
12
  //# sourceMappingURL=index.js.map
@@ -2,12 +2,11 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { RegisterOptions } from 'react-hook-form';
3
3
  import { TextFieldProps } from '@mui/material/TextField';
4
4
  import { BaseField } from '../../../types/baseField.js';
5
+ import { I as InputMask } from '../../../maskedInputProps-34f2a8d9.js';
5
6
 
6
7
  type IProps = {
7
8
  name: string;
8
- mask: {
9
- mask: string;
10
- }[];
9
+ mask: InputMask[];
11
10
  rules?: RegisterOptions;
12
11
  onChange?(value: string): void;
13
12
  };
@@ -1,5 +1,5 @@
1
1
  import { a } from '../../../chunk-P2QZJ57W.js';
2
- import { d } from '../../../chunk-A3QLGMSB.js';
2
+ import { n } from '../../../chunk-55XSPNSX.js';
3
3
  import { a as a$1 } from '../../../chunk-JGASCDBR.js';
4
4
  import '../../../chunk-TPOL2YXC.js';
5
5
  import { useState } from 'react';
@@ -8,7 +8,7 @@ import y from '@mui/material/IconButton';
8
8
  import N from '@mui/material/InputAdornment';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
10
10
 
11
- var O=({name:o,sx:P,rules:n,passwordSize:d$1,specialCharacter:i,upperCaseChar:p,numberChar:l,showErrorMessage:x,match:r,helperText:m,InputProps:u,showButtonViewPassword:I=!0,...g})=>{let{watch:f}=useFormContext(),v=f(o),[t,C]=useState(!1),{hasNumberChar:V,hasSpecialCharacter:A,hasUpperCaseChar:F,isLengthValid:S}=d(v,d$1,l,i,p),H=(!A||!F||!S||!V)&&!x?"none":void 0;return jsx(a,{"data-intercom-target":o,...g,name:o,type:t?"text":"password",InputProps:{...u,endAdornment:jsxs(N,{position:"end",children:[u?.endAdornment,I&&jsx(y,{onClick:()=>C(!t),edge:"end","aria-label":"Mostrar/Ocultar senha",tabIndex:-1,children:jsx(a$1,{icon:t?"VIEW_OFF":"VIEW_ON"})})]})},rules:{...n,validate:{...n?.validate,validationPassword:h=>{let e=d(h,d$1,l,i,p);return !e.hasNumberChar||!e.hasSpecialCharacter||!e.hasUpperCaseChar||!e.isLengthValid?"Senha inv\xE1lida":r&&r.fieldPassword&&f(r.fieldPassword)!==h?"As senhas devem ser iguais":!0}}},sx:{...P,"& .MuiFormHelperText-root":{display:m?void 0:H}},forceShowHelperText:!0,helperText:m})},G=O;
11
+ var O=({name:o,sx:P,rules:n$1,passwordSize:d,specialCharacter:i,upperCaseChar:p,numberChar:l,showErrorMessage:x,match:r,helperText:m,InputProps:u,showButtonViewPassword:I=!0,...g})=>{let{watch:f}=useFormContext(),v=f(o),[t,C]=useState(!1),{hasNumberChar:V,hasSpecialCharacter:A,hasUpperCaseChar:F,isLengthValid:S}=n(v,d,l,i,p),H=(!A||!F||!S||!V)&&!x?"none":void 0;return jsx(a,{"data-intercom-target":o,...g,name:o,type:t?"text":"password",InputProps:{...u,endAdornment:jsxs(N,{position:"end",children:[u?.endAdornment,I&&jsx(y,{onClick:()=>C(!t),edge:"end","aria-label":"Mostrar/Ocultar senha",tabIndex:-1,children:jsx(a$1,{icon:t?"VIEW_OFF":"VIEW_ON"})})]})},rules:{...n$1,validate:{...n$1?.validate,validationPassword:h=>{let e=n(h,d,l,i,p);return !e.hasNumberChar||!e.hasSpecialCharacter||!e.hasUpperCaseChar||!e.isLengthValid?"Senha inv\xE1lida":r&&r.fieldPassword&&f(r.fieldPassword)!==h?"As senhas devem ser iguais":!0}}},sx:{...P,"& .MuiFormHelperText-root":{display:m?void 0:H}},forceShowHelperText:!0,helperText:m})},G=O;
12
12
 
13
13
  export { G as default };
14
14
  //# sourceMappingURL=index.js.map
@@ -4,15 +4,14 @@ import * as react from 'react';
4
4
  import { ReactNode } from 'react';
5
5
 
6
6
  declare const useSnackbar: () => {
7
- toast: ((message: ReactNode | (() => ReactNode), data?: ExternalToast | undefined) => string | number) & {
8
- success: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
9
- info: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
10
- warning: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
11
- error: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
7
+ toast: ((message: (() => ReactNode) | ReactNode, data?: ExternalToast | undefined) => string | number) & {
8
+ success: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
9
+ info: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
10
+ warning: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
11
+ error: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
12
12
  custom: (jsx: (id: string | number) => react.ReactElement<any, string | react.JSXElementConstructor<any>>, data?: ExternalToast | undefined) => string | number;
13
- message: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
13
+ message: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
14
14
  promise: <ToastData>(promise: Promise<ToastData> | (() => Promise<ToastData>), data?: ({
15
- cancel?: ReactNode | sonner.Action;
16
15
  className?: string | undefined;
17
16
  style?: react.CSSProperties | undefined;
18
17
  position?: ("top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right") | undefined;
@@ -21,6 +20,7 @@ declare const useSnackbar: () => {
21
20
  icon?: ReactNode;
22
21
  duration?: number | undefined;
23
22
  onDismiss?: ((toast: sonner.ToastT) => void) | undefined;
23
+ cancel?: ReactNode | sonner.Action;
24
24
  richColors?: boolean | undefined;
25
25
  invert?: boolean | undefined;
26
26
  closeButton?: boolean | undefined;
@@ -45,7 +45,7 @@ declare const useSnackbar: () => {
45
45
  unwrap: () => Promise<ToastData>;
46
46
  };
47
47
  dismiss: (id?: string | number | undefined) => string | number;
48
- loading: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
48
+ loading: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
49
49
  } & {
50
50
  getHistory: () => (sonner.ToastT | sonner.ToastToDismiss)[];
51
51
  getToasts: () => (sonner.ToastT | sonner.ToastToDismiss)[];
@@ -0,0 +1,7 @@
1
+ type InputMask = {
2
+ mask: string;
3
+ definitions?: Record<string, RegExp>;
4
+ prepareChar?: (character: string) => string;
5
+ };
6
+
7
+ export { InputMask as I };
@@ -460,7 +460,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
460
460
  x?: readonly (string | (string & {}))[] | csstype.Property.X<string | number> | readonly NonNullable<csstype.Property.X<string | number> | undefined>[] | undefined;
461
461
  y?: readonly (string | (string & {}))[] | csstype.Property.Y<string | number> | readonly NonNullable<csstype.Property.Y<string | number> | undefined>[] | undefined;
462
462
  zIndex?: readonly ((string & {}) | csstype.Globals | "auto")[] | csstype.Property.ZIndex | readonly NonNullable<csstype.Property.ZIndex | undefined>[] | undefined;
463
- zoom?: csstype.Property.Zoom | readonly NonNullable<csstype.Property.Zoom | undefined>[] | readonly ("reset" | (string & {}) | csstype.Globals | "normal")[] | undefined;
463
+ zoom?: csstype.Property.Zoom | readonly NonNullable<csstype.Property.Zoom | undefined>[] | readonly ((string & {}) | csstype.Globals | "normal" | "reset")[] | undefined;
464
464
  all?: csstype.Globals | readonly NonNullable<csstype.Globals | undefined>[] | readonly csstype.Globals[] | undefined;
465
465
  animation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ("reverse" | (string & {}) | csstype.Globals | "none" | "auto" | "normal" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
466
466
  animationRange?: readonly (string | (string & {}))[] | csstype.Property.AnimationRange<string | number> | readonly NonNullable<csstype.Property.AnimationRange<string | number> | undefined>[] | undefined;
@@ -1,8 +1,21 @@
1
1
  declare const applyMask: (value: string | undefined, mask: string) => string;
2
2
  declare const cpfMask: (v: string) => string;
3
3
  declare const cnpjMask: (v: string) => string;
4
+ declare const CPF_INPUT_MASK: {
5
+ mask: string;
6
+ }[];
7
+ declare const CNPJ_INPUT_MASK: {
8
+ mask: string;
9
+ definitions: {
10
+ '@': RegExp;
11
+ };
12
+ prepareChar: (character: string) => string;
13
+ }[];
14
+ declare const CPF_CNPJ_INPUT_MASK: {
15
+ mask: string;
16
+ }[];
4
17
  declare const cepMask: (v: string) => string;
5
18
  declare const phoneMask: (v: string) => string;
6
19
  declare const cpfMaskOrCnpjMask: (v: string) => string | null;
7
20
 
8
- export { applyMask, cepMask, cnpjMask, cpfMask, cpfMaskOrCnpjMask, phoneMask };
21
+ export { CNPJ_INPUT_MASK, CPF_CNPJ_INPUT_MASK, CPF_INPUT_MASK, applyMask, cepMask, cnpjMask, cpfMask, cpfMaskOrCnpjMask, phoneMask };
@@ -1,4 +1,6 @@
1
- var n=(e="",r)=>{let t="",s=0;return [...r].forEach(a=>{t+=a==="#"?e[s++]||"_":a;}),t},o=e=>n((e||"").replace(/\D/g,""),"###.###.###-##"),c=e=>n((e||"").replace(/\D/g,""),"##.###.###/####-##"),l=e=>n((e||"").replace(/\D/g,""),"#####-###"),u=e=>{let t=(e||"").replace(/\D/g,"");return n(t,{10:"(##) ####-####",11:"(##) #####-####",12:"+## (##) ####-####",13:"+## (##) #####-####",14:"+### (##) #####-####"}[t.length]??t)},p=e=>{let t=(e||""||"").replace(/\D/g,"");return t.length===11?o(t):t.length===14?c(t):null};
1
+ import { d } from '../chunk-55XSPNSX.js';
2
2
 
3
- export { n as applyMask, l as cepMask, c as cnpjMask, o as cpfMask, p as cpfMaskOrCnpjMask, u as phoneMask };
3
+ var s=(t="",n)=>{let e="",r=0;return [...n].forEach(a=>{e+=a==="#"?t[r++]||"_":a;}),e},l=t=>s((t||"").replace(/\D/g,""),"###.###.###-##"),u=t=>s(d(t||""),"##.###.###/####-##"),i=[{mask:"000.000.000-00"}],g=[{mask:"@@.@@@.@@@/@@@@-00",definitions:{"@":/[0-9a-zA-Z]/},prepareChar:t=>t.toUpperCase()}],m=[...i,...g],M=t=>s((t||"").replace(/\D/g,""),"#####-###"),_=t=>{let e=(t||"").replace(/\D/g,"");return s(e,{10:"(##) ####-####",11:"(##) #####-####",12:"+## (##) ####-####",13:"+## (##) #####-####",14:"+### (##) #####-####"}[e.length]??e)},v=t=>{let n=t||"",e=n.replace(/\D/g,"");if(e.length===11)return l(e);let r=d(n);return r.length===14?u(r):null};
4
+
5
+ export { g as CNPJ_INPUT_MASK, m as CPF_CNPJ_INPUT_MASK, i as CPF_INPUT_MASK, s as applyMask, M as cepMask, u as cnpjMask, l as cpfMask, v as cpfMaskOrCnpjMask, _ as phoneMask };
4
6
  //# sourceMappingURL=mask.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/mask.ts"],"names":["applyMask","value","mask","formattedString","j","char","cpfMask","v","cnpjMask","cepMask","phoneMask","digits","cpfMaskOrCnpjMask","onlyNumbers"],"mappings":"AAAO,IAAMA,EAAY,CAACC,EAAQ,GAAIC,IAAiB,CACrD,IAAIC,EAAkB,GAClBC,EAAI,EAGR,OAAC,GAAGF,CAAI,EAAE,QAAQG,GAAQ,CAExBF,GAAmBE,IAAS,IAAMJ,EAAMG,GAAG,GAAK,IAAMC,CACxD,CAAC,EAEMF,CACT,EAEaG,EAAWC,GAEfP,GADOO,GAAK,IACI,QAAQ,MAAO,EAAE,EAAG,gBAAgB,EAGhDC,EAAYD,GAEhBP,GADOO,GAAK,IACI,QAAQ,MAAO,EAAE,EAAG,oBAAoB,EAGpDE,EAAWF,GAEfP,GADOO,GAAK,IACI,QAAQ,MAAO,EAAE,EAAG,WAAW,EAG3CG,EAAaH,GAAc,CAEtC,IAAMI,GADQJ,GAAK,IACE,QAAQ,MAAO,EAAE,EAUtC,OAAOP,EAAUW,EARqB,CACpC,GAAI,iBACJ,GAAI,kBACJ,GAAI,qBACJ,GAAI,sBACJ,GAAI,sBACN,EAE+BA,EAAO,MAAM,GAAKA,CAAM,CACzD,EAEaC,EAAqBL,GAAc,CAE9C,IAAMM,GADQN,GAAK,IACW,IAAI,QAAQ,MAAO,EAAE,EAEnD,OAAIM,EAAY,SAAW,GAAWP,EAAQO,CAAW,EAErDA,EAAY,SAAW,GAAWL,EAASK,CAAW,EAEnD,IACT","sourcesContent":["export const applyMask = (value = '', mask: string) => {\n let formattedString = '';\n let j = 0;\n\n // Iterate through each character in the mask\n [...mask].forEach(char => {\n // If the character is '#', insert the next character from the input string, or '_' if the input string is shorter\n formattedString += char === '#' ? value[j++] || '_' : char;\n });\n\n return formattedString;\n};\n\nexport const cpfMask = (v: string) => {\n const value = v || '';\n return applyMask(value.replace(/\\D/g, ''), '###.###.###-##');\n};\n\nexport const cnpjMask = (v: string) => {\n const value = v || '';\n return applyMask(value.replace(/\\D/g, ''), '##.###.###/####-##');\n};\n\nexport const cepMask = (v: string) => {\n const value = v || '';\n return applyMask(value.replace(/\\D/g, ''), '#####-###');\n};\n\nexport const phoneMask = (v: string) => {\n const value = v || '';\n const digits = value.replace(/\\D/g, '');\n\n const masks: Record<number, string> = {\n 10: '(##) ####-####',\n 11: '(##) #####-####',\n 12: '+## (##) ####-####',\n 13: '+## (##) #####-####',\n 14: '+### (##) #####-####',\n };\n\n return applyMask(digits, masks[digits.length] ?? digits);\n};\n\nexport const cpfMaskOrCnpjMask = (v: string) => {\n const value = v || '';\n const onlyNumbers = (value || '').replace(/\\D/g, '');\n\n if (onlyNumbers.length === 11) return cpfMask(onlyNumbers);\n\n if (onlyNumbers.length === 14) return cnpjMask(onlyNumbers);\n\n return null;\n};\n"]}
1
+ {"version":3,"sources":["../../src/utils/mask.ts"],"names":["applyMask","value","mask","formattedString","j","char","cpfMask","v","cnpjMask","sanitizeDocument","CPF_INPUT_MASK","CNPJ_INPUT_MASK","character","CPF_CNPJ_INPUT_MASK","cepMask","phoneMask","digits","cpfMaskOrCnpjMask","onlyNumbers","document"],"mappings":"uDAEO,IAAMA,EAAY,CAACC,EAAQ,GAAIC,IAAiB,CACrD,IAAIC,EAAkB,GAClBC,EAAI,EAGR,OAAC,GAAGF,CAAI,EAAE,QAAQG,GAAQ,CAExBF,GAAmBE,IAAS,IAAMJ,EAAMG,GAAG,GAAK,IAAMC,CACxD,CAAC,EAEMF,CACT,EAEaG,EAAWC,GAEfP,GADOO,GAAK,IACI,QAAQ,MAAO,EAAE,EAAG,gBAAgB,EAGhDC,EAAYD,GAEhBP,EAAUS,EADHF,GAAK,EACoB,EAAG,oBAAoB,EAGnDG,EAAiB,CAAC,CAAE,KAAM,gBAAiB,CAAC,EAE5CC,EAAkB,CAC7B,CACE,KAAM,qBACN,YAAa,CAAE,IAAK,aAAc,EAClC,YAAcC,GAAsBA,EAAU,YAAY,CAC5D,CACF,EAEaC,EAAsB,CAAC,GAAGH,EAAgB,GAAGC,CAAe,EAE5DG,EAAWP,GAEfP,GADOO,GAAK,IACI,QAAQ,MAAO,EAAE,EAAG,WAAW,EAG3CQ,EAAaR,GAAc,CAEtC,IAAMS,GADQT,GAAK,IACE,QAAQ,MAAO,EAAE,EAUtC,OAAOP,EAAUgB,EARqB,CACpC,GAAI,iBACJ,GAAI,kBACJ,GAAI,qBACJ,GAAI,sBACJ,GAAI,sBACN,EAE+BA,EAAO,MAAM,GAAKA,CAAM,CACzD,EAEaC,EAAqBV,GAAc,CAC9C,IAAMN,EAAQM,GAAK,GACbW,EAAcjB,EAAM,QAAQ,MAAO,EAAE,EAE3C,GAAIiB,EAAY,SAAW,GAAY,OAAOZ,EAAQY,CAAW,EAEjE,IAAMC,EAAWV,EAAiBR,CAAK,EAEvC,OAAIkB,EAAS,SAAW,GAAoBX,EAASW,CAAQ,EAEtD,IACT","sourcesContent":["import { CNPJ_LENGTH, CPF_LENGTH, sanitizeDocument } from './validators';\n\nexport const applyMask = (value = '', mask: string) => {\n let formattedString = '';\n let j = 0;\n\n // Iterate through each character in the mask\n [...mask].forEach(char => {\n // If the character is '#', insert the next character from the input string, or '_' if the input string is shorter\n formattedString += char === '#' ? value[j++] || '_' : char;\n });\n\n return formattedString;\n};\n\nexport const cpfMask = (v: string) => {\n const value = v || '';\n return applyMask(value.replace(/\\D/g, ''), '###.###.###-##');\n};\n\nexport const cnpjMask = (v: string) => {\n const value = v || '';\n return applyMask(sanitizeDocument(value), '##.###.###/####-##');\n};\n\nexport const CPF_INPUT_MASK = [{ mask: '000.000.000-00' }];\n\nexport const CNPJ_INPUT_MASK = [\n {\n mask: '@@.@@@.@@@/@@@@-00',\n definitions: { '@': /[0-9a-zA-Z]/ },\n prepareChar: (character: string) => character.toUpperCase(),\n },\n];\n\nexport const CPF_CNPJ_INPUT_MASK = [...CPF_INPUT_MASK, ...CNPJ_INPUT_MASK];\n\nexport const cepMask = (v: string) => {\n const value = v || '';\n return applyMask(value.replace(/\\D/g, ''), '#####-###');\n};\n\nexport const phoneMask = (v: string) => {\n const value = v || '';\n const digits = value.replace(/\\D/g, '');\n\n const masks: Record<number, string> = {\n 10: '(##) ####-####',\n 11: '(##) #####-####',\n 12: '+## (##) ####-####',\n 13: '+## (##) #####-####',\n 14: '+### (##) #####-####',\n };\n\n return applyMask(digits, masks[digits.length] ?? digits);\n};\n\nexport const cpfMaskOrCnpjMask = (v: string) => {\n const value = v || '';\n const onlyNumbers = value.replace(/\\D/g, '');\n\n if (onlyNumbers.length === CPF_LENGTH) return cpfMask(onlyNumbers);\n\n const document = sanitizeDocument(value);\n\n if (document.length === CNPJ_LENGTH) return cnpjMask(document);\n\n return null;\n};\n"]}
@@ -1,5 +1,15 @@
1
1
  declare const cpfIsValid: (cpf: string) => boolean;
2
+ declare const CPF_LENGTH = 11;
3
+ declare const CNPJ_LENGTH = 14;
4
+ declare const sanitizeDocument: (value?: string) => string;
2
5
  declare const cnpjIsValid: (cnpj: string) => boolean;
6
+ declare const cpfCnpjIsValid: (value: string) => boolean;
7
+ declare const validateCpf: (value?: string) => true | string;
8
+ declare const validateCnpj: (value?: string) => true | string;
9
+ declare const validateCpfCnpj: (value?: string) => true | string;
10
+ declare const validateOptionalCpfCnpj: (value?: string) => true | string;
11
+ declare const validateOptionalCnpj: (value?: string) => true | string;
12
+ declare const validateOptionalCpf: (value?: string) => true | string;
3
13
  declare const emailIsValid: (email?: string) => boolean;
4
14
  declare const validatePassword: (password?: string, passwordSize?: number[], numberChar?: boolean, specialCharacter?: boolean, upperCaseChar?: boolean) => {
5
15
  isLengthValid: boolean;
@@ -10,4 +20,4 @@ declare const validatePassword: (password?: string, passwordSize?: number[], num
10
20
  declare const notOnlySpaces: (value: string) => true | "Não pode ser apenas espaços em branco";
11
21
  declare const validNumberCep: (v: string | undefined) => "CEP inválido" | undefined;
12
22
 
13
- export { cnpjIsValid, cpfIsValid, emailIsValid, notOnlySpaces, validNumberCep, validatePassword };
23
+ export { CNPJ_LENGTH, CPF_LENGTH, cnpjIsValid, cpfCnpjIsValid, cpfIsValid, emailIsValid, notOnlySpaces, sanitizeDocument, validNumberCep, validateCnpj, validateCpf, validateCpfCnpj, validateOptionalCnpj, validateOptionalCpf, validateOptionalCpfCnpj, validatePassword };
@@ -1,2 +1,2 @@
1
- export { b as cnpjIsValid, a as cpfIsValid, c as emailIsValid, e as notOnlySpaces, f as validNumberCep, d as validatePassword } from '../chunk-A3QLGMSB.js';
1
+ export { c as CNPJ_LENGTH, b as CPF_LENGTH, e as cnpjIsValid, f as cpfCnpjIsValid, a as cpfIsValid, m as emailIsValid, o as notOnlySpaces, d as sanitizeDocument, p as validNumberCep, h as validateCnpj, g as validateCpf, i as validateCpfCnpj, k as validateOptionalCnpj, l as validateOptionalCpf, j as validateOptionalCpfCnpj, n as validatePassword } from '../chunk-55XSPNSX.js';
2
2
  //# sourceMappingURL=validators.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.9.23",
3
+ "version": "2.9.24",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1,4 +0,0 @@
1
- var u=t=>{if(!t||(t=t?.replace(/[^\d]+/g,""),t.length!==11||t==="00000000000"||t==="11111111111"||t==="22222222222"||t==="33333333333"||t==="44444444444"||t==="55555555555"||t==="66666666666"||t==="77777777777"||t==="88888888888"||t==="99999999999"))return !1;let e=0;for(let s=0;s<9;s++)e+=parseInt(t.charAt(s))*(10-s);let r=11-e%11;if((r===10||r===11)&&(r=0),r!==parseInt(t.charAt(9)))return !1;e=0;for(let s=0;s<10;s++)e+=parseInt(t.charAt(s))*(11-s);return r=11-e%11,(r===10||r===11)&&(r=0),r===parseInt(t.charAt(10))},h=t=>{if(!t||(t=t.replace(/[^\d]+/g,""),t.length!==14)||t==="00000000000000"||t==="11111111111111"||t==="22222222222222"||t==="33333333333333"||t==="44444444444444"||t==="55555555555555"||t==="66666666666666"||t==="77777777777777"||t==="88888888888888"||t==="99999999999999")return !1;let e=t.length-2,r=t.substring(0,e),s=t.substring(e),a=0,i=e-7;for(let n=e;n>=1;n--)a+=parseInt(r.charAt(e-n))*i--,i<2&&(i=9);let l=a%11<2?0:11-a%11;if(l!==parseInt(s.charAt(0)))return !1;e+=1,r=t.substring(0,e),a=0,i=e-7;for(let n=e;n>=1;n--)a+=parseInt(r.charAt(e-n))*i--,i<2&&(i=9);return l=a%11<2?0:11-a%11,l===parseInt(s.charAt(1))},f=(t="")=>t?!!t.trim().toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/):!1,g=(t="",e=[8,20],r=!1,s=!1,a=!1)=>{let i=t.length>=e[0]&&t.length<=e[1],l=!a||/[A-Z]/.test(t),n=!s||/[!@#$%^&*(),.?":{}|<>]/.test(t),o=!r||/\d/.test(t);return {isLengthValid:i,hasUpperCaseChar:l,hasSpecialCharacter:n,hasNumberChar:o}},d=t=>t&&t.trim().length>0?!0:"N\xE3o pode ser apenas espa\xE7os em branco",A=t=>{if(t&&t.length!==8)return "CEP inv\xE1lido"};
2
-
3
- export { u as a, h as b, f as c, g as d, d as e, A as f };
4
- //# sourceMappingURL=chunk-A3QLGMSB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/validators.ts"],"names":["cpfIsValid","cpf","add","i","rev","cnpjIsValid","cnpj","size","numbers","digits","sum","position","result","emailIsValid","email","validatePassword","password","passwordSize","numberChar","specialCharacter","upperCaseChar","isLengthValid","hasUpperCaseChar","hasSpecialCharacter","hasNumberChar","notOnlySpaces","value","validNumberCep","v"],"mappings":"AAAO,IAAMA,EAAcC,GAAgB,CAGzC,GAFI,CAACA,IACLA,EAAMA,GAAK,QAAQ,UAAW,EAAE,EAE9BA,EAAI,SAAW,IACfA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eACRA,IAAQ,eAER,MAAO,GACT,IAAIC,EAAM,EACV,QAASC,EAAI,EAAGA,EAAI,EAAGA,IAAKD,GAAO,SAASD,EAAI,OAAOE,CAAC,CAAC,GAAK,GAAKA,GACnE,IAAIC,EAAM,GAAMF,EAAM,GAEtB,IADIE,IAAQ,IAAMA,IAAQ,MAAIA,EAAM,GAChCA,IAAQ,SAASH,EAAI,OAAO,CAAC,CAAC,EAAG,MAAO,GAC5CC,EAAM,EACN,QAASC,EAAI,EAAGA,EAAI,GAAIA,IAAKD,GAAO,SAASD,EAAI,OAAOE,CAAC,CAAC,GAAK,GAAKA,GAGpE,OAFAC,EAAM,GAAMF,EAAM,IACdE,IAAQ,IAAMA,IAAQ,MAAIA,EAAM,GAChCA,IAAQ,SAASH,EAAI,OAAO,EAAE,CAAC,CAErC,EAEaI,EAAeC,GAAiB,CAM3C,GALI,CAACA,IACLA,EAAOA,EAAK,QAAQ,UAAW,EAAE,EAE7BA,EAAK,SAAW,KAGlBA,IAAS,kBACTA,IAAS,kBACTA,IAAS,kBACTA,IAAS,kBACTA,IAAS,kBACTA,IAAS,kBACTA,IAAS,kBACTA,IAAS,kBACTA,IAAS,kBACTA,IAAS,iBAET,MAAO,GAET,IAAIC,EAAOD,EAAK,OAAS,EACrBE,EAAUF,EAAK,UAAU,EAAGC,CAAI,EAC9BE,EAASH,EAAK,UAAUC,CAAI,EAC9BG,EAAM,EACNC,EAAWJ,EAAO,EACtB,QAASJ,EAAII,EAAMJ,GAAK,EAAGA,IACzBO,GAAO,SAASF,EAAQ,OAAOD,EAAOJ,CAAC,CAAC,EAAIQ,IACxCA,EAAW,IAAGA,EAAW,GAE/B,IAAIC,EAASF,EAAM,GAAK,EAAI,EAAI,GAAMA,EAAM,GAC5C,GAAIE,IAAW,SAASH,EAAO,OAAO,CAAC,CAAC,EAAG,MAAO,GAElDF,GAAQ,EACRC,EAAUF,EAAK,UAAU,EAAGC,CAAI,EAChCG,EAAM,EACNC,EAAWJ,EAAO,EAClB,QAASJ,EAAII,EAAMJ,GAAK,EAAGA,IACzBO,GAAO,SAASF,EAAQ,OAAOD,EAAOJ,CAAC,CAAC,EAAIQ,IACxCA,EAAW,IAAGA,EAAW,GAG/B,OADAC,EAASF,EAAM,GAAK,EAAI,EAAI,GAAMA,EAAM,GACpCE,IAAW,SAASH,EAAO,OAAO,CAAC,CAAC,CAG1C,EAEaI,EAAe,CAACC,EAAQ,KAC9BA,EASE,CAAC,CAPQA,EACb,KAAK,EACL,YAAY,EACZ,MACC,uJACF,EAPiB,GAYRC,EAAmB,CAC9BC,EAAW,GACXC,EAAe,CAAC,EAAG,EAAE,EACrBC,EAAa,GACbC,EAAmB,GACnBC,EAAgB,KACb,CACH,IAAMC,EACJL,EAAS,QAAUC,EAAa,CAAC,GAAKD,EAAS,QAAUC,EAAa,CAAC,EACnEK,EAAmB,CAACF,GAAiB,QAAQ,KAAKJ,CAAQ,EAC1DO,EACJ,CAACJ,GAAoB,yBAAyB,KAAKH,CAAQ,EACvDQ,EAAgB,CAACN,GAAc,KAAK,KAAKF,CAAQ,EAEvD,MAAO,CACL,cAAAK,EACA,iBAAAC,EACA,oBAAAC,EACA,cAAAC,CACF,CACF,EAEaC,EAAiBC,GAC5BA,GAASA,EAAM,KAAK,EAAE,OAAS,EAC3B,GACA,8CAEOC,EAAkBC,GAA0B,CACvD,GAAIA,GAAKA,EAAE,SAAW,EAAG,MAAO,iBAElC","sourcesContent":["export const cpfIsValid = (cpf: string) => {\n if (!cpf) return false;\n cpf = cpf?.replace(/[^\\d]+/g, '');\n if (\n cpf.length !== 11 ||\n cpf === '00000000000' ||\n cpf === '11111111111' ||\n cpf === '22222222222' ||\n cpf === '33333333333' ||\n cpf === '44444444444' ||\n cpf === '55555555555' ||\n cpf === '66666666666' ||\n cpf === '77777777777' ||\n cpf === '88888888888' ||\n cpf === '99999999999'\n )\n return false;\n let add = 0;\n for (let i = 0; i < 9; i++) add += parseInt(cpf.charAt(i)) * (10 - i);\n let rev = 11 - (add % 11);\n if (rev === 10 || rev === 11) rev = 0;\n if (rev !== parseInt(cpf.charAt(9))) return false;\n add = 0;\n for (let i = 0; i < 10; i++) add += parseInt(cpf.charAt(i)) * (11 - i);\n rev = 11 - (add % 11);\n if (rev === 10 || rev === 11) rev = 0;\n if (rev !== parseInt(cpf.charAt(10))) return false;\n return true;\n};\n\nexport const cnpjIsValid = (cnpj: string) => {\n if (!cnpj) return false;\n cnpj = cnpj.replace(/[^\\d]+/g, '');\n\n if (cnpj.length !== 14) return false;\n\n if (\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n )\n return false;\n\n let size = cnpj.length - 2;\n let numbers = cnpj.substring(0, size);\n const digits = cnpj.substring(size);\n let sum = 0;\n let position = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += parseInt(numbers.charAt(size - i)) * position--;\n if (position < 2) position = 9;\n }\n let result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== parseInt(digits.charAt(0))) return false;\n\n size += 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n position = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += parseInt(numbers.charAt(size - i)) * position--;\n if (position < 2) position = 9;\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== parseInt(digits.charAt(1))) return false;\n\n return true;\n};\n\nexport const emailIsValid = (email = '') => {\n if (!email) return false;\n\n const isValid = email\n .trim()\n .toLowerCase()\n .match(\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n );\n\n return !!isValid;\n};\n\nexport const validatePassword = (\n password = '',\n passwordSize = [8, 20],\n numberChar = false,\n specialCharacter = false,\n upperCaseChar = false,\n) => {\n const isLengthValid =\n password.length >= passwordSize[0] && password.length <= passwordSize[1];\n const hasUpperCaseChar = !upperCaseChar || /[A-Z]/.test(password);\n const hasSpecialCharacter =\n !specialCharacter || /[!@#$%^&*(),.?\":{}|<>]/.test(password);\n const hasNumberChar = !numberChar || /\\d/.test(password);\n\n return {\n isLengthValid,\n hasUpperCaseChar,\n hasSpecialCharacter,\n hasNumberChar,\n };\n};\n\nexport const notOnlySpaces = (value: string) =>\n value && value.trim().length > 0\n ? true\n : 'Não pode ser apenas espaços em branco';\n\nexport const validNumberCep = (v: string | undefined) => {\n if (v && v.length !== 8) return 'CEP inválido';\n return undefined;\n};\n"]}