{"version":3,"sources":["webpack://gravityformsrecaptcha/./js/src/frontend.js","webpack://gravityformsrecaptcha/webpack/startup"],"names":["$","gform","grecaptcha","strings","getToken","e","form","data","recaptchaField","find","dataInput","length","val","preventDefault","ready","execute","site_key","action","then","token","submit","addFormEventListeners","formId","$form","$submit","on","addClass","gfRecaptcha","self","init","elements","formIds","getFormIds","addEventListeners","ids","forms","document","querySelectorAll","forEach","dataset","push","formid","getAttribute","split","event","jQuery","gforms_recaptcha_recaptcha_strings"],"mappings":"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","file":"./js/frontend.js","sourcesContent":["/* global jQuery, gform, gforms_recaptcha_recaptcha_strings, grecaptcha */\n( ( $, gform, grecaptcha, strings ) => {\n\t/**\n\t * Make the API request to Google to get the reCAPTCHA token right before submission.\n\t *\n\t * @since 1.0\n\t *\n\t * @param {Object} e The event object.\n\t * @return {void}\n\t */\n\tconst getToken = ( e ) => {\n\t\tconst form = $( e.data.form );\n\t\tconst recaptchaField = form.find( '.ginput_recaptchav3' );\n\t\tconst dataInput = recaptchaField.find( '.gfield_recaptcha_response' );\n\n\t\tif ( ! dataInput.length || dataInput.val().length ) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tgrecaptcha.ready( () => {\n\t\t\tgrecaptcha.execute( strings.site_key, { action: 'submit' } )\n\t\t\t\t.then( ( token ) => {\n\t\t\t\t\tif ( token.length && typeof token === 'string' ) {\n\t\t\t\t\t\tdataInput.val( token );\n\t\t\t\t\t}\n\n\t\t\t\t\tform.submit();\n\t\t\t\t} );\n\t\t} );\n\t};\n\n\t/**\n\t * Add event listeners to the form.\n\t *\n\t * @since 1.0\n\t *\n\t * @param {string|number} formId The numeric ID of the form.\n\t * @return {void}\n\t */\n\tconst addFormEventListeners = ( formId ) => {\n\t\tconst $form = $( `#gform_${ formId }:not(.recaptcha-v3-initialized)` );\n\t\tconst $submit = $form.find( `#gform_submit_button_${ formId }` );\n\n\t\t$form.on( 'submit', { form: $form }, getToken );\n\t\t$submit.on( 'click', { form: $form }, getToken );\n\n\t\t$form.addClass( 'recaptcha-v3-initialized' );\n\t};\n\n\t/**\n\t * The reCAPTCHA handler.\n\t *\n\t * @since 1.0\n\t *\n\t * @return {void}\n\t */\n\tconst gfRecaptcha = () => {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Initialize the Recaptcha handler.\n\t\t *\n\t\t * @since 1.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tself.init = () => {\n\t\t\tself.elements = {\n\t\t\t\tformIds: self.getFormIds(),\n\t\t\t};\n\t\t\tself.addEventListeners();\n\t\t};\n\n\t\t/**\n\t\t * Get an array of form IDs.\n\t\t *\n\t\t * @since 1.0\n\t\t *\n\t\t * @return {Array} Array of form IDs.\n\t\t */\n\t\tself.getFormIds = () => {\n\t\t\tconst ids = [];\n\t\t\tconst forms = document.querySelectorAll( '.gform_wrapper form' );\n\n\t\t\tforms.forEach( ( form ) => {\n\t\t\t\tif ( 'formid' in form.dataset ) {\n\t\t\t\t\tids.push( form.dataset.formid );\n\t\t\t\t} else {\n\t\t\t\t\tids.push( form.getAttribute( 'id' ).split( 'gform_' )[ 1 ] );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn ids;\n\t\t};\n\n\t\t/**\n\t\t * Add event listeners to the page.\n\t\t *\n\t\t * @since 1.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tself.addEventListeners = () => {\n\t\t\tself.elements.formIds.forEach( ( formId ) => {\n\t\t\t\taddFormEventListeners( formId );\n\t\t\t} );\n\n\t\t\t$( document ).on( 'gform_post_render', ( event, formId ) => {\n\t\t\t\taddFormEventListeners( formId );\n\t\t\t} );\n\t\t};\n\n\t\tself.init();\n\t};\n\n\t// Initialize and run the whole shebang.\n\t$( document ).ready( () => {\n\t\tgfRecaptcha();\n\t} );\n} )( jQuery, gform, grecaptcha, gforms_recaptcha_recaptcha_strings );\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = {};\n__webpack_modules__[\"./js/src/frontend.js\"]();\n"],"sourceRoot":""}