{"version":3,"sources":["webpack:///./app/javascript/packs/pw-popover.js"],"names":["tpl","score","warning","hasLength","hasNumber","hasLowerAndUppercase","$","each","i","element","options","html","content","placement","trigger","$element","popover","on","e","pw","currentTarget","value","result","zxcvbn","data","dataset","feedback","length","test"],"mappings":"yFAAA,wCAEMA,EAAM,SAACC,EAAOC,EAASC,EAAWC,EAAWC,GAAvC,wDAC4BJ,EAD5B,4GAIOE,GAAa,eAJpB,yDAKOE,GAAwB,eAL/B,oEAMOD,GAAa,eANpB,6DASVH,GAAS,GAAT,qDAEkCA,EAAQ,EAAI,kCAAoC,4BAFlF,+DAIIC,EAAO,oDACHA,EADG,mBAJX,cATU,iBAqBZI,EAAE,qBACCC,MAAK,SAACC,EAAGC,GACR,IAAMC,EAAU,CACdC,MAAM,EACNC,QAASZ,EAAI,GAAG,GAAO,GAAO,GAC9Ba,UAAW,SACXC,QAAS,SAELC,EAAWT,EAAEG,GAChBO,QAAQN,GAEXK,EACGE,GAAG,SAAS,SAACC,GACZ,IAAMC,EAAKD,EAAEE,cAAcC,MACrBC,EAASC,IAAOJ,GAEtBJ,EAASS,KAAK,cAAcf,QAAQgB,QAAQb,QAAUZ,EAAIsB,EAAOrB,MAC/DqB,EAAOI,SAASxB,QAChBiB,EAAGQ,QAAU,EACb,QAAQC,KAAKT,GACb,QAAQS,KAAKT,IAAO,QAAQS,KAAKT,IAEnCJ,EAASC,QAAQ,e","file":"js/4-0ed2975c289c493184af.chunk.js","sourcesContent":["import zxcvbn from 'zxcvbn';\n\nconst tpl = (score, warning, hasLength, hasNumber, hasLowerAndUppercase) => `\n  <div class=\"pw-popover\" data-score=\"${score}\">\n    <p class=\"mb-2\">Your password must contain:</p>\n    <ul class=\"pl-3\">\n      <li class=\"${hasLength && 'text-success'}\">8 or more characters</li>\n      <li class=\"${hasLowerAndUppercase && 'text-success'}\">lower and upper case characters</li>\n      <li class=\"${hasNumber && 'text-success'}\">at least one number</li>\n    </ul>\n    <hr/>\n${score >= 0 && `\n<div>\n    <div class=\"pw-popover-score\">${score < 3 ? 'Your password could be stronger' : 'That\\'s a strong password!'}</div>\n    <div class=\"pw-popover-bar\"></div>\n    ${warning ? `<div class=\"pw-popover-warning\">\n        ${warning}\n    </div>` : ``}\n</div>\n`}\n</div>\n  `;\n\n$('[data-pw-popover]')\n  .each((i, element) => {\n    const options = {\n      html: true,\n      content: tpl(0, false, false, false),\n      placement: 'bottom',\n      trigger: 'focus'\n    };\n    const $element = $(element)\n      .popover(options);\n\n    $element\n      .on('keyup', (e) => {\n        const pw = e.currentTarget.value;\n        const result = zxcvbn(pw);\n\n        $element.data('bs.popover').element.dataset.content = tpl(result.score,\n          result.feedback.warning,\n          pw.length >= 8,\n          /[0-9]/.test(pw),\n          /[a-z]/.test(pw) && /[A-Z]/.test(pw)\n        );\n        $element.popover('show');\n      });\n  });\n"],"sourceRoot":""}