plugin installs

This commit is contained in:
Tony Volpe
2024-09-25 09:25:31 -04:00
parent 65a07c8d4d
commit cc870f301f
2953 changed files with 514886 additions and 0 deletions

View File

@@ -0,0 +1,146 @@
/******/ (function() { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./js/src/frontend-legacy.js":
/*!***********************************!*\
!*** ./js/src/frontend-legacy.js ***!
\***********************************/
/***/ (function() {
var _this = this;
/* global jQuery, gform, gforms_recaptcha_recaptcha_strings, grecaptcha */
(function ($, gform, grecaptcha, strings) {
/**
* Make the API request to Google to get the reCAPTCHA token right before submission.
*
* @since 1.0
*
* @param {Object} e The event object.
* @return {void}
*/
var getToken = function getToken(e) {
var form = $(e.data.form);
var recaptchaField = form.find('.ginput_recaptchav3');
var dataInput = recaptchaField.find('.gfield_recaptcha_response');
if (!dataInput.length || dataInput.val().length) {
return;
}
e.preventDefault();
grecaptcha.ready(function () {
grecaptcha.execute(strings.site_key, {
action: 'submit'
}).then(function (token) {
if (token.length && typeof token === 'string') {
dataInput.val(token);
}
// Sometimes the submit button is disabled to prevent the user from clicking it again,
// for example when 3DS is being processed for stripe elements.
// We need to enable it before submitting the form, otherwise it won't be submitted.
var $submitButton = $('#gform_submit_button_' + form[0].dataset.formid);
if ($submitButton.prop('disabled') === true) {
$submitButton.prop('disabled', false);
}
form.submit();
});
});
};
/**
* Add event listeners to the form.
*
* @since 1.0
*
* @param {string|number} formId The numeric ID of the form.
* @return {void}
*/
var addFormEventListeners = function addFormEventListeners(formId) {
var $form = $("#gform_".concat(formId, ":not(.recaptcha-v3-initialized)"));
$form.on('submit', {
form: $form
}, getToken);
$form.addClass('recaptcha-v3-initialized');
};
/**
* The reCAPTCHA handler.
*
* @since 1.0
*
* @return {void}
*/
var gfRecaptcha = function gfRecaptcha() {
var self = _this;
/**
* Initialize the Recaptcha handler.
*
* @since 1.0
*
* @return {void}
*/
self.init = function () {
self.elements = {
formIds: self.getFormIds()
};
self.addEventListeners();
};
/**
* Get an array of form IDs.
*
* @since 1.0
*
* @return {Array} Array of form IDs.
*/
self.getFormIds = function () {
var ids = [];
var forms = document.querySelectorAll('.gform_wrapper form');
forms.forEach(function (form) {
if ('formid' in form.dataset) {
ids.push(form.dataset.formid);
} else {
ids.push(form.getAttribute('id').split('gform_')[1]);
}
});
return ids;
};
/**
* Add event listeners to the page.
*
* @since 1.0
*
* @return {void}
*/
self.addEventListeners = function () {
self.elements.formIds.forEach(function (formId) {
addFormEventListeners(formId);
});
$(document).on('gform_post_render', function (event, formId) {
addFormEventListeners(formId);
});
};
self.init();
};
// Initialize and run the whole shebang.
$(document).ready(function () {
gfRecaptcha();
});
})(jQuery, gform, grecaptcha, gforms_recaptcha_recaptcha_strings);
/***/ })
/******/ });
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module is referenced by other modules so it can't be inlined
/******/ var __webpack_exports__ = {};
/******/ __webpack_modules__["./js/src/frontend-legacy.js"]();
/******/
/******/ })()
;
//# sourceMappingURL=frontend-legacy.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
({966:function(){var t=this;!function(e,n,r,i){var a=function(t){var n=e(t.data.form),a=n.find(".ginput_recaptchav3").find(".gfield_recaptcha_response");a.length&&!a.val().length&&(t.preventDefault(),r.ready((function(){r.execute(i.site_key,{action:"submit"}).then((function(t){t.length&&"string"==typeof t&&a.val(t);var r=e("#gform_submit_button_"+n[0].dataset.formid);!0===r.prop("disabled")&&r.prop("disabled",!1),n.submit()}))})))},o=function(t){var n=e("#gform_".concat(t,":not(.recaptcha-v3-initialized)"));n.on("submit",{form:n},a),n.addClass("recaptcha-v3-initialized")};e(document).ready((function(){var n;(n=t).init=function(){n.elements={formIds:n.getFormIds()},n.addEventListeners()},n.getFormIds=function(){var t=[];return document.querySelectorAll(".gform_wrapper form").forEach((function(e){"formid"in e.dataset?t.push(e.dataset.formid):t.push(e.getAttribute("id").split("gform_")[1])})),t},n.addEventListeners=function(){n.elements.formIds.forEach((function(t){o(t)})),e(document).on("gform_post_render",(function(t,e){o(e)}))},n.init()}))}(jQuery,gform,grecaptcha,gforms_recaptcha_recaptcha_strings)}})[966]();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */

View File

@@ -0,0 +1,412 @@
/******/ (function() { // webpackBootstrap
var __webpack_exports__ = {};
/*!***********************************!*\
!*** ./js/src/plugin_settings.js ***!
\***********************************/
/* global jQuery, gform, grecaptcha, gforms_recaptcha_recaptcha_strings */
(function ($) {
/**
* Handles reCAPTCHA v2 plugin settings validation.
*
* @since 1.0
*
* @return {void}
*/
var recaptchaV2Settings = function recaptchaV2Settings() {
var v2Settings = {};
/**
* Initialize reCAPTCHA v2 settings.
*
* @since 1.0
*
* @return {void}
*/
v2Settings.init = function () {
v2Settings.cacheElements();
v2Settings.addEventListeners();
};
/**
* Cache the fields used by this handler.
*
* @since 1.0
*
* @return {void}
*/
v2Settings.cacheElements = function () {
v2Settings.container = $('div[id="gform_setting_reset_v2"]');
v2Settings.fields = {
siteKey: $('input[name="_gform_setting_site_key_v2"]'),
secretKey: $('input[name="_gform_setting_secret_key_v2"]'),
reset: $('input[name="_gform_setting_reset_v2"]'),
type: $('input[name="_gform_setting_type_v2"]')
};
};
/**
* Add event listeners for this handler.
*
* @since 1.0
*
* @return {void}
*/
v2Settings.addEventListeners = function () {
v2Settings.fields.siteKey.on('change', window.loadRecaptcha);
v2Settings.fields.secretKey.on('change', window.loadRecaptcha);
v2Settings.fields.type.on('change', function () {
return window.loadRecaptcha();
});
};
/**
* Handles showing and hiding the reCAPTCHA itself.
*
* @since 1.0
*
* @return {void}
*/
window.loadRecaptcha = function () {
var self = {};
/**
* Initialize the reCAPTCHA rendering process.
*
* @since 1.0
*
* @return {void}
*/
self.init = function () {
v2Settings.recaptcha = $('#recaptcha');
v2Settings.save = $('#gform-settings-save');
self.flushExistingState();
// Reset key status.
// Note: recaptcha is misspelled here for legacy reasons.
$('#recpatcha .gform-settings-field__feedback').remove();
// If no public or private key is provided, exit.
if (!self.canBeDisplayed()) {
self.hideRecaptcha();
return;
}
v2Settings.save.prop('disabled', true);
self.showSelectedRecaptcha();
};
/**
* Renders the v2 reCAPTCHA.
*
* @since 1.0
*
* @param {string} typeValue The selected type to render.
*
* @return {void}
*/
self.render = function (typeValue) {
// Render reCAPTCHA.
grecaptcha.render('recaptcha', {
sitekey: v2Settings.fields.siteKey.val().trim(),
size: typeValue === 'invisible' ? typeValue : '',
badge: 'inline',
'error-callback': function errorCallback() {},
callback: function callback() {
return v2Settings.save.prop('disabled', false);
}
});
};
/**
* Flush the existing state of the reCAPTCHA handler.
*
* @since 1.0
*
* @return {void}
*/
self.flushExistingState = function () {
window.___grecaptcha_cfg.clients = {};
window.___grecaptcha_cfg.count = 0;
v2Settings.recaptcha.html('');
v2Settings.fields.reset.val('1');
};
/**
* Determines whether the reCAPTCHA can be shown.
*
* @since 1.0
*
* @return {boolean} Whether the reCAPTCHA can be shown.
*/
self.canBeDisplayed = function () {
return v2Settings.fields.siteKey.val() && v2Settings.fields.secretKey.val();
};
/**
* Hides the reCAPTCHA element.
*
* @since 1.0
*
* @return {void}
*/
self.hideRecaptcha = function () {
v2Settings.save.prop('disabled', false);
v2Settings.container.hide();
};
/**
* Show the selected reCAPTCHA type.
*
* @since 1.0
*
* @return {void}
*/
self.showSelectedRecaptcha = function () {
var typeValue = $('input[name="_gform_setting_type_v2"]:checked').val();
self.render(typeValue);
switch (typeValue) {
case 'checkbox':
$('#gforms_checkbox_recaptcha_message, label[for="reset"]').show();
break;
case 'invisible':
$('#gforms_checkbox_recaptcha_message, label[for="reset"]').hide();
break;
default:
throw new Error('Unexpected type selected.');
}
v2Settings.container.show();
if (typeValue === 'invisible') {
grecaptcha.execute();
}
};
self.init();
};
v2Settings.init();
};
/**
* Handles reCAPTCHA v3 plugin settings validation.
*
* @since 1.0
*
* @return {void}
*/
var recaptchaV3Settings = function recaptchaV3Settings() {
var v3Settings = {};
/**
* Initializes the reCAPTCHA v3 settings handler.
*
* @since 1.0
*
* @return {void}
*/
v3Settings.init = function () {
v3Settings.token = '';
v3Settings.strings = gforms_recaptcha_recaptcha_strings;
v3Settings.cacheElements();
v3Settings.validateKeysV3();
v3Settings.addEventListeners();
};
/**
* Cache HTML elements for the v3 reCAPTCHA settings.
*
* @since 1.0
*
* @return {void}
*/
v3Settings.cacheElements = function () {
v3Settings.fields = {
siteKey: '#site_key_v3',
secretKey: '#secret_key_v3',
threshold: '#score_threshold_v3',
disableBadge: '#disable_badge_v3',
keysStatus: '#gform_setting_recaptcha_keys_status_v3'
};
v3Settings.cache = {
siteKey: $(v3Settings.fields.siteKey),
secretKey: $(v3Settings.fields.secretKey),
keysStatus: $(v3Settings.fields.keysStatus),
save: $('#gform-settings-save')
};
};
/**
* Setup event listeners for field validation.
*
* @since 1.0
*
* @return {void}
*/
v3Settings.addEventListeners = function () {
if (!v3Settings.strings.site_key.length) {
return;
}
$(v3Settings.fields.siteKey).on('keyup', function () {
return v3Settings.clearValidationFeedback();
});
$(v3Settings.fields.secretKey).on('keyup', function () {
return v3Settings.clearValidationFeedback();
});
};
/**
* Empty out the validation feedback if the fields are modified, as we can't yet know the status.
*
* @since 1.0
*
* @return {void}
*/
v3Settings.clearValidationFeedback = function () {
v3Settings.unsetValid(v3Settings.cache.siteKey.closest('.gform-settings-input__container'));
v3Settings.unsetValid(v3Settings.cache.secretKey.closest('.gform-settings-input__container'));
};
/**
* Handles validation of the v3 site key.
*
* @since 1.0
*
* @return {Promise<unknown>} Returns a promise so this can be verified synchronously if checking the secret key.
*/
v3Settings.getRecaptchaToken = function () {
return new Promise(function (resolve, reject) {
var siteKeyContainer = v3Settings.cache.siteKey.closest('.gform-settings-input__container');
try {
var siteKey = v3Settings.cache.siteKey;
var siteKeyValue = siteKey.val().trim();
if (0 === siteKeyValue.length) {
v3Settings.unsetValid(siteKeyContainer);
v3Settings.unsetValid(v3Settings.cache.keysStatus.closest('.gform-settings-input__container'));
$(v3Settings.fields.keysStatus).find('input').val('0');
return;
}
grecaptcha.ready(function () {
try {
grecaptcha.execute(siteKeyValue, {
action: 'submit'
}).then(function (token) {
resolve(token);
});
} catch (error) {
reject(error);
}
});
} catch (error) {
reject(error);
}
});
};
/**
* Handles validation of the v3 site and secret keys.
*
* On page load, attempt to generate a reCAPTCHA token and immediately validate it on the server. If it's good,
* we'll update the presentation of the keys to indicate success or failure.
*
* @since 1.0
*
* @return {void}
*/
v3Settings.validateKeysV3 = function () {
var siteKeyContainer = v3Settings.cache.siteKey.closest('.gform-settings-input__container');
var secretKeyContainer = v3Settings.cache.secretKey.closest('.gform-settings-input__container');
var keysStatusInput = $(v3Settings.fields.keysStatus).find('input');
if (!$(v3Settings.fields.siteKey).val().trim().length) {
v3Settings.unsetValid(siteKeyContainer);
v3Settings.unsetValid(secretKeyContainer);
keysStatusInput.val('0');
return;
}
v3Settings.getRecaptchaToken().then(function (token) {
v3Settings.token = token;
}).catch(function () {
v3Settings.setInvalid(siteKeyContainer);
v3Settings.setInvalid(secretKeyContainer);
keysStatusInput.val('0');
}).finally(function () {
$.ajax({
method: 'POST',
dataType: 'JSON',
url: v3Settings.strings.ajaxurl,
data: {
action: 'verify_secret_key',
nonce: v3Settings.strings.nonce,
token: v3Settings.token,
site_key_v3: $(v3Settings.fields.siteKey).val(),
secret_key_v3: $(v3Settings.fields.secretKey).val()
}
}).then(function (response) {
switch (response.data.keys_status) {
case '1':
v3Settings.setValid(siteKeyContainer);
v3Settings.setValid(secretKeyContainer);
keysStatusInput.val('1');
break;
case '0':
v3Settings.setInvalid(siteKeyContainer);
v3Settings.setInvalid(secretKeyContainer);
keysStatusInput.val('0');
break;
default:
v3Settings.unsetValid(siteKeyContainer);
v3Settings.unsetValid(secretKeyContainer);
keysStatusInput.val('0');
}
});
});
};
/**
* Updates the text field to display no feedback.
*
* @since 1.0
*
* @param {Object} el The jQuery element.
*
* @return {void}
*/
v3Settings.unsetValid = function (el) {
el.removeClass('gform-settings-input__container--feedback-success');
el.removeClass('gform-settings-input__container--feedback-error');
};
/**
* Updates the text field to display the successful feedback.
*
* @since 1.0
*
* @param {Object} el The jQuery element.
*
* @return {void}
*/
v3Settings.setValid = function (el) {
el.addClass('gform-settings-input__container--feedback-success');
el.removeClass('gform-settings-input__container--feedback-error');
};
/**
* Updates the text field to display the error feedback.
*
* @since 1.0
*
* @param {Object} el The jQuery element.
*
* @return {void}
*/
v3Settings.setInvalid = function (el) {
el.removeClass('gform-settings-input__container--feedback-success');
el.addClass('gform-settings-input__container--feedback-error');
};
v3Settings.init();
};
$(document).ready(function () {
recaptchaV3Settings();
recaptchaV2Settings();
gform.adminUtils.handleUnsavedChanges('#gform-settings');
});
})(jQuery);
/******/ })()
;
//# sourceMappingURL=plugin_settings.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
!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")}))}();