{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/js/ctct-plugin-frontend/index.js","webpack:///./assets/js/ctct-plugin-frontend/util.js","webpack:///./assets/js/ctct-plugin-frontend/validation.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","$","enableSendButton","attr","document","ready","on","setTimeout","window","jQuery","CTCTSupport","app","init","cache","bindEvents","removePlaceholder","focus","data","blur","$c","$forms","each","formWrapper","push","find","form","$form","$honeypot","$submitButton","$recaptcha","timeout","setAllInputsValid","removeClass","processError","error","id","addClass","checkHoneypot","e","$honeyPot","val","length","validateSubmission","field","checkValidity","showMessage","message","classes","role","$wrapper","parents","remove","$p","prepend","insertBefore","fadeIn","this","submitForm","prop","ajaxData","serialize","post","ajaxurl","response","status","errors","forEach","reset","handleSubmission","clearTimeout"],"mappings":"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","file":"ctct-plugin-frontend.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://testing.test/wp-content/plugins/constant-contact-forms/assets/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n","import './util';\nimport './validation';\n","/**\n * General-purpose utility stuff for CC plugin.\n */\n( function( global, $ ) {\n\n\t/**\n\t * Temporarily prevent the submit button from being clicked.\n\t */\n\t$( document ).ready( () => {\n\n\t\t$( '.ctct-submitted' ).on( 'click', () => {\n\t\t\tsetTimeout( () => {\n\t\t\t\tdisableSendButton();\n\t\t\t\tsetTimeout( enableSendButton, 3000 );\n\t\t\t}, 100 );\n\t\t} );\n\t} );\n\n\t/**\n\t * Disable form submit button.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t *\n\t * @return {mixed} jQuery if attribute is set, undefined if not.\n\t */\n\tfunction disableSendButton() {\n\t\treturn $( '.ctct-submitted' ).attr( 'disabled', 'disabled' );\n\t}\n\n\t/**\n\t * Re-enable form submit buttons.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t *\n\t * @return {mixed} jQuery if attribute is set, undefined if not.\n\t */\n\tfunction enableSendButton() {\n\t\treturn $( '.ctct-submitted' ).attr( 'disabled', null );\n\t}\n\n} ( window, jQuery ) );\n","/**\n * Front-end form validation.\n *\n * @since 1.0.0\n */\n\n window.CTCTSupport = {};\n\n( function( window, $, app ) {\n\n\t/**\n\t * @constructor\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t */\n\tapp.init = () => {\n\t\tapp.cache();\n\t\tapp.bindEvents();\n\t\tapp.removePlaceholder();\n\t};\n\n\t/**\n\t * Remove placeholder text values.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t */\n\tapp.removePlaceholder = () => {\n\t\t$( '.ctct-form-field input, textarea' ).focus( () => {\n\t\t\t$( this ).data( 'placeholder', $( this ).attr( 'placeholder' ) ).attr( 'placeholder', '' );\n\t\t} ).blur( () => {\n\t\t\t$( this ).attr( 'placeholder', $( this ).data( 'placeholder' ) );\n\t\t} );\n\t};\n\n\t/**\n\t * Cache DOM elements.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t */\n\tapp.cache = () => {\n\n\t\tapp.$c = {\n\t\t\t$forms: []\n\t\t};\n\n\t\t// Cache each form on the page.\n\t\t$( '.ctct-form-wrapper' ).each( function( i, formWrapper ) {\n\t\t\tapp.$c.$forms.push( $( formWrapper ).find( 'form' ) );\n\t\t} );\n\n\t\t// For each form, cache its common elements.\n\t\t$.each( app.$c.$forms, function( i, form ) {\n\n\t\t\tvar $form = $( form );\n\n\t\t\tapp.$c.$forms[ i ].$honeypot = $form.find( '.ctct_usage_field' );\n\t\t\tapp.$c.$forms[ i ].$submitButton = $form.find( 'input[type=submit]' );\n\t\t\tapp.$c.$forms[ i ].$recaptcha = $form.find( '.g-recaptcha' );\n\t\t} );\n\n\t\tapp.timeout = null;\n\t};\n\n\t/**\n\t * Remove the ctct-invalid class from elements that have it.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t */\n\tapp.setAllInputsValid = () => {\n\t\t$( app.$c.$form + ' .ctct-invalid' ).removeClass( 'ctct-invalid' );\n\t};\n\n\t/**\n\t * Adds .ctct-invalid HTML class to inputs whose values are invalid.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t *\n\t * @param {object} error AJAX response error object.\n\t */\n\tapp.processError = ( error ) => {\n\n\t\t// If we have an id property set.\n\t\tif ( 'undefined' !== typeof( error.id ) ) {\n\t\t\t$( '#' + error.id ).addClass( 'ctct-invalid' );\n\t\t}\n\t};\n\n\t/**\n\t * Check the value of the hidden honeypot field; disable form submission button if anything in it.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t *\n\t * @param {object} e The change or keyup event triggering this callback.\n\t * @param {object} $honeyPot The jQuery object for the actual input field being checked.\n\t * @param {object} $submitButton The jQuery object for the submit button in the same form as the honeypot field.\n\t */\n\tapp.checkHoneypot = ( e, $honeyPot, $submitButton ) => {\n\n\t\t// If there is text in the honeypot, disable the submit button\n\t\tif ( 0 < $honeyPot.val().length ) {\n\t\t\t$submitButton.attr( 'disabled', 'disabled' );\n\t\t} else {\n\t\t\t$submitButton.attr( 'disabled', false );\n\t\t}\n\t};\n\n\t/**\n\t * Ensures that we should use AJAX to process the specified form, and that all required fields are not empty.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t *\n\t * @param {object} $form jQuery object for the form being validated.\n\t * @return {boolean} False if AJAX processing is disabled for this form or if a required field is empty.\n\t */\n\tapp.validateSubmission = ( $form ) => {\n\n\t\tif ( 'on' !== $form.attr( 'data-doajax' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Ensure all required fields in this form are valid.\n\t\t$.each( $form.find( '[required]' ), function( i, field ) {\n\n\t\t\tif ( false === field.checkValidity() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\n\t\treturn true;\n\t};\n\n\t/**\n\t * Prepends form with a message that fades out in 5 seconds.\n\t *\n\t * @author Constant Contact\n\t * @since 1.0.0\n\t *\n\t * @param {object} $form jQuery object for the form a message is being displayed for.\n\t * @param {string} message The message content.\n\t * @param {string} classes Optional. HTML classes to add to the message wrapper.\n\t */\n\tapp.showMessage = ( $form, message, classes = '', role = 'log' ) => {\n\n\t\tconst $wrapper = $form.parents( '.ctct-form-wrapper' );\n\n\t\t$wrapper.find( 'p.ctct-message' ).remove();\n\n\t\tvar $p = $( '

', {\n\t\t\t'class': 'ctct-message ' + classes,\n\t\t\t'text': message,\n\t\t\t'role': role\n\t\t} ).prepend( $( '