PageSourceSearch

https://www.roundhillfishkill.com/js/zxcvbn/angular-zxcvbn.min.js

js roundhillfishkill.com collected 2026-09-26 05:00:15 UTC 2,381 bytes, 1 lines download raw bytes

1!function () { "use strict"; angular.module("zxcvbn", []).directive("zxcvbn", function () { return { scope: { password: "=", extras: "=?", data: "=?" }, restrict: "E", template: "{{ display.crack_times_display }}", link: function (r, a, t) { r.$watch("password", function (a) { angular.isString(a) && (r.extras ? r.timeToCrack = zxcvbn(a, r.extras) : r.timeToCrack = zxcvbn(a), "data" in t && r.timeToCrack && (r.data = angular.copy(r.timeToCrack)), r.display = angular.copy(r.timeToCrack)) }) } } }) }(), function () { "use strict"; angular.module("zxcvbn").directive("zxcvbn", function () { return { require: "ngModel", restrict: "A", scope: { zxResult: "=?zxcvbn", zxExtras: "=?", zxMinScore: "@?" }, link: function (r, a, t, e) { r.runZxcvbn = function () { angular.isUndefined(r.zxPassword) && (r.zxPassword = ""), angular.isDefined(r.zxExtrasArray) && r.zxExtrasArray.length > 0 ? r.zxResult = zxcvbn(r.zxPassword, r.zxExtrasArray) : r.zxResult = zxcvbn(r.zxPassword) }, r.isForm = function (r) { try { return "FormController" === Object.getPrototypeOf(r).constructor.name } catch (a) { return !1 } }, r.setZxExtrasWatcher = function () { var a = r.zxExtras; angular.isFunction(r.zxExtrasWatcher) && r.zxExtrasWatcher(), r.zxExtrasWatcher = void 0, angular.isDefined(a) && (angular.isArray(a) ? r.zxArrayWatcher() : r.isForm(a) && r.zxFormWatcher()) }, r.zxFormWatcher = function () { var a = r.zxExtras; console.assert(r.isForm(a), "zx-extras element is some how not a form."), r.zxExtrasWatcher = r.$watch(function () { var r = [], t = new RegExp("^(?!\\$|__)"); for (var e in a) t.test(e) && a[e].hasOwnProperty("$viewValue") && -1 === e.toLowerCase().indexOf("password") && r.push(a[e].$viewValue); return r }, function (a) { r.zxExtrasArray = []; for (var t = 0; t < a.length; t++)angular.isString(a[t]) && r.zxExtrasArray.push(a[t]); e.$validate() }, !0) }, r.zxArrayWatcher = function () { r.zxExtrasWatcher = r.$watch("zxExtras", function (a) { r.zxExtrasArray = a, e.$validate() }, !0) }, r.setZxExtrasWatcher(), e.$validators.passwordStrength = function (a) { var t = parseInt(r.zxMinScore); return t = isNaN(t) || 0 > t || t > 4 ? 0 : t, r.zxPassword = a, r.runZxcvbn(), t <= r.zxResult.score }, t.$observe("zxExtras", function () { r.setZxExtrasWatcher(), e.$validate() }), t.$observe("zxMinScore", function (a) { r.zxMinScore = a, e.$validate() }) } } }) }();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.