{"version":3,"file":"all.bundle.mjs","sources":["../../src/ccs/common/ccs-frontend-version.ts","../../src/ccs/components/password-strength/password-strength.ts","../../src/ccs/init.ts"],"sourcesContent":["/*\n * This variable is automatically overwritten during builds and releases.\n * It doesn't need to be updated manually.\n */\n\n/**\n * CCS Frontend release version\n *\n * {@link https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases}\n */\nexport const version = 'development'\n","import { CCSFrontendComponent } from '../../ccs-frontend-component'\n\nabstract class PasswordStrengthTest {\n  abstract test: RegExp\n  $passwordStrengthTest: JQuery<HTMLLIElement>\n\n  constructor ($passwordStrengthTest: JQuery<HTMLLIElement>) {\n    this.$passwordStrengthTest = $passwordStrengthTest\n  }\n\n  init () {\n    this.$passwordStrengthTest.addClass('ccs-password-strength-tests__wrong')\n  }\n\n  testPasswordInput (passwordInputText: string) {\n    const testPassed: boolean = this.test.test(passwordInputText)\n\n    this.$passwordStrengthTest.toggleClass('ccs-password-strength-tests__wrong', !testPassed)\n    this.$passwordStrengthTest.toggleClass('ccs-password-strength-tests__correct', testPassed)\n  }\n}\n\nclass PasswordStrengthTestLength extends PasswordStrengthTest {\n  test: RegExp\n\n  constructor ($passwordStrengthTest: JQuery<HTMLLIElement>, value: string) {\n    super($passwordStrengthTest)\n    this.test = new RegExp(`^.{${value},}`)\n  }\n}\n\nclass PasswordStrengthTestSymbol extends PasswordStrengthTest {\n  test: RegExp\n\n  constructor ($passwordStrengthTest: JQuery<HTMLLIElement>, value: string) {\n    super($passwordStrengthTest)\n    this.test = new RegExp(`^(?=.*?[${value}])`)\n  }\n}\n\nclass PasswordStrengthTestNumber extends PasswordStrengthTest {\n  test: RegExp\n\n  constructor ($passwordStrengthTest: JQuery<HTMLLIElement>) {\n    super($passwordStrengthTest)\n    this.test = new RegExp('^(?=.*[0-9])')\n  }\n}\n\nclass PasswordStrengthTestUppercase extends PasswordStrengthTest {\n  test: RegExp\n\n  constructor ($passwordStrengthTest: JQuery<HTMLLIElement>) {\n    super($passwordStrengthTest)\n    this.test = new RegExp('^(?=.*[A-Z])')\n  }\n}\n\nclass PasswordStrengthTestLowercase extends PasswordStrengthTest {\n  test: RegExp\n\n  constructor ($passwordStrengthTest: JQuery<HTMLLIElement>) {\n    super($passwordStrengthTest)\n    this.test = new RegExp('^(?=.*[a-z])')\n  }\n}\n\nconst passwordStrengthTestFactory = ($passwordStrengthTest: JQuery<HTMLLIElement>): PasswordStrengthTest | undefined => {\n  const testType = $passwordStrengthTest.data('testType')\n  const value = $passwordStrengthTest.data('testValue')\n\n  switch (testType) {\n    case 'length':\n      return new PasswordStrengthTestLength($passwordStrengthTest, value)\n    case 'symbol':\n      return new PasswordStrengthTestSymbol($passwordStrengthTest, value)\n    case 'number':\n      return new PasswordStrengthTestNumber($passwordStrengthTest)\n    case 'uppercase':\n      return new PasswordStrengthTestUppercase($passwordStrengthTest)\n    case 'lowercase':\n      return new PasswordStrengthTestLowercase($passwordStrengthTest)\n  }\n}\n\nclass PasswordStrength implements CCSFrontendComponent {\n  static moduleName = 'ccs-password-strength'\n  $passwordStrength: JQuery<HTMLUListElement>\n  $passwordInput: JQuery<HTMLInputElement>\n  passwordStrengthTests: PasswordStrengthTest[]\n\n  constructor ($passwordStrength: JQuery<HTMLElement>) {\n    this.$passwordStrength = $passwordStrength as JQuery<HTMLUListElement>\n    this.$passwordInput = $<HTMLInputElement>(`#${$passwordStrength.data('target')}`)\n    this.passwordStrengthTests = this.$passwordStrength.find<HTMLLIElement>('.ccs-password-strength-test').get().map((passwordStrengthTest) => passwordStrengthTestFactory($(passwordStrengthTest)) as PasswordStrengthTest)\n  }\n\n  init () {\n    if (this.$passwordInput.length) {\n      this.$passwordStrength.addClass('ccs-password-strength-tests')\n      this.passwordStrengthTests.forEach((passwordStrengthTest) => passwordStrengthTest.init())\n\n      this.$passwordInput.on('keyup', () => { this.testPasswordInput() })\n    }\n  }\n\n  private testPasswordInput () {\n    const passwordInputText = String(this.$passwordInput.val())\n\n    this.passwordStrengthTests.forEach((passwordStrengthTest) => passwordStrengthTest.testPasswordInput(passwordInputText))\n  }\n}\n\nexport { PasswordStrength }\n","import { CCSFrontendComponent } from './ccs-frontend-component'\nimport { PasswordStrength } from './components/password-strength/password-strength'\n\nconst createAll = (Component: typeof CCSFrontendComponent) => {\n  $(`[data-module=\"${Component.moduleName}\"]`).each((_index, componentElement) => {\n    new Component($(componentElement)).init()\n  })\n}\n\nconst initAll = () => {\n  const components: Array<typeof CCSFrontendComponent> = [\n    PasswordStrength,\n  ]\n\n  components.forEach((Component) => {\n    createAll(Component)\n  })\n}\n\nexport { initAll, createAll }\n"],"names":[],"mappings":"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"}