UNPKG

ccs-frontend

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