{"version":3,"file":"validation.js","sources":["../../../../IREP.Web.Content/v7/scripts/utilities/validation.ts"],"sourcesContent":["export class PasswordValidationRequirements {\n}\nPasswordValidationRequirements.LENGTH = 6;\nPasswordValidationRequirements.MIN_CATEGORIES = 3;\nPasswordValidationRequirements.REGEX_UPPER = /\\p{Lu}/u;\nPasswordValidationRequirements.REGEX_LOWER = /\\p{Ll}/u;\nPasswordValidationRequirements.REGEX_NUMBER = /\\p{N}/u;\nPasswordValidationRequirements.REGEX_SPECIAL = /\\p{L}\\p{M}|[!\"#$%&'()*+,-./:;=>?@[\\]^_`{|}~]/u;\nexport class PasswordValidation {\n constructor() {\n throw new Error('Static Class, cannot new this class');\n }\n static newPasswordIsValid(password, confirmPassword) {\n let match = this.confirmMatch(password, confirmPassword);\n let requirements = this.checkPasswordRequirements(password);\n let valid = match && requirements.valid;\n return {\n valid: valid,\n match: match,\n requirements: requirements\n };\n }\n static checkPasswordRequirements(password) {\n let length = password.length >= PasswordValidationRequirements.LENGTH;\n let upper = PasswordValidationRequirements.REGEX_UPPER.test(password);\n let lower = PasswordValidationRequirements.REGEX_LOWER.test(password);\n let number = PasswordValidationRequirements.REGEX_NUMBER.test(password);\n let special = PasswordValidationRequirements.REGEX_SPECIAL.test(password);\n let passesAllRequirements = length\n && [upper, lower, number, special].filter(e => e).length >= PasswordValidationRequirements.MIN_CATEGORIES;\n return {\n valid: passesAllRequirements,\n length: length,\n upper: upper,\n lower: lower,\n number: number,\n special: special\n };\n }\n static confirmMatch(password, confirmPassword) {\n return (password === confirmPassword);\n }\n static changePasswordNoClr(currentPassword, password, confirmPassword) {\n let deferred = $.Deferred();\n let isValid = PasswordValidation.newPasswordIsValid(password, confirmPassword);\n if (isValid.valid) {\n window.irep.getHtml({\n url: '/api/changepasswordnoclr',\n type: 'POST',\n data: {\n OldPassword: currentPassword,\n NewPassword: password\n },\n secure: true\n })\n .done((res) => {\n let data = JSON.parse(res);\n if (data.passwordChanged === 1) {\n deferred.resolve({ success: true, message: PasswordValidation.PASSWORD_VALIDATION_MESSAGES.SUCCESS });\n }\n else {\n deferred.reject({ success: false, message: PasswordValidation.PASSWORD_VALIDATION_MESSAGES.INVALID_CURRENT_PASSWORD });\n }\n })\n .fail(() => {\n deferred.reject({ success: false, message: PasswordValidation.PASSWORD_VALIDATION_MESSAGES.INVALID_PASSWORD });\n });\n }\n else {\n deferred.reject(isValid);\n }\n return deferred;\n }\n}\nPasswordValidation.PASSWORD_VALIDATION_MESSAGES = {\n SUCCESS: 'success',\n INVALID_CURRENT_PASSWORD: 'incorrect_password',\n INVALID_PASSWORD: 'invalid_password',\n PASSWORD_CONFIRM_MISMATCH: 'password_mismatch'\n};\nexport class EmailValidationRequirements {\n}\nEmailValidationRequirements.REGEX_EMAIL_FORMAT = /^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$/;\nexport class EmailValidation {\n constructor() {\n throw new Error('Static Class, cannot new this class');\n }\n static emailFormatIsValid(email) {\n return EmailValidationRequirements.REGEX_EMAIL_FORMAT.test(email);\n }\n}\nexport class PhoneNumberValidation {\n constructor() {\n throw new Error('Static Class, cannot new this class');\n }\n static validPhoneNumberAsmo(phoneNumber) {\n let phoneRegext = new RegExp(\"^(\\\\+\\\\d{1,2}\\\\s)?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$\");\n return phoneRegext.test(phoneNumber);\n }\n static validPhoneNumberLar(phoneNumber) {\n let phoneRegext = new RegExp(\"^\\\\+?\\\\(?\\\\d{1,3}\\\\)?(\\\\s|-)?\\\\d{1,5}(\\\\s|-)?\\\\d{4,9}\");\n return phoneRegext.test(phoneNumber);\n }\n static validPhoneNumberBrazil(phoneNumber) {\n let phoneRegext = new RegExp(\"\\\\(([0-9]{2}|0{1}((x|[0-9]){2}[0-9]{2}))\\\\)\\\\s*[0-9]{3,4}[- ]*[0-9]{4}\");\n return phoneRegext.test(phoneNumber);\n }\n}\n"],"names":["PasswordValidationRequirements","LENGTH","MIN_CATEGORIES","REGEX_UPPER","REGEX_LOWER","REGEX_NUMBER","REGEX_SPECIAL","PasswordValidation","constructor","Error","newPasswordIsValid","password","confirmPassword","match","this","confirmMatch","requirements","checkPasswordRequirements","valid","length","upper","test","lower","number","special","filter","e","changePasswordNoClr","currentPassword","deferred","$","Deferred","isValid","window","irep","getHtml","url","type","data","OldPassword","NewPassword","secure","done","res","JSON","parse","passwordChanged","resolve","success","message","PASSWORD_VALIDATION_MESSAGES","SUCCESS","reject","INVALID_CURRENT_PASSWORD","fail","INVALID_PASSWORD","PASSWORD_CONFIRM_MISMATCH","EmailValidationRequirements","REGEX_EMAIL_FORMAT","EmailValidation","emailFormatIsValid","email","PhoneNumberValidation","validPhoneNumberAsmo","phoneNumber","RegExp","validPhoneNumberLar","validPhoneNumberBrazil"],"mappings":"AAAO,MAAMA,GAEbA,EAA+BC,OAAS,EACxCD,EAA+BE,eAAiB,EAChDF,EAA+BG,YAAc,UAC7CH,EAA+BI,YAAc,UAC7CJ,EAA+BK,aAAe,SAC9CL,EAA+BM,cAAgB,gDACxC,MAAMC,EACT,WAAAC,GACI,MAAM,IAAIC,MAAM,sCACxB,CACI,yBAAOC,CAAmBC,EAAUC,GAChC,IAAIC,EAAQC,KAAKC,aAAaJ,EAAUC,GACpCI,EAAeF,KAAKG,0BAA0BN,GAElD,MAAO,CACHO,MAFQL,GAASG,EAAaE,MAG9BL,MAAOA,EACPG,aAAcA,EAE1B,CACI,gCAAOC,CAA0BN,GAC7B,IAAIQ,EAASR,EAASQ,QAAUnB,EAA+BC,OAC3DmB,EAAQpB,EAA+BG,YAAYkB,KAAKV,GACxDW,EAAQtB,EAA+BI,YAAYiB,KAAKV,GACxDY,EAASvB,EAA+BK,aAAagB,KAAKV,GAC1Da,EAAUxB,EAA+BM,cAAce,KAAKV,GAGhE,MAAO,CACHO,MAHwBC,GACrB,CAACC,EAAOE,EAAOC,EAAQC,GAASC,QAAOC,GAAKA,IAAGP,QAAUnB,EAA+BE,eAG3FiB,OAAQA,EACRC,MAAOA,EACPE,MAAOA,EACPC,OAAQA,EACRC,QAASA,EAErB,CACI,mBAAOT,CAAaJ,EAAUC,GAC1B,OAAQD,IAAaC,CAC7B,CACI,0BAAOe,CAAoBC,EAAiBjB,EAAUC,GAClD,IAAIiB,EAAWC,EAAEC,WACbC,EAAUzB,EAAmBG,mBAAmBC,EAAUC,GA2B9D,OA1BIoB,EAAQd,MACRe,OAAOC,KAAKC,QAAQ,CAChBC,IAAK,2BACLC,KAAM,OACNC,KAAM,CACFC,YAAaX,EACbY,YAAa7B,GAEjB8B,QAAQ,IAEPC,MAAMC,IAEsB,IADlBC,KAAKC,MAAMF,GACbG,gBACLjB,EAASkB,QAAQ,CAAEC,SAAS,EAAMC,QAAS1C,EAAmB2C,6BAA6BC,UAG3FtB,EAASuB,OAAO,CAAEJ,SAAS,EAAOC,QAAS1C,EAAmB2C,6BAA6BG,0BAC/G,IAEiBC,MAAK,KACNzB,EAASuB,OAAO,CAAEJ,SAAS,EAAOC,QAAS1C,EAAmB2C,6BAA6BK,kBAAmB,IAIlH1B,EAASuB,OAAOpB,GAEbH,CACf,EAEAtB,EAAmB2C,6BAA+B,CAC9CC,QAAS,UACTE,yBAA0B,qBAC1BE,iBAAkB,mBAClBC,0BAA2B,qBAExB,MAAMC,GAEbA,EAA4BC,mBAAqB,6BAC1C,MAAMC,EACT,WAAAnD,GACI,MAAM,IAAIC,MAAM,sCACxB,CACI,yBAAOmD,CAAmBC,GACtB,OAAOJ,EAA4BC,mBAAmBrC,KAAKwC,EACnE,EAEO,MAAMC,EACT,WAAAtD,GACI,MAAM,IAAIC,MAAM,sCACxB,CACI,2BAAOsD,CAAqBC,GAExB,OADkB,IAAIC,OAAO,iEACV5C,KAAK2C,EAChC,CACI,0BAAOE,CAAoBF,GAEvB,OADkB,IAAIC,OAAO,yDACV5C,KAAK2C,EAChC,CACI,6BAAOG,CAAuBH,GAE1B,OADkB,IAAIC,OAAO,0EACV5C,KAAK2C,EAChC"}