(function(n){"use strict";n.module("vcRecaptcha",[])})(angular),function(n){"use strict";function t(){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');}var i=n.module("vcRecaptcha");i.provider("vcRecaptchaService",function(){var r=this,i={};r.onLoadFunctionName="vcRecaptchaApiLoaded";r.setDefaults=function(t){n.copy(t,i)};r.setSiteKey=function(n){i.key=n};r.setTheme=function(n){i.theme=n};r.setStoken=function(n){i.stoken=n};r.setSize=function(n){i.size=n};r.setType=function(n){i.type=n};r.setLang=function(n){i.lang=n};r.setBadge=function(n){i.badge=n};r.setOnLoadFunctionName=function(n){r.onLoadFunctionName=n};r.$get=["$rootScope","$window","$q","$document","$interval",function(u,f,e,o,s){function b(){return!h?w:e.when(h)}function v(){if(!h)throw new Error("reCaptcha has not been loaded yet.");}var y=e.defer(),w=y.promise,l={},h,a,p,c;return f.vcRecaptchaApiLoadedCallback=f.vcRecaptchaApiLoadedCallback||[],a=function(){h=f.grecaptcha;y.resolve(h)},f.vcRecaptchaApiLoadedCallback.push(a),f[r.onLoadFunctionName]=function(){f.vcRecaptchaApiLoadedCallback.forEach(function(n){n()})},n.isDefined(f.grecaptcha)?a():f.document.querySelector('script[src^="https://www.google.com/recaptcha/api.js"]')?p=s(function(){n.isDefined(f.grecaptcha)&&(s.cancel(p),a())},25):(c=f.document.createElement("script"),c.async=!0,c.defer=!0,c.src="https://www.google.com/recaptcha/api.js?onload="+r.onLoadFunctionName+"&render=explicit",o.find("body")[0].appendChild(c)),{create:function(n,r){return r.sitekey=r.key||i.key,r.theme=r.theme||i.theme,r.stoken=r.stoken||i.stoken,r.size=r.size||i.size,r.type=r.type||i.type,r.hl=r.lang||i.lang,r.badge=r.badge||i.badge,r.sitekey&&r.sitekey.length===40||t(),b().then(function(t){var i=t.render(n,r);return l[i]=n,i})},reload:function(n){v();h.reset(n);u.$broadcast("reCaptchaReset",n)},execute:function(n){v();h.execute(n)},useLang:function(n,t){var u=l[n],i,r;if(u)if(i=u.querySelector("iframe"),t)i&&i.src&&(r=i.src,/[?&]hl=/.test(r)?r=r.replace(/([?&]hl=)\w+/,"$1"+t):r+=(r.indexOf("?")===-1?"?":"&")+"hl="+t,i.src=r);else return i&&i.src&&/[?&]hl=\w+/.test(i.src)?i.src.replace(/.+[?&]hl=(\w+)([^\w].+)?/,"$1"):null;else throw new Error("reCaptcha Widget ID not exists",n);},getResponse:function(n){return v(),h.getResponse(n)},getInstance:function(n){return l[n]},destroy:function(n){delete l[n]}}}]})}(angular),function(n){"use strict";var t=n.module("vcRecaptcha");t.directive("vcRecaptcha",["$document","$timeout","vcRecaptchaService",function(t,i,r){return{restrict:"A",require:"?^^form",scope:{response:"=?ngModel",key:"=?",stoken:"=?",theme:"=?",size:"=?",type:"=?",lang:"=?",badge:"=?",tabindex:"=?",required:"=?",onCreate:"&",onSuccess:"&",onExpire:"&"},link:function(u,f,e,o){function c(){o&&o.$setValidity("recaptcha",null);a()}function l(){i(function(){u.response="";s();u.onExpire({widgetId:u.widgetId})})}function s(){o&&o.$setValidity("recaptcha",u.required===!1?null:Boolean(u.response))}function a(){r.destroy(u.widgetId);n.element(t[0].querySelectorAll(".pls-container")).parent().remove()}u.widgetId=null;o&&n.isDefined(e.required)&&u.$watch("required",s);var h=u.$watch("key",function(t){var o=function(n){i(function(){u.response=n;s();u.onSuccess({response:n,widgetId:u.widgetId})})};r.create(f[0],{callback:o,key:t,stoken:u.stoken||e.stoken||null,theme:u.theme||e.theme||null,type:u.type||e.type||null,lang:u.lang||e.lang||null,tabindex:u.tabindex||e.tabindex||null,size:u.size||e.size||null,badge:u.badge||e.badge||null,"expired-callback":l}).then(function(t){s();u.widgetId=t;u.onCreate({widgetId:t});u.$on("$destroy",c);u.$on("reCaptchaReset",function(i,r){(n.isUndefined(r)||t===r)&&(u.response="",s())})});h()})}}}])}(angular)