{"version":3,"file":"passwordquality-B1iJMMJL.js","sources":["../../../js/passwordquality.mjs"],"sourcesContent":["'use strict';\r\nimport { localize } from \"./localization.mjs\"\r\n\r\n/**\r\n * Created by bo on 07.06.2017.\r\n */\r\n\r\nvar textPwdLevel1 = \"Sehr schwaches Passwort\";\r\nvar textPwdLevel2 = \"Schwaches Passwort\";\r\nvar textPwdLevel3 = \"Gutes Passwort\";\r\nvar textPwdLevel4 = \"Starkes Passwort\";\r\nvar textPwdLevel5 = \"Sehr starkes Passwort\";\r\n\r\nlocalize('PWDQUALITY').then(function (__) { //\r\n textPwdLevel1 = __(\"Sehr schwaches Passwort\");\r\n textPwdLevel2 = __(\"Schwaches Passwort\");\r\n textPwdLevel3 = __(\"Gutes Passwort\");\r\n textPwdLevel4 = __(\"Starkes Passwort\");\r\n textPwdLevel5 = __(\"Sehr starkes Passwort\");\r\n});\r\n\r\nvar $password_input = $('.pwd_quality_input');\r\n\r\n$password_input.keyup(function () {\r\n var strength = password_strength($password_input.val());\r\n $('#pwd_quality').find('.bar').css('width', strength + '%');\r\n $('#pwd_quality_text').html(password_strength_text(strength));\r\n});\r\n\r\nfunction password_strength_text(strength) {\r\n if (strength < 30) {\r\n return textPwdLevel1;\r\n } else if (strength < 55) {\r\n return textPwdLevel2;\r\n } else if (strength < 75) {\r\n return textPwdLevel3;\r\n } else if (strength < 85) {\r\n return textPwdLevel4;\r\n } else {\r\n return textPwdLevel5;\r\n }\r\n}\r\n\r\nfunction password_strength(pwd) {\r\n var strength = 0;\r\n var last = null;\r\n\r\n var uppercase_bonus = 8;\r\n var lowercase_bonus = 8;\r\n var number_bonus = 8;\r\n var symbol_bonus = 20;\r\n var repetition_malus = 1;\r\n var sequential_malus = 1;\r\n var char_count = {};\r\n\r\n // Alle Zeichen im Passwort durchgehen und Punkte vergeben\r\n for (var i = 0; i < pwd.length; ++i) {\r\n var c = pwd.charCodeAt(i);\r\n if (char_count[c] === undefined) {\r\n char_count[c] = 1;\r\n } else {\r\n char_count[c] += 1;\r\n }\r\n\r\n var add = 2 / char_count[c];\r\n\r\n // Widerholungen sind schlecht\r\n if (last === c) {\r\n add -= repetition_malus;\r\n repetition_malus *= 2;\r\n } else {\r\n repetition_malus = 1;\r\n }\r\n\r\n // Aufeinanderfolgende Buchstaben sind schlecht(z.B. abcdefgfedcba)\r\n if (Math.abs(c - last) === 1) {\r\n add -= sequential_malus;\r\n sequential_malus *= 2;\r\n } else {\r\n sequential_malus = 1;\r\n }\r\n\r\n if (c >= 65 && c <= 90) // Uppercase\r\n {\r\n add += uppercase_bonus;\r\n uppercase_bonus /= 2;\r\n } else if (c >= 97 && c <= 122) // Lowercase\r\n {\r\n add += lowercase_bonus;\r\n lowercase_bonus /= 2;\r\n } else if (c >= 48 && c <= 57) // Ziffer\r\n {\r\n add += number_bonus;\r\n number_bonus /= 2;\r\n } else // Symbol\r\n {\r\n add += symbol_bonus;\r\n symbol_bonus /= 2;\r\n }\r\n\r\n // Das Passwort wird mit zunehmender Länge auf jeden Fall nicht schlechter\r\n if (add > 0) {\r\n strength += add;\r\n }\r\n\r\n last = c;\r\n }\r\n\r\n return strength < 100 ? strength : 100;\r\n}"],"names":["textPwdLevel1","textPwdLevel2","textPwdLevel3","textPwdLevel4","textPwdLevel5","localize","__","$password_input","$","strength","password_strength","password_strength_text","pwd","last","uppercase_bonus","lowercase_bonus","number_bonus","symbol_bonus","repetition_malus","sequential_malus","char_count","i","c","add"],"mappings":"+HAOA,IAAIA,EAAgB,0BAChBC,EAAgB,qBAChBC,EAAgB,iBAChBC,EAAgB,mBAChBC,EAAgB,wBAEpBC,EAAS,YAAY,EAAE,KAAK,SAAUC,EAAI,CACtCN,EAAgBM,EAAG,yBAAyB,EAC5CL,EAAgBK,EAAG,oBAAoB,EACvCJ,EAAgBI,EAAG,gBAAgB,EACnCH,EAAgBG,EAAG,kBAAkB,EACrCF,EAAgBE,EAAG,uBAAuB,CAC9C,CAAC,EAED,IAAIC,EAAkBC,EAAE,oBAAoB,EAE5CD,EAAgB,MAAM,UAAY,CAC9B,IAAIE,EAAWC,EAAkBH,EAAgB,IAAK,CAAA,EACtDC,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,IAAI,QAASC,EAAW,GAAG,EAC1DD,EAAE,mBAAmB,EAAE,KAAKG,EAAuBF,CAAQ,CAAC,CAChE,CAAC,EAED,SAASE,EAAuBF,EAAU,CACtC,OAAIA,EAAW,GACJT,EACAS,EAAW,GACXR,EACAQ,EAAW,GACXP,EACAO,EAAW,GACXN,EAEAC,CAEf,CAEA,SAASM,EAAkBE,EAAK,CAa5B,QAZIH,EAAW,EACXI,EAAO,KAEPC,EAAkB,EAClBC,EAAkB,EAClBC,EAAe,EACfC,EAAe,GACfC,EAAmB,EACnBC,EAAmB,EACnBC,EAAa,CAAA,EAGRC,EAAI,EAAGA,EAAIT,EAAI,OAAQ,EAAES,EAAG,CACjC,IAAIC,EAAIV,EAAI,WAAWS,CAAC,EACpBD,EAAWE,CAAC,IAAM,OAClBF,EAAWE,CAAC,EAAI,EAEhBF,EAAWE,CAAC,GAAK,EAGrB,IAAIC,EAAM,EAAIH,EAAWE,CAAC,EAGtBT,IAASS,GACTC,GAAOL,EACPA,GAAoB,GAEpBA,EAAmB,EAInB,KAAK,IAAII,EAAIT,CAAI,IAAM,GACvBU,GAAOJ,EACPA,GAAoB,GAEpBA,EAAmB,EAGnBG,GAAK,IAAMA,GAAK,IAEhBC,GAAOT,EACPA,GAAmB,GACZQ,GAAK,IAAMA,GAAK,KAEvBC,GAAOR,EACPA,GAAmB,GACZO,GAAK,IAAMA,GAAK,IAEvBC,GAAOP,EACPA,GAAgB,IAGhBO,GAAON,EACPA,GAAgB,GAIhBM,EAAM,IACNd,GAAYc,GAGhBV,EAAOS,CACV,CAED,OAAOb,EAAW,IAAMA,EAAW,GACvC"}