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