!function(){return function n(t,i,r){function u(f,o){var h,c,s;if(!i[f]){if(!t[f]){if(h="function"==typeof require&&require,!o&&h)return h(f,!0);if(e)return e(f,!0);c=new Error("Cannot find module '"+f+"'");throw c.code="MODULE_NOT_FOUND",c;}s=i[f]={exports:{}};t[f][0].call(s.exports,function(n){var i=t[f][1][n];return u(i||n)},s,s.exports,n,t,i,r)}return i[f].exports}for(var e="function"==typeof require&&require,f=0;f<r.length;f++)u(r[f]);return u}}()({1:[function(n,t){(function(n){"use strict";function r(n,t,r){return r=i.extend({formControl:!0,disableAutocomplete:!0,bindToFieldModel:!0},r),t.attr("id",function(n){return"field-"+n.randomId}(n)),t.attr("name","field_"+n.id),t.attr("aria-label",n.label),t.addClass("formulate__control"),r.bindToFieldModel&&(t.attr("ng-model","ctrl.fieldModels['"+n.id+"']"),t.attr("formulate-validation",!0)),r.formControl&&t.addClass("form-control"),r.disableAutocomplete&&t.attr("autocomplete","off"),t}var i="undefined"!=typeof window?window.angular:void 0!==n?n.angular:null;t.exports.createSelectField=function(n,t){var f=i.element('<div class="formulate__select-wrap"><\/div>'),u=i.element("<select><\/select>");return u.attr("ng-options","item.value as item.label for item in fieldCtrl.configuration.items"),t.firstSelectOptionLabel&&u.append('<option value="">'+n.label+"<\/option>"),r(n,u,{disableAutocomplete:!1}),f.append(u),f};t.exports.createRadioListField=function(n){var r=i.element("<div><\/div>"),e=i.element('<label class="formulate__field-label" ng-bind="fieldCtrl.label"><\/label>'),f=i.element('<div class="formulate__field__item radio" ng-repeat="item in fieldCtrl.configuration.items" ng-class="\'formulate__field__item--\' + fieldCtrl.configuration.orientation"><\/div>'),u=i.element("<label><\/label>"),t=i.element('<input type="radio" ng-value="item.value" />'),o=i.element('<span ng-bind="item.label"><\/span>');return u.append(t),u.append(o),f.append(u),t.attr("name","field_"+n.id),t.attr("ng-model","ctrl.fieldModels['"+n.id+"']"),t.attr("formulate-validation",!0),r.append(e),r.append(f),r};t.exports.createExtendedRadioListField=function(n){var r=i.element("<div><\/div>"),e=i.element('<label class="formulate__field-label" ng-bind="fieldCtrl.label"><\/label>'),u=i.element('<div class="formulate__field__item radio" ng-repeat="item in fieldCtrl.configuration.items"><\/div>'),f=i.element("<label><\/label>"),t=i.element('<input type="radio" ng-value="item.primary" />'),o=i.element('<span ng-bind="item.primary"><\/span>'),s=i.element('<div class="formulate__field__desc" ng-bind="item.secondary"><\/div>');return f.append(t),f.append(o),u.append(f),u.append(s),t.attr("name","field_"+n.id),t.attr("ng-model","ctrl.fieldModels['"+n.id+"']"),t.attr("formulate-validation",!0),r.append(e),r.append(u),r};t.exports.createCheckboxListField=function(n){var r=i.element("<div><\/div>"),s=i.element('<label class="formulate__field-label" ng-bind="fieldCtrl.label"><\/label>'),o=i.element('<div class="formulate__field__item checkbox" ng-repeat="item in fieldCtrl.configuration.items"><\/div>'),f=i.element("<label><\/label>"),e=i.element('<input type="checkbox" checklist-value="item.value"/>'),h=i.element('<span ng-bind="item.label"><\/span>'),u,t;if(f.append(e),f.append(h),o.append(f),e.attr("name","field_"+n.id+"_item"),e.attr("checklist-model","ctrl.fieldModels['"+n.id+"']"),i.isArray(n.validations))for(u=0;u<n.validations.length;u++)if("ValidationMandatory"===n.validations[u].validationType){t=i.element('<input type="hidden" />');t.attr("name","field_"+n.id);t.attr("ng-model","ctrl.fieldModels['"+n.id+"']");t.attr("formulate-validation",!0);r.append(t);break}return r.append(s),r.append(o),r};t.exports.createUploadField=function(){return"<formulate-file-upload><\/formulate-file-upload>"};t.exports.createTextField=function(n,t){var u=i.element('<input type="text" />');return t.placeholderLabel&&u.attr("placeholder",n.label),r(n,u)};t.exports.createTextAreaField=function(n,t){var u=i.element("<textarea><\/textarea>");return t.placeholderLabel&&u.attr("placeholder",n.label),r(n,u)};t.exports.createHeaderField=function(){return i.element('<h2 class="formulate__header" ng-bind="fieldCtrl.configuration.text"><\/h2>')};t.exports.createRichTextField=function(n){return n.configuration.text};t.exports.createButtonField=function(n){var t=i.element('<button ng-bind="fieldCtrl.label"><\/button>'),r=n.configuration.buttonKind,u=r?"formulate__btn--"+r.toLowerCase():"formulate__btn--default";return"Submit"===r||null===r?(t.attr("type","submit"),t.addClass("formulate__btn formulate__btn--submit btn btn-primary")):(t.attr("type","button"),t.attr("ng-click","ctrl.buttonClicked(fieldCtrl.configuration.buttonKind)"),t.addClass("formulate__btn btn btn-default "+u)),t};t.exports.createCheckboxField=function(n){var t=i.element("<div><\/div>"),u=i.element('<label class="formulate__checkbox-label"><\/label>'),e=i.element('<input type="checkbox" value="1" />'),f=i.element("<span><\/span>");return f.text(n.label),u.append(r(n,e,{formControl:!1,disableAutocomplete:!1})),u.append(f),t.addClass("formulate__checkbox"),t.append(u),t};t.exports.createNullField=function(){return null};t.exports.createDateField=function(n,t){var u=i.element('<input type="date" />');return t.placeholderLabel&&u.attr("placeholder",n.label),r(n,u,{disableAutocomplete:!1})};t.exports.createRecaptchaField=function(n){return r(n,i.element('<div vc-recaptcha key="fieldCtrl.configuration.key"><\/div>'),{formControl:!1,disableAutocomplete:!1})}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(){(function(n){"use strict";function i(n,i){function r(n,i,r){if(t.isArray(n))for(var u=n.length;u--;)if(r(n[u],i))return!0;return!1}function u(n,i,u){return r(n=t.isArray(n)?n:[],i,u)||n.push(i),n.splice(0)}function f(n,i,r){if(t.isArray(n))for(var u=n.length;u--;)if(r(n[u],i)){n.splice(u,1);break}return n.splice(0)}function e(e,o,s){function l(){return s.checklistValue?n(s.checklistValue)(e.$parent):s.value}function b(n,i){var r=h(e.$parent);t.isFunction(h.assign)&&(!0===i?h.assign(e.$parent,u(r,n,c)):h.assign(e.$parent,f(r,n,c)))}function k(n){v&&!1===v(e)?b(l(),y(e)):y.assign(e,r(n,l(),c))}var a=s.checklistModel,p;s.$set("checklistModel",null);i(o)(e);s.$set("checklistModel",a);var h=n(a),w=n(s.checklistChange),v=n(s.checklistBeforeChange),y=n(s.ngModel),c=t.equals;s.hasOwnProperty("checklistComparator")&&("."==s.checklistComparator[0]?(p=s.checklistComparator.substring(1),c=function(n,t){return n[p]===t[p]}):c=n(s.checklistComparator)(e.$parent));var d=e.$watch(s.ngModel,function(n,t){n!==t&&(v&&!1===v(e)?y.assign(e,r(h(e.$parent),l(),c)):(b(l(),n),w&&w(e)))}),g=e.$watch(l,function(n,i){if(n!=i&&t.isDefined(i)&&!0===e[s.ngModel]){var r=h(e.$parent);h.assign(e.$parent,f(r,i,c));h.assign(e.$parent,u(r,n,c))}},!0),nt=e.$on("$destroy",function(){d();g();nt()});t.isFunction(e.$parent.$watchCollection)?e.$parent.$watchCollection(a,k):e.$parent.$watch(a,k,!0)}return{restrict:"A",priority:1e3,terminal:!0,scope:!0,compile:function(n,t){if(!t.checklistValue&&!t.value)throw"You should provide `value` or `checklist-value`.";return t.ngModel||t.$set("ngModel","checked"),e}}}i.$inject=["$parse","$compile"];var t="undefined"!=typeof window?window.angular:void 0!==n?n.angular:null;t.module("formulate").directive("checklistModel",i)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(){(function(n){"use strict";function t(n){i.extend(this,n)}function u(n,t,i){return{restrict:"E",replace:!0,template:"<div ng-class=\"['formulate__field--' + fieldCtrl.fieldType, fieldCtrl.getFieldClass(fieldCtrl.alias)]\"><\/div>",require:["^^formulateResponsiveForm","^^form"],link:function(r,u,f,e){var s=e[0],l=e[1],h=s.getFieldById(f.fieldId),o=i.createField(h),c;null!==o&&(c={$scope:r,$element:o,field:h},r.ctrl=s,r.formCtrl=l,t("FormulateFieldController as fieldCtrl",c),u.append(o),n(o)(r))},scope:{}}}t.$inject=["field"];u.$inject=["$compile","$controller","FormulateFieldTypes"];var i="undefined"!=typeof window?window.angular:void 0!==n?n.angular:null,r=i.module("formulate"),f=/[A-Z]+/g,e=/([^a-zA-Z0-9])+/g;r.controller("FormulateFieldController",t);t.prototype.getFieldClass=function(n){var t,i;return i="-","formulate__field-alias--"+(n=((t=n)?(i=i||"-",(t=(t=t.replace(f,function(n){return i+n}).toLowerCase()).replace(e,function(){return i})).substring(0,1)===i&&(t=t.substring(1)),t.substring(t.length-1,t.length)===i&&(t=t.substring(0,t.length-1)),t):t)||"unspecified_alias")};r.directive("formulateField",u)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(){(function(n){"use strict";("undefined"!=typeof window?window.angular:void 0!==n?n.angular:null).module("formulate").directive("formulateFileChange",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){function u(){r.$setViewValue(t[0].files[0])}t.on("change",u);n.$on("destroy",function(){t.off("change",u)})}}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],5:[function(){(function(n){"use strict";function t(n){this.uploadResetList=[{}];this.clearSelection=function(){this.uploadResetList=[{}];n.ctrl&&n.ctrl.fieldModels&&n.fieldCtrl&&(n.ctrl.fieldModels[n.fieldCtrl.id]=null)}}t.$inject=["$scope"];("undefined"!=typeof window?window.angular:void 0!==n?n.angular:null).module("formulate").directive("formulateFileUpload",function(){return{restrict:"E",replace:!0,controller:t,controllerAs:"uploadCtrl",bindToController:!0,template:'<div class="formulate__file-upload"><div ng-repeat="uploadItem in uploadCtrl.uploadResetList"><!-- Can be styled with this approach: https://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3 --><!-- TLDR: Hide the file input, and make the label look like a button. --><label class="formulate__file-upload-button"><input name="field_{{fieldCtrl.id}}" class="formulate__file-upload-input" type="file" formulate-file-change ng-model="ctrl.fieldModels[fieldCtrl.id]" formulate-validation /><span class="formulate__file-upload-button-text" ng-bind="fieldCtrl.label"><\/span><\/label><span class="formulate__file-upload-filename" ng-bind="ctrl.fieldModels[fieldCtrl.id].name"><\/span><a href class="formulate__file-upload-clear" ng-if="ctrl.fieldModels[fieldCtrl.id].name" ng-click="uploadCtrl.clearSelection()"><span class="formulate__file-upload-clear--inner">Clear Selection<\/span><\/a><\/div><\/div>'}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],6:[function(){(function(n){"use strict";function u(n,i,r){function u(n){var t=i.defer();return n.data&&!0===n.data.Success?t.resolve(n):t.reject(n.message),t.promise}this.post=function(i,f){(function(i){return n({method:"POST",url:i.url,data:i.postData,headers:{"Content-Type":void 0},transformRequest:function(n){var i=new r.FormData;return t.forEach(n,function(n,r){t.isArray(n)?n.forEach(function(n){i.append(r,n)}):void 0!==n&&null!==n&&i.append(r,n)}),i}})})(i).then(u).then(function(n){f.$emit("Formulate.formSubmit.OK",{fields:i.postData,name:i.name,response:n.data})},function(n){f.$emit("Formulate.formSubmit.Failed",{fields:i.postData,name:i.name,message:n})})}}function o(n,i){function f(n){return n()}var u={},r={};return t.isArray(n)&&n.forEach(function(n){u[n.fieldId]=n;n.fields.forEach(function(t){var f;r.hasOwnProperty(t)||(r[t]=[]);r[t].push((f=n.fieldId,function(){return u[f].show===i[f]}))})}),function(n){return!r.hasOwnProperty(n)||r[n].every(f)}}function i(n,t,i,r,u){function c(n,i){n.targetScope!==t||n.defaultPrevented||u.post(i,f.injected.$scope)}var f=this,s,h;this.injected={$rootScope:n,$scope:t,$element:i,$window:r,FormulateSubmitService:u};this.generatedName=e();this.fieldMap={};this.formData.fields.forEach(function(n){f.fieldMap[n.id]=n});this.fieldModels={};this.formData.fields.forEach(function(n){var t=n.initialValue;void 0!==n.initialValue&&null!==n.initialValue&&(f.fieldModels[n.id]=t)});this.showField=o(this.formData.conditionalControls,this.fieldModels);s=null;h=r.setTimeout(function(){s=n.$on("Formulate.submit",c)},40);t.$on("$destroy",function(){s&&s();r.clearTimeout(h);f.injected=null;f.fieldMap=null;f.formData=null;f.fieldModels=null;f.showField=null})}var t,r,f,e;u.$inject=["$http","$q","$window"];i.$inject=["$rootScope","$scope","$element","$window","FormulateSubmitService"];t="undefined"!=typeof window?window.angular:void 0!==n?n.angular:null;r=t.module("formulate");r.service("FormulateSubmitService",u);e=(f=0,function(){return"form"+(f+=1)});i.prototype.getFieldById=function(n){return this.fieldMap[n]};i.prototype.submit=function(){var n,i=this.injected.$element.find("form"),r;i.controller("form").$valid?(r={name:this.formData.name,url:this.formData.url,postData:t.extend({},this.formData.payload,this.fieldModels)},this.injected.$scope.$emit("Formulate.submit",r)):(n=i.find(":input.ng-invalid")).length>0&&n[0].focus()};i.prototype.buttonClicked=function(n){null!==n&&this.injected.$scope.$emit("Formulate.buttonClicked",n)};r.directive("formulateResponsiveForm",function(){return{restrict:"E",replace:!0,template:'<div class="formulate-container"><form data-ng-submit="ctrl.submit(ctrl.generatedName)" class="form" name="{{ctrl.generatedName}}"><formulate-rows><\/formulate-rows><\/form><\/div>',controller:i,controllerAs:"ctrl",bindToController:!0,scope:{formData:"="}}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],7:[function(){(function(n){"use strict";function t(){return this}var i=("undefined"!=typeof window?window.angular:void 0!==n?n.angular:null).module("formulate");t.prototype.getColClass=function(n){return"col-md-"+(n.columns||"12")};i.directive("formulateRows",function(){return{restrict:"E",replace:!0,template:'<div><div class="row ib top" ng-repeat="row in ctrl.formData.rows"><div class="col-xs-12" ng-class="layoutCtrl.getColClass(cell)" ng-repeat="cell in row.cells"><div ng-repeat="field in cell.fields track by field.id"><formulate-field ng-if="ctrl.showField(field.id)" class="formulate__field" field-id="{{field.id}}"><\/formulate-field><\/div><\/div><\/div><\/div>',controller:t,controllerAs:"layoutCtrl",scope:!0}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(){(function(n){"use strict";function r(n){switch(n.validationType){case"regex":return function(n){var t=new RegExp(n.configuration.pattern);return function(n){return t.test(n||"")}}(n);default:return function(n){return t.isArray(n)?n.length>0:!!n}}}var t="undefined"!=typeof window?window.angular:void 0!==n?n.angular:null,i=t.module("formulate");i.factory("formulateValidationFactory",function(){return{getInstance:r}});i.directive("formulateValidation",function(){return{restrict:"A",require:["ngModel","^^form"],link:function(n,i,u,f){var e=f[0],s=f[1],o=n.fieldCtrl;t.isArray(o.validations)&&o.validations.forEach(function(n){e.$validators[n.id]=r(n)});s.$addControl(e)}}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],9:[function(){(function(n){"use strict";function t(n){var t=JSON.parse(n.source);r.assign(this,t)}t.$inject=["$attrs"];var i="undefined"!=typeof window?window.angular:void 0!==n?n.angular:null,r="undefined"!=typeof window?window._:void 0!==n?n._:null;i.module("formulate").directive("formulateJsonSource",function(){return{restrict:"E",replace:!0,template:"<div><\/div>",controller:t,controllerAs:"ctrl",bindToController:!0,transclude:!0,link:function(n,t,i,r,u){u(n,t.replaceWith.bind(t))},scope:{}}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],10:[function(n){(function(t){"use strict";var r="undefined"!=typeof window?window.angular:void 0!==t?t.angular:null,i=(n("angular-recaptcha"),n("./builtin-types")),u=r.module("formulate",["ngMessages","vcRecaptcha"]);n("./services/field-type.js");n("./directives/form/checklist-model.js");n("./directives/form/field.js");n("./directives/form/fileChange.js");n("./directives/form/fileUpload.js");n("./directives/form/responsiveForm.js");n("./directives/form/rows.js");n("./directives/form/validation.js");n("./directives/json-source/json-source.js");u.config(["FormulateFieldTypesProvider",function(n){n.register("select",i.createSelectField).register("radio-list",i.createRadioListField,{optionalLabel:!1}).register("extended-radio-list",i.createExtendedRadioListField,{optionalLabel:!1}).register("checkbox-list",i.createCheckboxListField,{optionalLabel:!1}).register("button",i.createButtonField,{optionalLabel:!1}).register("textarea",i.createTextAreaField).register("checkbox",i.createCheckboxField,{optionalLabel:!1}).register("upload",i.createUploadField,{optionalLabel:!1}).register("header",i.createHeaderField,{optionalLabel:!1}).register("rich-text",i.createRichTextField,{optionalLabel:!1}).register("hidden",i.createNullField,{optionalLabel:!1}).register("date",i.createDateField).register("recaptcha",i.createRecaptchaField,{optionallabel:!1}).setDefault(i.createTextField)}])}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./builtin-types":1,"./directives/form/checklist-model.js":2,"./directives/form/field.js":3,"./directives/form/fileChange.js":4,"./directives/form/fileUpload.js":5,"./directives/form/responsiveForm.js":6,"./directives/form/rows.js":7,"./directives/form/validation.js":8,"./directives/json-source/json-source.js":9,"./services/field-type.js":11,"angular-recaptcha":12}],11:[function(){(function(n){"use strict";function i(n){var r=t.element(document.createTextNode(n.label)),i=t.element('<label class="formulate__field-label"><\/label>');return i.append(r),i.attr("for",function(n){return"field-"+n.randomId}(n)),i}var t="undefined"!=typeof window?window.angular:void 0!==n?n.angular:null;t.module("formulate").provider("FormulateFieldTypes",function(){function e(n){return function(){return t.element(n)}}var n={},u={},r={prependLabel:!0,placeholderLabel:!0,firstSelectOptionLabel:!0},f={optionalLabel:!0};this.register=function(i,r,o){var s=t.extend({},f,o);return n[i]=t.isString(r)?e(r):r,u[i]=s.optionalLabel,this};this.setDefault=function(i,r){var o=t.extend({},f,r);return n.defaultField=t.isString(i)?e(i):i,u.defaultField=o.optionalLabel,this};this.setOptions=function(n){return t.extend(r,n),this};this.$get=function(){return{createField:function(f){var e=t.element("<div><\/div>");return e.addClass("formulate__group form-group"),n.hasOwnProperty(f.fieldType)?r.prependLabel&&u[f.fieldType]&&e.append(i(f)):r.prependLabel&&u.defaultField&&e.append(i(f)),n.hasOwnProperty(f.fieldType)?e.append(n[f.fieldType](f,r)):e.append(n.defaultField(f,r)),e.append(function(n){var i=null,r="formCtrl.field_"+n.id;return t.isArray(n.validations)&&n.validations.length>0&&((i=t.element("<div><\/div>")).attr("ng-messages",r+".$error"),i.attr("ng-show","formCtrl.$submitted || "+r+".$touched"),i.attr("role","alert"),i.attr("aria-atomic","true"),n.validations.forEach(function(n){var r=t.element("<div><\/div>");r.attr("ng-message",n.id);r.text(n.configuration.message);r.addClass("formulate__error-msg");i.append(r)})),i}(f)),e}}}})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],12:[function(n,t){n("./release/angular-recaptcha.js");t.exports="vcRecaptcha"},{"./release/angular-recaptcha.js":13}],13:[function(){!function(n){"use strict";n.module("vcRecaptcha",[])}(angular),function(n){"use strict";n.module("vcRecaptcha").provider("vcRecaptchaService",function(){var i=this,t={};i.onLoadFunctionName="vcRecaptchaApiLoaded";i.setDefaults=function(i){n.copy(i,t)};i.setSiteKey=function(n){t.key=n};i.setTheme=function(n){t.theme=n};i.setStoken=function(n){t.stoken=n};i.setSize=function(n){t.size=n};i.setType=function(n){t.type=n};i.setLang=function(n){t.lang=n};i.setBadge=function(n){t.badge=n};i.setOnLoadFunctionName=function(n){i.onLoadFunctionName=n};i.$get=["$rootScope","$window","$q","$document","$interval",function(r,u,f,e,o){function a(){if(!s)throw new Error("reCaptcha has not been loaded yet.");}var s,v=f.defer(),p=v.promise,c={},l,y,h;return u.vcRecaptchaApiLoadedCallback=u.vcRecaptchaApiLoadedCallback||[],l=function(){s=u.grecaptcha;v.resolve(s)},(u.vcRecaptchaApiLoadedCallback.push(l),u[i.onLoadFunctionName]=function(){u.vcRecaptchaApiLoadedCallback.forEach(function(n){n()})},n.isDefined(u.grecaptcha))?l():u.document.querySelector('script[src^="https://www.google.com/recaptcha/api.js"]')?y=o(function(){n.isDefined(u.grecaptcha)&&(o.cancel(y),l())},25):(h=u.document.createElement("script"),h.async=!0,h.defer=!0,h.src="https://www.google.com/recaptcha/api.js?onload="+i.onLoadFunctionName+"&render=explicit",e.find("body")[0].appendChild(h)),{create:function(n,i){return i.sitekey=i.key||t.key,i.theme=i.theme||t.theme,i.stoken=i.stoken||t.stoken,i.size=i.size||t.size,i.type=i.type||t.type,i.hl=i.lang||t.lang,i.badge=i.badge||t.badge,i.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');}(),(s?f.when(s):p).then(function(t){var r=t.render(n,i);return c[r]=n,r})},reload:function(n){a();s.reset(n);r.$broadcast("reCaptchaReset",n)},execute:function(n){a();s.execute(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+=(-1===r.indexOf("?")?"?":"&")+"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:"=?",badge:"=?",tabindex:"=?",required:"=?",onCreate:"&",onSuccess:"&",onExpire:"&"},link:function(u,f,e,o){function c(){o&&o.$setValidity("recaptcha",null);r.destroy(u.widgetId);n.element(t[0].querySelectorAll(".pls-container")).parent().remove()}function l(){i(function(){u.response="";s();u.onExpire({widgetId:u.widgetId})})}function s(){o&&o.$setValidity("recaptcha",!1===u.required?null:Boolean(u.response))}u.widgetId=null;o&&n.isDefined(e.required)&&u.$watch("required",s);var h=u.$watch("key",function(t){r.create(f[0],{callback:function(n){i(function(){u.response=n;s();u.onSuccess({response:n,widgetId:u.widgetId})})},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)},{}]},{},[10])