{"version":3,"sources":["reCaptcha.js"],"names":["initRecaptchaElements","$","onVerify","$element","response","length","find","hide","each","index","element","$widgetContainer","siteKey","data","widgetId","grecaptcha","render","get","sitekey","callback","toString","$$epiforms","epi","EPiServer","Forms","Utils","originalGetCustomElementValue","Extension","getCustomElementValue","bindCustomElementValue","navigator","language","userLanguage","extend","Validators","Fidelity.Web.Business.Validation.GoogleRecaptchaValidator","fieldName","fieldValue","validatorMetaData","isValid","message","model","hasClass","undefined","getResponse","apply","this","resetRecaptchaElements","target","reCaptchaElements","reset","on","event"],"mappings":"AA4EA,SAASA,yBACP,SAAWC,GAGT,SAASC,EAASC,GAChB,OACS,SAAUC,GACVA,GAA+B,GAAnBA,EAASC,QAI1BF,EAASG,KAAK,mCAAmCC,QAKvDN,EAAE,gCAAgCO,KAAK,SAAUC,EAAOC,GACtD,IAAIP,EAAWF,EAAES,GACfC,EAAmBV,EAAE,eAAgBE,GACrCS,EAAUT,EAASU,KAAK,oBAC1B,GAA+B,GAA3BF,EAAiBN,QAAeO,EAAS,CAC3C,IAAIE,EAAWC,WAAWC,OAAOL,EAAiBM,IAAI,GAAI,CAAEC,QAASN,EAASO,SAAUjB,EAASC,KACjGA,EAASU,KAAK,8BAA+BC,EAASM,eArB5D,CAyBGC,YAAcpB,IAtGnB,SAAWA,GACOqB,IAAIC,UAAUC,MAAMC,MAApC,IACEC,EAAgCJ,IAAIC,UAAUC,MAAMG,UAAUC,sBAC7BN,IAAIC,UAAUC,MAAMG,UAAUE,uBACpDC,UAAUC,UAAYD,UAAUE,aAI7C/B,EAAEgC,QAAO,EAAMX,IAAIC,UAAUC,MAAO,CAGlCU,WAAY,CACVC,4DAA6D,SAAUC,EAAWC,EAAYC,GAG5F,OAAID,EACK,CAAEE,SAAS,GAGb,CAAEA,SAAS,EAAOC,QAASF,EAAkBG,MAAMD,WAG9Db,UAAW,CAETC,sBAAuB,SAAUzB,GAI/B,GAAIA,EAASuC,SAAS,iBAAkB,CAEtC,IAAI5B,EAAWX,EAASU,KAAK,+BAC7B,OAAgB8B,MAAZ7B,GAAyBC,WACpBA,WAAW6B,YAAY9B,GAEvB,KAKX,OAAOY,EAA8BmB,MAAMC,KAAM,CAAC3C,QAvC1D,CA4CGkB,YAAcpB,GAGjB,SAAWA,GACOqB,IAAIC,UAAUC,MAAMC,MAepC,SAASsB,EAAuBC,GAE9B,IAAIC,EAAoBhD,EAAE,iBAAkB+C,GAC5C/C,EAAEO,KAAKyC,EAAmB,SAAUxC,EAAOC,GACzC,IAAII,EAAWb,EAAES,GAASG,KAAK,+BACf8B,MAAZ7B,GAAyBC,YAC3BA,WAAWmC,MAAMpC,KApBvBb,EAAE,mBAAmBkD,GAAG,qCAAsC,SAAUC,GACtEL,EAAuBK,EAAMJ,UAG/B/C,EAAE,mBAAmBkD,GAAG,sBAAuB,SAAUC,GAClC,GAAjBA,EAAMb,SAIVQ,EAAuBK,EAAMJ,UAXjC,CA2BG3B,YAAcpB","sourcesContent":["(function ($) {\r\n var _utilsSvc = epi.EPiServer.Forms.Utils,\r\n originalGetCustomElementValue = epi.EPiServer.Forms.Extension.getCustomElementValue,\r\n originalBindCustomElementValue = epi.EPiServer.Forms.Extension.bindCustomElementValue,\r\n language = navigator.language || navigator.userLanguage; // on iOS naviagtor.language is in lower case (ex: en-us);\r\n\r\n\r\n // extend the EpiForm JavaScript API in ViewMode\r\n $.extend(true, epi.EPiServer.Forms, {\r\n /// extend the Validator to validate Visitor's value in Clientside.\r\n /// Serverside's Fullname of the Validator instance is used as object key (Case-sensitve) to lookup the Clientside validate function. \r\n Validators: {\r\n \"Fidelity.Web.Business.Validation.GoogleRecaptchaValidator\": function (fieldName, fieldValue, validatorMetaData) {\r\n\r\n // validate recaptcha element\r\n if (fieldValue) {\r\n return { isValid: true };\r\n }\r\n\r\n return { isValid: false, message: validatorMetaData.model.message };\r\n }\r\n },\r\n Extension: {\r\n // OVERRIDE, process to get value from datetime picker element\r\n getCustomElementValue: function ($element) {\r\n\r\n // for datetime picker we always return result in format \"2015-12-25 10:30 AM\",\r\n // and depend on picker type (date/time/datetime) we will parse its value later.\r\n if ($element.hasClass(\"FormRecaptcha\")) {\r\n // for recaptcha element\r\n var widgetId = $element.data(\"epiforms-recaptcha-widgetid\");\r\n if (widgetId != undefined && grecaptcha) {\r\n return grecaptcha.getResponse(widgetId);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // if current element is not our job, let others process\r\n return originalGetCustomElementValue.apply(this, [$element]);\r\n }\r\n }\r\n });\r\n\r\n})($$epiforms || $);\r\n\r\n\r\n(function ($) {\r\n var _utilsSvc = epi.EPiServer.Forms.Utils;\r\n $(\".EPiServerForms\").on(\"formsReset formsNavigationPrevStep\", function (event) {\r\n resetRecaptchaElements(event.target);\r\n });\r\n\r\n $(\".EPiServerForms\").on(\"formsStepValidating\", function (event) {\r\n if (event.isValid == true) {\r\n return;\r\n }\r\n // reset reCAPTCHA element if validation failed\r\n resetRecaptchaElements(event.target);\r\n });\r\n\r\n\r\n // reset reCAPTCH elements in target form\r\n function resetRecaptchaElements(target) {\r\n\r\n var reCaptchaElements = $(\".FormRecaptcha\", target);\r\n $.each(reCaptchaElements, function (index, element) {\r\n var widgetId = $(element).data(\"epiforms-recaptcha-widgetid\");\r\n if (widgetId != undefined && grecaptcha) {\r\n grecaptcha.reset(widgetId);\r\n }\r\n });\r\n };\r\n\r\n})($$epiforms || $);\r\n\r\nfunction initRecaptchaElements() {\r\n (function ($) {\r\n\r\n //This is the callback function executed after Google authenticates recaptcha values.\r\n function onVerify($element) {\r\n return function () {\r\n return function (response) {\r\n if (!response || response.length == 0) {\r\n return;\r\n };\r\n\r\n $element.find(\".Form__Element__ValidationError\").hide();\r\n }\r\n }($element);\r\n };\r\n\r\n $(\".Form__Element.FormRecaptcha\").each(function (index, element) {\r\n var $element = $(element),\r\n $widgetContainer = $(\".g-recaptcha\", $element),\r\n siteKey = $element.data(\"epiforms-sitekey\");\r\n if ($widgetContainer.length == 1 && siteKey) {\r\n var widgetId = grecaptcha.render($widgetContainer.get(0), { sitekey: siteKey, callback: onVerify($element) });\r\n $element.data(\"epiforms-recaptcha-widgetid\", widgetId.toString());\r\n }\r\n });\r\n\r\n })($$epiforms || $);\r\n}\r\n"]}