UNPKG

ccs-frontend

Version:
2 lines (1 loc) 2.32 kB
const version="3.2.0";class PasswordStrengthTest{$passwordStrengthTest;constructor(s){this.$passwordStrengthTest=s}init(){this.$passwordStrengthTest.addClass("ccs-password-strength-tests__wrong")}testPasswordInput(s){const t=this.test.test(s);this.$passwordStrengthTest.toggleClass("ccs-password-strength-tests__wrong",!t),this.$passwordStrengthTest.toggleClass("ccs-password-strength-tests__correct",t)}}class PasswordStrengthTestLength extends PasswordStrengthTest{test;constructor(s,t){super(s),this.test=new RegExp(`^.{${t},}`)}}class PasswordStrengthTestSymbol extends PasswordStrengthTest{test;constructor(s,t){super(s),this.test=new RegExp(`^(?=.*?[${t}])`)}}class PasswordStrengthTestNumber extends PasswordStrengthTest{test;constructor(s){super(s),this.test=new RegExp("^(?=.*[0-9])")}}class PasswordStrengthTestUppercase extends PasswordStrengthTest{test;constructor(s){super(s),this.test=new RegExp("^(?=.*[A-Z])")}}class PasswordStrengthTestLowercase extends PasswordStrengthTest{test;constructor(s){super(s),this.test=new RegExp("^(?=.*[a-z])")}}class PasswordStrength{static moduleName="ccs-password-strength";$passwordStrength;$passwordInput;passwordStrengthTests;constructor(s){this.$passwordStrength=s,this.$passwordInput=$(`#${s.data("target")}`),this.passwordStrengthTests=this.$passwordStrength.find(".ccs-password-strength-test").get().map((s=>(s=>{const t=s.data("testType"),e=s.data("testValue");switch(t){case"length":return new PasswordStrengthTestLength(s,e);case"symbol":return new PasswordStrengthTestSymbol(s,e);case"number":return new PasswordStrengthTestNumber(s);case"uppercase":return new PasswordStrengthTestUppercase(s);case"lowercase":return new PasswordStrengthTestLowercase(s)}})($(s))))}init(){this.$passwordInput.length&&(this.$passwordStrength.addClass("ccs-password-strength-tests"),this.passwordStrengthTests.forEach((s=>s.init())),this.$passwordInput.on("keyup",(()=>{this.testPasswordInput()})))}testPasswordInput(){const s=String(this.$passwordInput.val());this.passwordStrengthTests.forEach((t=>t.testPasswordInput(s)))}}const createAll=s=>{$(`[data-module="${s.moduleName}"]`).each(((t,e)=>{new s($(e)).init()}))},initAll=()=>{[PasswordStrength].forEach((s=>{createAll(s)}))};export{PasswordStrength,createAll,initAll,version};//# sourceMappingURL=ccs-frontend.min.js.map