Files
2024-09-25 09:25:31 -04:00

1 line
4.5 KiB
JavaScript

!function(){var e;(e=jQuery)(document).ready((function(){var t,n;(t={init:function(){t.token="",t.strings=gforms_recaptcha_recaptcha_strings,t.cacheElements(),t.validateKeysV3(),t.addEventListeners()},cacheElements:function(){t.fields={siteKey:"#site_key_v3",secretKey:"#secret_key_v3",threshold:"#score_threshold_v3",disableBadge:"#disable_badge_v3",keysStatus:"#gform_setting_recaptcha_keys_status_v3"},t.cache={siteKey:e(t.fields.siteKey),secretKey:e(t.fields.secretKey),keysStatus:e(t.fields.keysStatus),save:e("#gform-settings-save")}},addEventListeners:function(){t.strings.site_key.length&&(e(t.fields.siteKey).on("keyup",(function(){return t.clearValidationFeedback()})),e(t.fields.secretKey).on("keyup",(function(){return t.clearValidationFeedback()})))},clearValidationFeedback:function(){t.unsetValid(t.cache.siteKey.closest(".gform-settings-input__container")),t.unsetValid(t.cache.secretKey.closest(".gform-settings-input__container"))},getRecaptchaToken:function(){return new Promise((function(n,s){var a=t.cache.siteKey.closest(".gform-settings-input__container");try{var i=t.cache.siteKey.val().trim();if(0===i.length)return t.unsetValid(a),t.unsetValid(t.cache.keysStatus.closest(".gform-settings-input__container")),void e(t.fields.keysStatus).find("input").val("0");grecaptcha.ready((function(){try{grecaptcha.execute(i,{action:"submit"}).then((function(e){n(e)}))}catch(e){s(e)}}))}catch(e){s(e)}}))},validateKeysV3:function(){var n=t.cache.siteKey.closest(".gform-settings-input__container"),s=t.cache.secretKey.closest(".gform-settings-input__container"),a=e(t.fields.keysStatus).find("input");if(!e(t.fields.siteKey).val().trim().length)return t.unsetValid(n),t.unsetValid(s),void a.val("0");t.getRecaptchaToken().then((function(e){t.token=e})).catch((function(){t.setInvalid(n),t.setInvalid(s),a.val("0")})).finally((function(){e.ajax({method:"POST",dataType:"JSON",url:t.strings.ajaxurl,data:{action:"verify_secret_key",nonce:t.strings.nonce,token:t.token,site_key_v3:e(t.fields.siteKey).val(),secret_key_v3:e(t.fields.secretKey).val()}}).then((function(e){switch(e.data.keys_status){case"1":t.setValid(n),t.setValid(s),a.val("1");break;case"0":t.setInvalid(n),t.setInvalid(s),a.val("0");break;default:t.unsetValid(n),t.unsetValid(s),a.val("0")}}))}))},unsetValid:function(e){e.removeClass("gform-settings-input__container--feedback-success"),e.removeClass("gform-settings-input__container--feedback-error")},setValid:function(e){e.addClass("gform-settings-input__container--feedback-success"),e.removeClass("gform-settings-input__container--feedback-error")},setInvalid:function(e){e.removeClass("gform-settings-input__container--feedback-success"),e.addClass("gform-settings-input__container--feedback-error")}}).init(),n={init:function(){n.cacheElements(),n.addEventListeners()},cacheElements:function(){n.container=e('div[id="gform_setting_reset_v2"]'),n.fields={siteKey:e('input[name="_gform_setting_site_key_v2"]'),secretKey:e('input[name="_gform_setting_secret_key_v2"]'),reset:e('input[name="_gform_setting_reset_v2"]'),type:e('input[name="_gform_setting_type_v2"]')}},addEventListeners:function(){n.fields.siteKey.on("change",window.loadRecaptcha),n.fields.secretKey.on("change",window.loadRecaptcha),n.fields.type.on("change",(function(){return window.loadRecaptcha()}))}},window.loadRecaptcha=function(){var t={init:function(){n.recaptcha=e("#recaptcha"),n.save=e("#gform-settings-save"),t.flushExistingState(),e("#recpatcha .gform-settings-field__feedback").remove(),t.canBeDisplayed()?(n.save.prop("disabled",!0),t.showSelectedRecaptcha()):t.hideRecaptcha()},render:function(e){grecaptcha.render("recaptcha",{sitekey:n.fields.siteKey.val().trim(),size:"invisible"===e?e:"",badge:"inline","error-callback":function(){},callback:function(){return n.save.prop("disabled",!1)}})},flushExistingState:function(){window.___grecaptcha_cfg.clients={},window.___grecaptcha_cfg.count=0,n.recaptcha.html(""),n.fields.reset.val("1")},canBeDisplayed:function(){return n.fields.siteKey.val()&&n.fields.secretKey.val()},hideRecaptcha:function(){n.save.prop("disabled",!1),n.container.hide()},showSelectedRecaptcha:function(){var s=e('input[name="_gform_setting_type_v2"]:checked').val();switch(t.render(s),s){case"checkbox":e('#gforms_checkbox_recaptcha_message, label[for="reset"]').show();break;case"invisible":e('#gforms_checkbox_recaptcha_message, label[for="reset"]').hide();break;default:throw new Error("Unexpected type selected.")}n.container.show(),"invisible"===s&&grecaptcha.execute()}};t.init()},n.init(),gform.adminUtils.handleUnsavedChanges("#gform-settings")}))}();