{"version":3,"sources":["forms-api.js"],"names":["define","undefined","r","e","n","t","o","i","f","c","u","a","Error","code","p","exports","call","length","1","require","module","obj","_conditionalElements","__esModule","default","mc4wp","window","Gator","forms","config","mc4wp_forms_config","scrollToElement","form","eventName","errors","data","timeStart","pageHeight","gator","document","body","on","event","getByElement","target","srcElement","defaultPrevented","trigger","id","started","init","listeners","callback","submitted_form","formConfig","element","getElementById","element_id","Date","now","clientHeight","setData","scrollY","auto_scroll","addEventListener","timeElapsed","./forms/conditional-elements.js","./forms/forms.js","./misc/scroll-to-element.js","2","toggleElement","el","show","getAttribute","conditions","split","fieldName","expectedValues","values","inputs","querySelectorAll","input","type","checked","push","value","getFieldValues","bubbleElement","parentElement","tagName","findForm","conditionMet","indexOf","style","display","forEach","required","removeAttribute","setAttribute","evaluate","elements","handleInputEvent","evt","className","Object","defineProperty","_default","3","Form","this","createElement","name","serialize","populate","prototype","console","error","getData","hash","empty","getSerializedData","setResponse","msg","querySelector","innerHTML","reset","form-serialize","populate.js","4","emit","args","apply","createFromElement","formElement","parseInt","all","get","formId","func","off","filter","eventArgs","setTimeout","./form.js","5","x","pageXOffset","documentElement","scrollLeft","y","elem","html","elemRect","getBoundingClientRect","documentHeight","Math","max","scrollHeight","offsetHeight","scrollPosition","bottom","height","maxScrollPosition","min","pageYOffset","calculateScrollOffset","scrollTo","6","k_r_submitter","k_r_success_contrls","brackets","hash_serializer","result","key","match","hash_assign","keys","shift","between","Array","isArray","_values","string","index","isNaN","children","RegExp","exec","parse_keys","existing","str_serialize","replace","encodeURIComponent","options","serializer","radio_store","create","disabled","test","nodeName","val","selectOptions","isSelectedOptions","j","option","allowedEmpty","hasValue","selected","slice","7","_matchesSelector","selector","boundElement","_matcher","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","matchesSelector","_getMatcher","parentNode","_level","_removeHandler","_handlers","splice","hasOwnProperty","_bind","events","remove","addEvent","_getGlobalCallback","_gatorInstances","matchesEvent","stopPropagation","cancelBubble","cancel","_handleEvent","_id","preventDefault","useCapture","8","root","basename","constructor","namedItem","k","toString","toISOString","amd"],"mappings":"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","file":"forms-api.min.js","sourcesContent":["(function () { var require = undefined; var define = undefined; (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 1000 && timeElapsed < 2000 && document.body.clientHeight !== pageHeight) {\n scrollToElement(form.element);\n }\n });\n} // Bind browser events to form events (using delegation)\n\n\nvar gator = Gator(document.body);\ngator.on('submit', '.mc4wp-form', function (event) {\n var form = forms.getByElement(event.target || event.srcElement);\n\n if (!event.defaultPrevented) {\n forms.trigger(form.id + '.submit', [form, event]);\n }\n\n if (!event.defaultPrevented) {\n forms.trigger('submit', [form, event]);\n }\n});\ngator.on('focus', '.mc4wp-form', function (event) {\n var form = forms.getByElement(event.target || event.srcElement);\n\n if (!form.started) {\n forms.trigger(form.id + '.started', [form, event]);\n forms.trigger('started', [form, event]);\n form.started = true;\n }\n});\ngator.on('change', '.mc4wp-form', function (event) {\n var form = forms.getByElement(event.target || event.srcElement);\n forms.trigger('change', [form, event]);\n forms.trigger(form.id + '.change', [form, event]);\n}); // init conditional elements\n\n_conditionalElements[\"default\"].init(); // register early listeners\n\n\nif (mc4wp.listeners) {\n var listeners = mc4wp.listeners;\n\n for (var i = 0; i < listeners.length; i++) {\n forms.on(listeners[i].event, listeners[i].callback);\n } // delete temp listeners array, so we don't bind twice\n\n\n delete mc4wp[\"listeners\"];\n} // expose forms object\n\n\nmc4wp.forms = forms; // handle submitted form\n\nif (config.submitted_form) {\n var formConfig = config.submitted_form,\n element = document.getElementById(formConfig.element_id),\n form = forms.getByElement(element);\n handleFormRequest(form, formConfig.event, formConfig.errors, formConfig.data);\n} // expose mc4wp object globally\n\n\nwindow.mc4wp = mc4wp;\n\n},{\"./forms/conditional-elements.js\":2,\"./forms/forms.js\":4,\"./misc/scroll-to-element.js\":5,\"gator\":7}],2:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction getFieldValues(form, fieldName) {\n var values = [];\n var inputs = form.querySelectorAll('input[name=\"' + fieldName + '\"], select[name=\"' + fieldName + '\"], textarea[name=\"' + fieldName + '\"]');\n\n for (var i = 0; i < inputs.length; i++) {\n var input = inputs[i];\n var type = input.getAttribute(\"type\");\n\n if ((type === \"radio\" || type === \"checkbox\") && !input.checked) {\n continue;\n }\n\n values.push(input.value);\n }\n\n return values;\n}\n\nfunction findForm(element) {\n var bubbleElement = element;\n\n while (bubbleElement.parentElement) {\n bubbleElement = bubbleElement.parentElement;\n\n if (bubbleElement.tagName === 'FORM') {\n return bubbleElement;\n }\n }\n\n return null;\n}\n\nfunction toggleElement(el) {\n var show = !!el.getAttribute('data-show-if');\n var conditions = show ? el.getAttribute('data-show-if').split(':') : el.getAttribute('data-hide-if').split(':');\n var fieldName = conditions[0];\n var expectedValues = (conditions.length > 1 ? conditions[1] : \"*\").split('|');\n var form = findForm(el);\n var values = getFieldValues(form, fieldName); // determine whether condition is met\n\n var conditionMet = false;\n\n for (var i = 0; i < values.length; i++) {\n var value = values[i]; // condition is met when value is in array of expected values OR expected values contains a wildcard and value is not empty\n\n conditionMet = expectedValues.indexOf(value) > -1 || expectedValues.indexOf('*') > -1 && value.length > 0;\n\n if (conditionMet) {\n break;\n }\n } // toggle element display\n\n\n if (show) {\n el.style.display = conditionMet ? '' : 'none';\n } else {\n el.style.display = conditionMet ? 'none' : '';\n } // find all inputs inside this element and toggle [required] attr (to prevent HTML5 validation on hidden elements)\n\n\n var inputs = el.querySelectorAll('input, select, textarea');\n [].forEach.call(inputs, function (el) {\n if ((conditionMet || show) && el.getAttribute('data-was-required')) {\n el.required = true;\n el.removeAttribute('data-was-required');\n }\n\n if ((!conditionMet || !show) && el.required) {\n el.setAttribute('data-was-required', \"true\");\n el.required = false;\n }\n });\n} // evaluate conditional elements globally\n\n\nfunction evaluate() {\n var elements = document.querySelectorAll('.mc4wp-form [data-show-if], .mc4wp-form [data-hide-if]');\n [].forEach.call(elements, toggleElement);\n} // re-evaluate conditional elements for change events on forms\n\n\nfunction handleInputEvent(evt) {\n if (!evt.target || !evt.target.form || evt.target.form.className.indexOf('mc4wp-form') < 0) {\n return;\n }\n\n var form = evt.target.form;\n var elements = form.querySelectorAll('[data-show-if], [data-hide-if]');\n [].forEach.call(elements, toggleElement);\n}\n\nvar _default = {\n 'init': function init() {\n document.addEventListener('keyup', handleInputEvent, true);\n document.addEventListener('change', handleInputEvent, true);\n document.addEventListener('mc4wp-refresh', evaluate, true);\n window.addEventListener('load', evaluate);\n evaluate();\n }\n};\nexports[\"default\"] = _default;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar serialize = require('form-serialize');\n\nvar populate = require('populate.js');\n\nvar Form = function Form(id, element) {\n this.id = id;\n this.element = element || document.createElement('form');\n this.name = this.element.getAttribute('data-name') || \"Form #\" + this.id;\n this.errors = [];\n this.started = false;\n};\n\nForm.prototype.setData = function (data) {\n try {\n populate(this.element, data);\n } catch (e) {\n console.error(e);\n }\n};\n\nForm.prototype.getData = function () {\n return serialize(this.element, {\n hash: true,\n empty: true\n });\n};\n\nForm.prototype.getSerializedData = function () {\n return serialize(this.element, {\n hash: false,\n empty: true\n });\n};\n\nForm.prototype.setResponse = function (msg) {\n this.element.querySelector('.mc4wp-response').innerHTML = msg;\n}; // revert back to original state\n\n\nForm.prototype.reset = function () {\n this.setResponse('');\n this.element.querySelector('.mc4wp-form-fields').style.display = '';\n this.element.reset();\n};\n\nmodule.exports = Form;\n\n},{\"form-serialize\":6,\"populate.js\":8}],4:[function(require,module,exports){\n'use strict'; // deps\n\nvar Form = require('./form.js'); // variables\n\n\nvar forms = [];\nvar listeners = {};\n\nfunction emit(event, args) {\n listeners[event] = listeners[event] || [];\n listeners[event].forEach(function (f) {\n return f.apply(null, args);\n });\n}\n\nfunction on(event, func) {\n listeners[event] = listeners[event] || [];\n listeners[event].push(func);\n}\n\nfunction off(event, func) {\n listeners[event] = listeners[event] || [];\n listeners[event] = listeners[event].filter(function (f) {\n return f !== func;\n });\n} // get form by its id\n// please note that this will get the FIRST occurence of the form with that ID on the page\n\n\nfunction get(formId) {\n formId = parseInt(formId); // do we have form for this one already?\n\n for (var i = 0; i < forms.length; i++) {\n if (forms[i].id === formId) {\n return forms[i];\n }\n } // try to create from first occurence of this element\n\n\n var formElement = document.querySelector('.mc4wp-form-' + formId);\n return createFromElement(formElement, formId);\n} // get form by
element (or any input in form)\n\n\nfunction getByElement(element) {\n var formElement = element.form || element;\n\n for (var i = 0; i < forms.length; i++) {\n if (forms[i].element === formElement) {\n return forms[i];\n }\n }\n\n return createFromElement(formElement);\n} // create form object from element\n\n\nfunction createFromElement(formElement, id) {\n id = id || parseInt(formElement.getAttribute('data-id')) || 0;\n var form = new Form(id, formElement);\n forms.push(form);\n return form;\n}\n\nfunction all() {\n return forms;\n}\n\nfunction triggerEvent(eventName, eventArgs) {\n if (eventName === 'submit' || eventName.indexOf('.submit') > 0) {\n // don't spin up new thread for submit event as we want to preventDefault()...\n emit(eventName, eventArgs);\n } else {\n // process in separate thread to prevent errors from breaking core functionality\n window.setTimeout(function () {\n emit(eventName, eventArgs);\n }, 1);\n }\n}\n\nmodule.exports = {\n \"all\": all,\n \"get\": get,\n \"getByElement\": getByElement,\n \"on\": on,\n \"off\": off,\n \"trigger\": triggerEvent\n};\n\n},{\"./form.js\":3}],5:[function(require,module,exports){\n'use strict';\n\nfunction scrollTo(element) {\n var x = window.pageXOffset || document.documentElement.scrollLeft;\n var y = calculateScrollOffset(element);\n window.scrollTo(x, y);\n}\n\nfunction calculateScrollOffset(elem) {\n var body = document.body,\n html = document.documentElement;\n var elemRect = elem.getBoundingClientRect();\n var clientHeight = html.clientHeight;\n var documentHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n var scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2;\n var maxScrollPosition = documentHeight - clientHeight;\n return Math.min(scrollPosition + window.pageYOffset, maxScrollPosition);\n}\n\nmodule.exports = scrollTo;\n\n},{}],6:[function(require,module,exports){\n// get successful control from form and assemble into object\n// http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2\n\n// types which indicate a submit action and are not successful controls\n// these will be ignored\nvar k_r_submitter = /^(?:submit|button|image|reset|file)$/i;\n\n// node names which could be successful controls\nvar k_r_success_contrls = /^(?:input|select|textarea|keygen)/i;\n\n// Matches bracket notation.\nvar brackets = /(\\[[^\\[\\]]*\\])/g;\n\n// serializes form fields\n// @param form MUST be an HTMLForm element\n// @param options is an optional argument to configure the serialization. Default output\n// with no options specified is a url encoded string\n// - hash: [true | false] Configure the output type. If true, the output will\n// be a js object.\n// - serializer: [function] Optional serializer function to override the default one.\n// The function takes 3 arguments (result, key, value) and should return new result\n// hash and url encoded str serializers are provided with this module\n// - disabled: [true | false]. If true serialize disabled fields.\n// - empty: [true | false]. If true serialize empty fields\nfunction serialize(form, options) {\n if (typeof options != 'object') {\n options = { hash: !!options };\n }\n else if (options.hash === undefined) {\n options.hash = true;\n }\n\n var result = (options.hash) ? {} : '';\n var serializer = options.serializer || ((options.hash) ? hash_serializer : str_serialize);\n\n var elements = form && form.elements ? form.elements : [];\n\n //Object store each radio and set if it's empty or not\n var radio_store = Object.create(null);\n\n for (var i=0 ; i tag but there\n // is a inside of the a tag that it is the target,\n // it should still work\n if (element.parentNode) {\n _level++;\n return _matchesSelector(element.parentNode, selector, boundElement);\n }\n }\n\n function _addHandler(gator, event, selector, callback) {\n if (!_handlers[gator.id]) {\n _handlers[gator.id] = {};\n }\n\n if (!_handlers[gator.id][event]) {\n _handlers[gator.id][event] = {};\n }\n\n if (!_handlers[gator.id][event][selector]) {\n _handlers[gator.id][event][selector] = [];\n }\n\n _handlers[gator.id][event][selector].push(callback);\n }\n\n function _removeHandler(gator, event, selector, callback) {\n\n // if there are no events tied to this element at all\n // then don't do anything\n if (!_handlers[gator.id]) {\n return;\n }\n\n // if there is no event type specified then remove all events\n // example: Gator(element).off()\n if (!event) {\n for (var type in _handlers[gator.id]) {\n if (_handlers[gator.id].hasOwnProperty(type)) {\n _handlers[gator.id][type] = {};\n }\n }\n return;\n }\n\n // if no callback or selector is specified remove all events of this type\n // example: Gator(element).off('click')\n if (!callback && !selector) {\n _handlers[gator.id][event] = {};\n return;\n }\n\n // if a selector is specified but no callback remove all events\n // for this selector\n // example: Gator(element).off('click', '.sub-element')\n if (!callback) {\n delete _handlers[gator.id][event][selector];\n return;\n }\n\n // if we have specified an event type, selector, and callback then we\n // need to make sure there are callbacks tied to this selector to\n // begin with. if there aren't then we can stop here\n if (!_handlers[gator.id][event][selector]) {\n return;\n }\n\n // if there are then loop through all the callbacks and if we find\n // one that matches remove it from the array\n for (var i = 0; i < _handlers[gator.id][event][selector].length; i++) {\n if (_handlers[gator.id][event][selector][i] === callback) {\n _handlers[gator.id][event][selector].splice(i, 1);\n break;\n }\n }\n }\n\n function _handleEvent(id, e, type) {\n if (!_handlers[id][type]) {\n return;\n }\n\n var target = e.target || e.srcElement,\n selector,\n match,\n matches = {},\n i = 0,\n j = 0;\n\n // find all events that match\n _level = 0;\n for (selector in _handlers[id][type]) {\n if (_handlers[id][type].hasOwnProperty(selector)) {\n match = _matchesSelector(target, selector, _gatorInstances[id].element);\n\n if (match && Gator.matchesEvent(type, _gatorInstances[id].element, match, selector == '_root', e)) {\n _level++;\n _handlers[id][type][selector].match = match;\n matches[_level] = _handlers[id][type][selector];\n }\n }\n }\n\n // stopPropagation() fails to set cancelBubble to true in Webkit\n // @see http://code.google.com/p/chromium/issues/detail?id=162270\n e.stopPropagation = function() {\n e.cancelBubble = true;\n };\n\n for (i = 0; i <= _level; i++) {\n if (matches[i]) {\n for (j = 0; j < matches[i].length; j++) {\n if (matches[i][j].call(matches[i].match, e) === false) {\n Gator.cancel(e);\n return;\n }\n\n if (e.cancelBubble) {\n return;\n }\n }\n }\n }\n }\n\n /**\n * binds the specified events to the element\n *\n * @param {string|Array} events\n * @param {string} selector\n * @param {Function} callback\n * @param {boolean=} remove\n * @returns {Object}\n */\n function _bind(events, selector, callback, remove) {\n\n // fail silently if you pass null or undefined as an alement\n // in the Gator constructor\n if (!this.element) {\n return;\n }\n\n if (!(events instanceof Array)) {\n events = [events];\n }\n\n if (!callback && typeof(selector) == 'function') {\n callback = selector;\n selector = '_root';\n }\n\n var id = this.id,\n i;\n\n function _getGlobalCallback(type) {\n return function(e) {\n _handleEvent(id, e, type);\n };\n }\n\n for (i = 0; i < events.length; i++) {\n if (remove) {\n _removeHandler(this, events[i], selector, callback);\n continue;\n }\n\n if (!_handlers[id] || !_handlers[id][events[i]]) {\n Gator.addEvent(this, events[i], _getGlobalCallback(events[i]));\n }\n\n _addHandler(this, events[i], selector, callback);\n }\n\n return this;\n }\n\n /**\n * Gator object constructor\n *\n * @param {Node} element\n */\n function Gator(element, id) {\n\n // called as function\n if (!(this instanceof Gator)) {\n // only keep one Gator instance per node to make sure that\n // we don't create a ton of new objects if you want to delegate\n // multiple events from the same node\n //\n // for example: Gator(document).on(...\n for (var key in _gatorInstances) {\n if (_gatorInstances[key].element === element) {\n return _gatorInstances[key];\n }\n }\n\n _id++;\n _gatorInstances[_id] = new Gator(element, _id);\n\n return _gatorInstances[_id];\n }\n\n this.element = element;\n this.id = id;\n }\n\n /**\n * adds an event\n *\n * @param {string|Array} events\n * @param {string} selector\n * @param {Function} callback\n * @returns {Object}\n */\n Gator.prototype.on = function(events, selector, callback) {\n return _bind.call(this, events, selector, callback);\n };\n\n /**\n * removes an event\n *\n * @param {string|Array} events\n * @param {string} selector\n * @param {Function} callback\n * @returns {Object}\n */\n Gator.prototype.off = function(events, selector, callback) {\n return _bind.call(this, events, selector, callback, true);\n };\n\n Gator.matchesSelector = function() {};\n Gator.cancel = _cancel;\n Gator.addEvent = _addEvent;\n Gator.matchesEvent = function() {\n return true;\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Gator;\n }\n\n window.Gator = Gator;\n}) ();\n\n},{}],8:[function(require,module,exports){\n/*! populate.js v1.0.2 by @dannyvankooten | MIT license */\n;(function(root) {\n\n\t/**\n\t * Populate form fields from a JSON object.\n\t *\n\t * @param form object The form element containing your input fields.\n\t * @param data array JSON data to populate the fields with.\n\t * @param basename string Optional basename which is added to `name` attributes\n\t */\n\tvar populate = function( form, data, basename) {\n\n\t\tfor(var key in data) {\n\n\t\t\tif( ! data.hasOwnProperty( key ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar name = key;\n\t\t\tvar value = data[key];\n\n if ('undefined' === typeof value) {\n value = '';\n }\n\n if (null === value) {\n value = '';\n }\n\n\t\t\t// handle array name attributes\n\t\t\tif(typeof(basename) !== \"undefined\") {\n\t\t\t\tname = basename + \"[\" + key + \"]\";\n\t\t\t}\n\n\t\t\tif(value.constructor === Array) {\n\t\t\t\tname += '[]';\n\t\t\t} else if(typeof value == \"object\") {\n\t\t\t\tpopulate( form, value, name);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// only proceed if element is set\n\t\t\tvar element = form.elements.namedItem( name );\n\t\t\tif( ! element ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar type = element.type || element[0].type;\n\n\t\t\tswitch(type ) {\n\t\t\t\tdefault:\n\t\t\t\t\telement.value = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'radio':\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\tfor( var j=0; j < element.length; j++ ) {\n\t\t\t\t\t\telement[j].checked = ( value.indexOf(element[j].value) > -1 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select-multiple':\n\t\t\t\t\tvar values = value.constructor == Array ? value : [value];\n\n\t\t\t\t\tfor(var k = 0; k < element.options.length; k++) {\n\t\t\t\t\t\telement.options[k].selected |= (values.indexOf(element.options[k].value) > -1 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select':\n\t\t\t\tcase 'select-one':\n\t\t\t\t\telement.value = value.toString() || value;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':\n \t\t\t\telement.value = new Date(value).toISOString().split('T')[0];\t\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\t// Play nice with AMD, CommonJS or a plain global object.\n\tif ( typeof define == 'function' && typeof define.amd == 'object' && define.amd ) {\n\t\tdefine(function() {\n\t\t\treturn populate;\n\t\t});\n\t}\telse if ( typeof module !== 'undefined' && module.exports ) {\n\t\tmodule.exports = populate;\n\t} else {\n\t\troot.populate = populate;\n\t}\n\n}(this));\n\n},{}]},{},[1]);\n })();"]}