PageSourceSearch

https://www.visitmorningtonpeninsula.org/DesktopModules/DnnSharp/C…/angular-recaptcha.min.js?cdv=365

js visitmorningtonpeninsula.org collected 2026-10-02 07:07:06 UTC 4,674 bytes, 6 lines download raw bytes

1 /**
2 * @license angular-recaptcha build:2018-07-30
3 * https://github.com/vividcortex/angular-recaptcha
4 * Copyright (c) 2018 VividCortex
5**/
6!function (g) { "use strict"; var e = g.module("vcRecaptcha", []); e.factory("vcRecaptchaService", ["$rootScope", "$window", "$q", "$document", "$interval", function (t, e, a, n, r) { var c, i = a.defer(), o = i.promise, d = {}, l = "vcRecaptchaApiLoaded"; e.vcRecaptchaApiLoadedCallback = e.vcRecaptchaApiLoadedCallback || []; function s() { c = e.grecaptcha, i.resolve(c) } var u, p; function f() { if (!c) throw new Error("reCaptcha has not been loaded yet.") } function h() { return g.isFunction((e.grecaptcha || {}).render) } return e.vcRecaptchaApiLoadedCallback.push(s), e[l] = function () { e.vcRecaptchaApiLoadedCallback.forEach(function (e) { e() }) }, h() ? s() : e.document.querySelector('script[src^="https://www.google.com/recaptcha/api.js"]') ? u = r(function () { h() && (r.cancel(u), s()) }, 25) : ((p = e.document.createElement("script")).async = !0, p.defer = !0, p.src = "https://www.google.com/recaptcha/api.js?onload=" + l + "&render=explicit", n.find("body")[0].appendChild(p)), { create: function (n, r) { var e = {}; return r.sitekey = r.key || e.key, r.theme = r.theme || e.theme, r.stoken = r.stoken || e.stoken, r.size = r.size || e.size, r.type = r.type || e.type, r.hl = r.lang || e.lang, r.badge = r.badge || e.badge, r.sitekey || function () { throw new Error('You need to set the "key" attribute to your public reCaptcha key. If you don\'t have a key, please get one from https://www.google.com/recaptcha/admin/create') }(), (c ? a.when(c) : o).then(function (e) { var t = e.render(n, r); return (d[t] = n).getElementsByTagName("iframe")[0].title = "Recaptcha Widget", t }) }, reload: function (e) { f(), c.reset(e), t.$broadcast("reCaptchaReset", e) }, execute: function (e) { f(), c.execute(e) }, useLang: function (e, t) { var n = d[e]; if (!n) throw new Error("reCaptcha Widget ID not exists", e); var r, a = n.querySelector("iframe"); if (!t) return a && a.src && /[?&]hl=\w+/.test(a.src) ? a.src.replace(/.+[?&]hl=(\w+)([^\w].+)?/, "$1") : null; a && a.src && (r = a.src, /[?&]hl=/.test(r) ? r = r.replace(/([?&]hl=)\w+/, "$1" + t) : r += (-1 === r.indexOf("?") ? "?" : "&") + "hl=" + t, a.src = r) }, getResponse: function (e) { return f(), c.getResponse(e) }, getInstance: function (e) { return d[e] }, destroy: function (e) { delete d[e] } } }]), e.directive("vcRecaptcha", ["$document", "$timeout", "vcRecaptchaService", function (l, s, u) { return { restrict: "A", scope: { response: "=?ngModel", key: "=?", stoken: "=?", theme: "=?", size: "=?", type: "=?", lang: "=?", badge: "=?", tabindex: "=?", required: "=?", onCreate: "&", onSuccess: "&", onExpire: "&", onError: "&", field: "=", registerControl: "&", updateField: "&" }, link: function (r, t, n, e) { r.widgetId = null, e && g.isDefined(n.required) && r.$watch("required", d), r.fieldParameters = r.field.Parameters, r.fieldData = r.$parent.form.fields[r.field.TitleCompacted], r.fieldData.invisibleRecaptcha && (r.size = "invisible"), r.registerControl({ control: { field: r.field, onSubmit: function (e, t) { e && e() }, getValue: function () { return r.successToken } } }); var a = r.$watch("key", function (e) { u.create(t[0], { callback: function (e) { s(function () { r.response = e, d(), r.onSuccess({ response: e, widgetId: r.widgetId }), r.$parent.form.fields[r.field.TitleCompacted].value = r.successToken = r.response }) }, key: e, stoken: r.stoken || n.stoken || null, theme: r.theme || n.theme || null, type: r.type || n.type || null, lang: r.lang || n.lang || null, tabindex: r.tabindex || n.tabindex || null, size: r.size || n.size || null, badge: r.badge || n.badge || null, "expired-callback": i, "error-callback": n.onError ? o : void 0 }).then(function (n) { d(), r.$parent.widgetId = r.widgetId = n, r.onCreate({ widgetId: n }), r.$on("$destroy", c), r.$on("reCaptchaReset", function (e, t) { !g.isUndefined(t) && n !== t || (r.response = "", d()) }), r.fieldData.invisibleRecaptcha && (u.reload(r.widgetId), s(function () { u.reload(r.widgetId), u.execute(r.widgetId) }, 10)) }), a() }); function c() { e && e.$setValidity("recaptcha", null), u.destroy(r.widgetId), g.element(l[0].querySelectorAll(".pls-container")).parent().remove() } function i() { s(function () { r.response = "", d(), r.onExpire({ widgetId: r.widgetId }) }) } function o() { var e = arguments; s(function () { r.response = "", d(), r.onError({ widgetId: r.widgetId, arguments: e }) }) } function d() { e && e.$setValidity("recaptcha", !1 === r.required ? null : Boolean(r.response)) } } } }
6]) }(window.dnnsfAngular15 || window.angular);

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.