{"version":3,"sources":["webpack:///./app/assets/javascripts/sessions/behaviors/alert.js","webpack:///./app/assets/stylesheets/sessions.scss","webpack:///./app/assets/javascripts/sessions/behaviors/password-strength-meter.js","webpack:///./app/assets/javascripts/packs/sessions.js"],"names":["onmount","closeButton","this","querySelector","addEventListener","remove","module","exports","LEVELS","class","text","meter","strengthDisplay","warningDisplay","suggestionsDisplay","passwordInput","document","setLevel","level","classList","add","innerText","then","zxcvbn","password","value","result","score","get","join","mountUniversalHeader"],"mappings":"2FAAA,kBAEAA,GAAQ,0BAA0B,WAAa,IAAD,OACtCC,EAAcC,KAAKC,cAAc,uBAEnCF,GACFA,EAAYG,iBAAiB,SAAS,WACpC,EAAKC,gB,oBCNXC,EAAOC,QAAU,CAAC,uBAAyB,QAAQ,wBAA0B,SAAS,gBAAkB,SAAS,oBAAsB,O,uGCEjIC,EACE,CAAEC,MAAO,cADXD,EAEE,CAAEC,MAAO,QAASC,KAAM,QAF1BF,EAGE,CAAEC,MAAO,QAASC,KAAM,SAH1BF,EAIE,CAAEC,MAAO,QAASC,KAAM,QAJ1BF,EAKG,CAAEC,MAAO,SAAUC,KAAM,UAGlCV,IAAQ,4CAA4C,WAClD,IAAMW,EAAQT,KACRU,EAAkBD,EAAMR,cAAc,8BACtCU,EAAiBF,EAAMR,cAAc,uBACrCW,EAAqBH,EAAMR,cAAc,2BACzCY,EAAgBC,SAASb,cAAc,wBAEvCc,EAAW,SAAUC,GACzBP,EAAMQ,UAAUd,OAAO,aAAc,QAAS,QAAS,QAAS,UAChEM,EAAMQ,UAAUC,IAAIF,EAAK,OACzBN,EAAgBS,UAAYH,EAAMR,MAGpC,mCAAiBY,MAAK,SAAAC,GACpBR,EAAcX,iBAAiB,SAAS,WACtC,IAAMoB,EAAWT,EAAcU,MACzBC,EAASF,GAAYD,EAAOC,GAE7BE,EAEMA,EAAOC,OAAS,EACzBV,EAAST,GACAkB,EAAOC,OAAS,EACzBV,EAAST,GACAkB,EAAOC,OAAS,EACzBV,EAAST,GAETS,EAAST,GARTS,EAAST,GAWXK,EAAeQ,UAAYO,IAAIF,EAAQ,mBAAoB,IAC3DZ,EAAmBO,UAAYO,IAAIF,EAAQ,uBAAwB,IAAIG,KAAK,cClClF7B,IAAQ,qBAAqB,kBAAM8B,iBACnC9B,Q","file":"js/sessions-5e7d032b90826bccc3a6.chunk.js","sourcesContent":["import onmount from 'onmount'\n\nonmount('[data-component=alert]', function () {\n const closeButton = this.querySelector('[data-action=close]')\n\n if (closeButton) {\n closeButton.addEventListener('click', () => {\n this.remove()\n })\n }\n})\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"minTabletPortraitWidth\":\"600px\",\"minTabletLandscapeWidth\":\"1000px\",\"minDesktopWidth\":\"1200px\",\"pageFadeOutDuration\":\".1\"};","import get from 'lodash/get'\nimport onmount from 'onmount'\n\nconst LEVELS = {\n none: { class: '-invisible' },\n weak: { class: '-weak', text: 'Weak' },\n soso: { class: '-soso', text: 'So-so' },\n good: { class: '-good', text: 'Good' },\n great: { class: '-great', text: 'Great!' }\n}\n\nonmount('[data-component=password-strength-meter]', function () {\n const meter = this\n const strengthDisplay = meter.querySelector('[data-show=strength-level]')\n const warningDisplay = meter.querySelector('[data-show=warning]')\n const suggestionsDisplay = meter.querySelector('[data-show=suggestions]')\n const passwordInput = document.querySelector('input[type=password]')\n\n const setLevel = function (level) {\n meter.classList.remove('-invisible', '-weak', '-soso', '-good', '-great')\n meter.classList.add(level.class)\n strengthDisplay.innerText = level.text\n }\n\n import('zxcvbn').then(zxcvbn => {\n passwordInput.addEventListener('input', () => {\n const password = passwordInput.value\n const result = password && zxcvbn(password)\n\n if (!result) {\n setLevel(LEVELS.none)\n } else if (result.score <= 1) {\n setLevel(LEVELS.weak)\n } else if (result.score <= 2) {\n setLevel(LEVELS.soso)\n } else if (result.score <= 3) {\n setLevel(LEVELS.good)\n } else {\n setLevel(LEVELS.great)\n }\n\n warningDisplay.innerText = get(result, 'feedback.warning', '')\n suggestionsDisplay.innerText = get(result, 'feedback.suggestions', []).join(' ')\n })\n })\n})\n","import 'stylesheets/sessions.scss'\n\nimport onmount from 'onmount'\nimport { mount as mountUniversalHeader } from 'universal-header'\n\nimport '../sessions/behaviors/alert'\nimport '../sessions/behaviors/password-strength-meter'\n\nonmount('.universal-header', () => mountUniversalHeader())\nonmount()\n"],"sourceRoot":""}