{"version":3,"sources":["src/javascripts/pwstrength.js"],"names":["$","fn","pwstrength","options","settings","extend","enabled","strength_text","strength_meter","strength_container","minlength","frame","frametarget","texts","colors","medium_regex","strong_regex","elem","this","$strength_meter","$strength_text","$strength_container","strengthtext_class","attr","$framecont","contents","show","addClass","hide","on","val","strength","getStrength","change","length","strength_text_class","strength_meter_class","hasClass","text","removeClass","STRENGTH_LEVEL","medrgx","strrgx","match","RegExp","jQuery"],"mappings":";CAAC,SAAUA,GAEPA,EAAEC,GAAGC,WAAa,SAAUC,GACxB,IAAIC,EAAWJ,EAAEK,OAAO,CACpBC,SAAS,EACTC,cAAe,mBACfC,eAAgB,oBAChBC,mBAAoB,wBACpBC,UAAW,EACXC,MAAO,KACPC,YAAa,KACbC,MAAO,CAAC,GAAI,WAAY,OAAQ,UAChCC,OAAQ,CAAC,GAAI,MAAO,SAAU,SAE9BC,aAAc,yFACdC,aAAc,+DACfb,GAECc,EAAOC,KAEPC,EAAkBf,EAASI,eAAiBR,EAAEI,EAASI,gBAAkB,KAEzEY,EAAiBhB,EAASG,cAAgBP,EAAEI,EAASG,eAAiB,KAEtEc,EAAsBjB,EAASK,mBAAqBT,EAAEI,EAASK,oBAAsB,KAErFa,EAAqBF,EAAeG,KAAK,SAI7C,GAAInB,EAASO,OAASP,EAASQ,YAAa,CACxC,IAAIY,EAAaxB,EAAEI,EAASO,OAAOc,WACnCR,EAAOjB,EAAEI,EAASQ,YAAaY,GAC/BL,EAAkBnB,EAAEI,EAASI,eAAgBgB,GAC7CJ,EAAiBpB,EAAEI,EAASG,cAAeiB,GAC3CH,EAAsBrB,EAAEI,EAASK,mBAAoBe,GAGrDpB,EAASE,SACTa,EAAgBO,OAChBN,EAAeM,OACfT,EAAKU,SAAS,sBAEdR,EAAgBS,OAChBR,EAAeQ,QAGnBX,EAAKY,GAAG,sBAAsB,WAC1B,GAAIzB,EAASE,QAAS,CAClB,IAAIwB,EAAMb,EAAKa,MACXC,EAAWC,EAAYF,EAAK1B,EAASM,UAAWN,EAASW,aAAcX,EAASY,cAIpF,GAFAhB,EAAE,oBAAoB8B,IAAIC,GAAUE,SAEhCH,EAAII,OAAS,EAAG,CAChB,IAAIC,EAAsBb,EAAqB,IAAMlB,EAASU,OAAOiB,GACjEK,EAAuB,oBAAsBhC,EAASU,OAAOiB,IAE5DX,EAAeiB,SAASF,IAAwBJ,KAAY3B,EAASS,OACtEO,EAAekB,KAAKlC,EAASS,MAAMkB,IAAWR,KAAK,QAASY,GAE5DhB,GACAA,EAAgBI,KAAK,QAASa,GAE7Bf,EAAoBgB,SAAS,yBAC1BhB,EAAoBM,SAAS,6BAGrCP,EAAekB,KAAK,IAAIf,KAAK,QAASD,GAEnCD,EAAoBgB,SAAS,yBACxBhB,EAAoBkB,YAAY,wBAEpCpB,GACAA,EAAgBI,KAAK,QAAS,wBAM9C,IAAIiB,EACM,EADNA,EAEU,EAFVA,EAGM,EAHNA,EAIQ,EAGRR,EAAc,SAAUF,EAAKpB,EAAW+B,EAAQC,GAChD,IAAIX,EAAWS,EAUf,OATIV,EAAII,OAASxB,IACbqB,EAAWS,GAEXV,EAAIa,MAAM,IAAIC,OAAOH,MACrBV,EAAWS,GAEXV,EAAIa,MAAM,IAAIC,OAAOF,MACrBX,EAAWS,GAERT,IAlGnB,CAuGEc","file":"pwstrength.min.js","sourcesContent":["(function ($) {\r\n\r\n $.fn.pwstrength = function (options) {\r\n var settings = $.extend({\r\n enabled: true,\r\n strength_text: '.pwstrength-text',\r\n strength_meter: '.pwstrength-meter',\r\n strength_container: '#pwstrength_container',\r\n minlength: 6,\r\n frame: null,\r\n frametarget: null, // this is the id of the password element within the frame\r\n texts: ['', 'too weak', 'weak', 'strong'],\r\n colors: ['', 'red', 'yellow', 'green'],\r\n\r\n medium_regex: '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})',\r\n strong_regex: '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})'\r\n }, options);\r\n\r\n var elem = this;\r\n\r\n var $strength_meter = settings.strength_meter ? $(settings.strength_meter) : null;\r\n\r\n var $strength_text = settings.strength_text ? $(settings.strength_text) : null;\r\n\r\n var $strength_container = settings.strength_container ? $(settings.strength_container) : null;\r\n\r\n var strengthtext_class = $strength_text.attr('class');\r\n\r\n // handle the case of passsword strength within an iframe\r\n // frame and frametarget must be defined\r\n if (settings.frame && settings.frametarget) {\r\n var $framecont = $(settings.frame).contents();\r\n elem = $(settings.frametarget, $framecont);\r\n $strength_meter = $(settings.strength_meter, $framecont);\r\n $strength_text = $(settings.strength_text, $framecont);\r\n $strength_container = $(settings.strength_container, $framecont);\r\n }\r\n\r\n if (settings.enabled) {\r\n $strength_meter.show();\r\n $strength_text.show();\r\n elem.addClass('pwstrength-input');\r\n } else {\r\n $strength_meter.hide();\r\n $strength_text.hide();\r\n } \r\n\r\n elem.on('keyup.pwstr change', function () {\r\n if (settings.enabled) {\r\n var val = elem.val();\r\n var strength = getStrength(val, settings.minlength, settings.medium_regex, settings.strong_regex);\r\n\r\n $('#pwstrengthvalue').val(strength).change();\r\n\r\n if (val.length > 0) {\r\n var strength_text_class = strengthtext_class + ' ' + settings.colors[strength],\r\n strength_meter_class = 'pwstrength-meter ' + settings.colors[strength];\r\n\r\n if (!$strength_text.hasClass(strength_text_class) && strength in settings.texts)\r\n $strength_text.text(settings.texts[strength]).attr('class', strength_text_class);\r\n\r\n if ($strength_meter)\r\n $strength_meter.attr('class', strength_meter_class);\r\n\r\n if (!$strength_container.hasClass('pwstrength-container'))\r\n $strength_container.addClass('pwstrength-container');\r\n\r\n } else {\r\n $strength_text.text('').attr('class', strengthtext_class);\r\n\r\n if($strength_container.hasClass('pwstrength-container'))\r\n $strength_container.removeClass('pwstrength-container');\r\n\r\n if ($strength_meter)\r\n $strength_meter.attr('class', 'pwstrength-meter');\r\n\r\n }\r\n }\r\n });\r\n\r\n var STRENGTH_LEVEL = {\r\n NONE: 0,\r\n TOO_WEAK: 1,\r\n WEAK: 2,\r\n STRONG: 3\r\n };\r\n\r\n var getStrength = function (val, minlength, medrgx, strrgx) {\r\n var strength = STRENGTH_LEVEL.TOO_WEAK;\r\n if (val.length < minlength)\r\n strength = STRENGTH_LEVEL.NONE;\r\n\r\n if (val.match(new RegExp(medrgx)))\r\n strength = STRENGTH_LEVEL.WEAK;\r\n\r\n if (val.match(new RegExp(strrgx)))\r\n strength = STRENGTH_LEVEL.STRONG;\r\n\r\n return strength;\r\n }\r\n\r\n };\r\n\r\n}(jQuery));\r\n"]}