{"version":3,"sources":["svg4everybody.js","validate.js","nst.js"],"names":["root","factory","define","amd","svg4everybody","module","exports","this","embed","parent","svg","target","fragment","document","createDocumentFragment","viewBox","hasAttribute","getAttribute","setAttribute","clone","cloneNode","childNodes","length","appendChild","firstChild","rawopts","opts","Object","inIframe","window","top","self","polyfill","test","navigator","userAgent","match","requests","requestAnimationFrame","setTimeout","uses","getElementsByTagName","numberOfSvgUseElementsToBypass","oninterval","index","xhr","use","parentNode","node","nodeName","toLowerCase","src","attributeName","validate","removeChild","url","srcSplit","split","shift","id","join","XMLHttpRequest","open","send","_embeds","push","onreadystatechange","cachedDocument","readyState","_cachedDocument","implementation","createHTMLDocument","body","innerHTML","responseText","_cachedTarget","splice","map","item","getElementById","global","extend","extended","deep","i","arguments","prototype","toString","call","prop","obj","hasOwnProperty","addNoValidate","remove","forms","querySelectorAll","settings","selector","removeAttribute","blurHandler","event","error","form","matches","hasError","showError","removeError","clickHandler","type","submitHandler","hasErrors","fields","elements","disableSubmit","preventDefault","focus","onSubmit","defaults","fieldClass","errorClass","messageValueMissing","messageValueMissingCheckbox","messageValueMissingRadio","messageValueMissingSelect","messageValueMissingSelectMulti","messageTypeMismatchEmail","messageTypeMismatchURL","messageTooShort","messageTooLong","messagePatternMismatch","messageBadInput","messageStepMismatch","messageRangeOverflow","messageRangeUnderflow","messageGeneric","beforeShowError","afterShowError","beforeRemoveError","afterRemoveError","Element","msMatchesSelector","webkitMatchesSelector","field","options","localSettings","disabled","validity","valid","valueMissing","typeMismatch","tooShort","replace","value","tooLong","badInput","stepMismatch","rangeOverflow","rangeUnderflow","patternMismatch","classList","add","name","group","getElementsByName","label","message","querySelector","createElement","className","elem","insertBefore","nextSibling","style","display","visibility","destroy","removeEventListener","init","addEventListener","nst","log","console","bind","fixSafariBugCss","componentCss","contentCss","toggleSelector","collapsingCss","collapsedCss","expandingCss","expandedCss","eventNameTransitionEnd","$$","expr","context","slice","nextFrame","callback","getSlideToggleComponent","element","parentElement","contains","toggle","collapse","component","content","maxHeight","height","getBoundingClientRect","transitionEnd","propertyName","expand","BCR","initAll","config","isAutoInit","autoInit","allToggles","forEach","toggleElement","isManualInit","toggles","destroyAll"],"mappings":"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","file":"vendor.min.js","sourcesContent":["!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});","/*!\r\n * validate v2.2.0: A lightweight form validation script that augments native HTML5 form validation elements and attributes.\r\n * (c) 2018 Chris Ferdinandi\r\n * MIT License\r\n * http://github.com/cferdinandi/validate\r\n */\r\n\r\n(function (root, factory) {\r\n\tif ( typeof define === 'function' && define.amd ) {\r\n\t\tdefine([], factory(root));\r\n\t} else if ( typeof exports === 'object' ) {\r\n\t\tmodule.exports = factory(root);\r\n\t} else {\r\n\t\troot.validate = factory(root);\r\n\t}\r\n})(typeof global !== 'undefined' ? global : this.window || this.global, (function (root) {\r\n\r\n\t'use strict';\r\n\r\n\t//\r\n\t// Variables\r\n\t//\r\n\r\n\tvar validate = {}; // Object for public APIs\r\n\tvar settings;\r\n\r\n\t// Default settings\r\n\tvar defaults = {\r\n\r\n\t\t// Classes and Selectors\r\n\t\tselector: '[data-validate]',\r\n\t\tfieldClass: 'error',\r\n\t\terrorClass: 'error-message',\r\n\r\n\t\t// Messages\r\n\t\tmessageValueMissing: 'Please fill out this field.',\r\n\t\tmessageValueMissingCheckbox: 'This field is required.',\r\n\t\tmessageValueMissingRadio: 'Please select a value.',\r\n\t\tmessageValueMissingSelect: 'Please select a value.',\r\n\t\tmessageValueMissingSelectMulti: 'Please select at least one value.',\r\n\t\tmessageTypeMismatchEmail: 'Please enter an email address.',\r\n\t\tmessageTypeMismatchURL: 'Please enter a URL.',\r\n\t\tmessageTooShort: 'Please lengthen this text to {minLength} characters or more. You are currently using {length} characters.',\r\n\t\tmessageTooLong: 'Please shorten this text to no more than {maxLength} characters. You are currently using {length} characters.',\r\n\t\tmessagePatternMismatch: 'Please match the requested format.',\r\n\t\tmessageBadInput: 'Please enter a number.',\r\n\t\tmessageStepMismatch: 'Please select a valid value.',\r\n\t\tmessageRangeOverflow: 'Please select a value that is no more than {max}.',\r\n\t\tmessageRangeUnderflow: 'Please select a value that is no less than {min}.',\r\n\t\tmessageGeneric: 'The value you entered for this field is invalid.',\r\n\r\n\t\t// Form Submission\r\n\t\tdisableSubmit: false,\r\n\t\tonSubmit: function () {},\r\n\r\n\t\t// Callbacks\r\n\t\tbeforeShowError: function () {},\r\n\t\tafterShowError: function () {},\r\n\t\tbeforeRemoveError: function () {},\r\n\t\tafterRemoveError: function () {}\r\n\r\n\t};\r\n\r\n\r\n\t//\r\n\t// Methods\r\n\t//\r\n\r\n\t/**\r\n\t * Element.matches() polyfill (simple version)\r\n\t * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\r\n\t */\r\n\tif (!Element.prototype.matches) {\r\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n\t}\r\n\r\n\t/**\r\n\t * Feature test\r\n\t * @return {Boolean} Returns true if required methods and APIs are supported by the browser\r\n\t */\r\n\tvar supports = function () {\r\n\t\treturn 'querySelector' in document && 'addEventListener' in root;\r\n\t};\r\n\r\n\t/**\r\n\t * Merge two or more objects. Returns a new object.\r\n\t * @private\r\n\t * @param {Boolean} deep If true, do a deep (or recursive) merge [optional]\r\n\t * @param {Object} objects The objects to merge together\r\n\t * @returns {Object} Merged values of defaults and options\r\n\t */\r\n\tvar extend = function () {\r\n\r\n\t\t// Variables\r\n\t\tvar extended = {};\r\n\t\tvar deep = false;\r\n\t\tvar i = 0;\r\n\t\tvar length = arguments.length;\r\n\r\n\t\t// Check if a deep merge\r\n\t\tif ( Object.prototype.toString.call( arguments[0] ) === '[object Boolean]' ) {\r\n\t\t\tdeep = arguments[0];\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\t// Merge the object into the extended object\r\n\t\tvar merge = function (obj) {\r\n\t\t\tfor ( var prop in obj ) {\r\n\t\t\t\tif ( Object.prototype.hasOwnProperty.call( obj, prop ) ) {\r\n\t\t\t\t\t// If deep merge and property is an object, merge properties\r\n\t\t\t\t\tif ( deep && Object.prototype.toString.call(obj[prop]) === '[object Object]' ) {\r\n\t\t\t\t\t\textended[prop] = extend( true, extended[prop], obj[prop] );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\textended[prop] = obj[prop];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Loop through each object and conduct a merge\r\n\t\tfor ( ; i < length; i++ ) {\r\n\t\t\tvar obj = arguments[i];\r\n\t\t\tmerge(obj);\r\n\t\t}\r\n\r\n\t\treturn extended;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Get the closest matching element up the DOM tree.\r\n\t * @private\r\n\t * @param {Element} elem Starting element\r\n\t * @param {String} selector Selector to match against\r\n\t * @return {Boolean|Element} Returns null if not match found\r\n\t */\r\n\tvar getClosest = function ( elem, selector ) {\r\n\t\tfor ( ; elem && elem !== document; elem = elem.parentNode ) {\r\n\t\t\tif ( elem.matches( selector ) ) return elem;\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n\r\n\t/**\r\n\t * Validate a form field\r\n\t * @public\r\n\t * @param {Node} field The field to validate\r\n\t * @param {Object} options User options\r\n\t * @return {String} The error message\r\n\t */\r\n\tvalidate.hasError = function (field, options) {\r\n\r\n\t\t// Merge user options with existing settings or defaults\r\n\t\tvar localSettings = extend(settings || defaults, options || {});\r\n\r\n\t\t// Don't validate submits, buttons, file and reset inputs, and disabled fields\r\n\t\tif (field.disabled || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') return;\r\n\r\n\t\t// Get validity\r\n\t\tvar validity = field.validity;\r\n\r\n\t\t// If valid, return null\r\n\t\tif (validity.valid) return;\r\n\r\n\t\t// If field is required and empty\r\n\t\tif (validity.valueMissing) {\r\n\r\n\t\t\tif (field.type === 'checkbox') return localSettings.messageValueMissingCheckbox;\r\n\r\n\t\t\tif (field.type === 'radio') return localSettings.messageValueMissingRadio;\r\n\r\n\t\t\tif (field.type === 'select-multiple') return localSettings.messageValueMissingSelectMulti;\r\n\r\n\t\t\tif (field.type === 'select-one') return localSettings.messageValueMissingSelect;\r\n\r\n\t\t\treturn localSettings.messageValueMissing;\r\n\t\t}\r\n\r\n\t\t// If not the right type\r\n\t\tif (validity.typeMismatch) {\r\n\r\n\t\t\t// Email\r\n\t\t\tif (field.type === 'email') return localSettings.messageTypeMismatchEmail;\r\n\r\n\t\t\t// URL\r\n\t\t\tif (field.type === 'url') return localSettings.messageTypeMismatchURL;\r\n\r\n\t\t}\r\n\r\n\t\t// If too short\r\n\t\tif (validity.tooShort) return localSettings.messageTooShort.replace('{minLength}', field.getAttribute('minLength')).replace('{length}', field.value.length);\r\n\r\n\t\t// If too long\r\n\t\tif (validity.tooLong) return localSettings.messageTooLong.replace('{minLength}', field.getAttribute('maxLength')).replace('{length}', field.value.length);\r\n\r\n\t\t// If number input isn't a number\r\n\t\tif (validity.badInput) return localSettings.messageBadInput;\r\n\r\n\t\t// If a number value doesn't match the step interval\r\n\t\tif (validity.stepMismatch) return localSettings.messageStepMismatch;\r\n\r\n\t\t// If a number field is over the max\r\n\t\tif (validity.rangeOverflow) return localSettings.messageRangeOverflow.replace('{max}', field.getAttribute('max'));\r\n\r\n\t\t// If a number field is below the min\r\n\t\tif (validity.rangeUnderflow) return localSettings.messageRangeUnderflow.replace('{min}', field.getAttribute('min'));\r\n\r\n\t\t// If pattern doesn't match\r\n\t\tif (validity.patternMismatch) {\r\n\r\n\t\t\t// If pattern info is included, return custom error\r\n\t\t\tif (field.hasAttribute('title')) return field.getAttribute('title');\r\n\r\n\t\t\t// Otherwise, generic error\r\n\t\t\treturn localSettings.messagePatternMismatch;\r\n\r\n\t\t}\r\n\r\n\t\t// If all else fails, return a generic catchall error\r\n\t\treturn localSettings.messageGeneric;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Show an error message on a field\r\n\t * @public\r\n\t * @param {Node} field The field to show an error message for\r\n\t * @param {String} error The error message to show\r\n\t * @param {Object} options User options\r\n\t */\r\n\tvalidate.showError = function (field, error, options) {\r\n\r\n\t\t// Merge user options with existing settings or defaults\r\n\t\tvar localSettings = extend(settings || defaults, options || {});\r\n\r\n\t\t// Before show error callback\r\n\t\tlocalSettings.beforeShowError(field, error);\r\n\r\n\t\t// Add error class to field\r\n\t\tfield.classList.add(localSettings.fieldClass);\r\n\r\n\t\t// If the field is a radio button and part of a group, error all and get the last item in the group\r\n\t\tif (field.type === 'radio' && field.name) {\r\n\t\t\tvar group = document.getElementsByName(field.name);\r\n\t\t\tif (group.length > 0) {\r\n\t\t\t\tfor (var i = 0; i < group.length; i++) {\r\n\t\t\t\t\tif (group[i].form !== field.form) continue; // Only check fields in current form\r\n\t\t\t\t\tgroup[i].classList.add(localSettings.fieldClass);\r\n\t\t\t\t}\r\n\t\t\t\tfield = group[group.length - 1];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get field id or name\r\n\t\tvar id = field.id || field.name;\r\n\t\tif (!id) return;\r\n\r\n\t\t// Check if error message field already exists\r\n\t\t// If not, create one\r\n\t\tvar message = field.form.querySelector('.' + localSettings.errorClass + '#error-for-' + id );\r\n\t\tif (!message) {\r\n\t\t\tmessage = document.createElement('div');\r\n\t\t\tmessage.className = localSettings.errorClass;\r\n\t\t\tmessage.id = 'error-for-' + id;\r\n\r\n\t\t\t// If the field is a radio button or checkbox, insert error after the label\r\n\t\t\tvar label;\r\n\t\t\tif (field.type === 'radio' || field.type ==='checkbox') {\r\n\t\t\t\tlabel = field.form.querySelector('label[for=\"' + id + '\"]') || getClosest(field, 'label');\r\n\t\t\t\tif (label) {\r\n\t\t\t\t\tlabel.parentNode.insertBefore( message, label.nextSibling );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Otherwise, insert it after the field\r\n\t\t\tif (!label) {\r\n\t\t\t\tfield.parentNode.insertBefore( message, field.nextSibling );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add ARIA role to the field\r\n\t\tfield.setAttribute('aria-describedby', 'error-for-' + id);\r\n\r\n\t\t// Update error message\r\n\t\tmessage.innerHTML = error;\r\n\r\n\t\t// Remove any existing styles hiding the error message\r\n\t\tmessage.style.display = '';\r\n\t\tmessage.style.visibility = '';\r\n\r\n\t\t// After show error callback\r\n\t\tlocalSettings.afterShowError(field, error);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Remove an error message from a field\r\n\t * @public\r\n\t * @param {Node} field The field to remove the error from\r\n\t * @param {Object} options User options\r\n\t */\r\n\tvalidate.removeError = function (field, options) {\r\n\r\n\t\t// Merge user options with existing settings or defaults\r\n\t\tvar localSettings = extend(settings || defaults, options || {});\r\n\r\n\t\t// Before remove error callback\r\n\t\tlocalSettings.beforeRemoveError(field);\r\n\r\n\t\t// Remove ARIA role from the field\r\n\t\tfield.removeAttribute('aria-describedby');\r\n\r\n\t\t// Remove error class to field\r\n\t\tfield.classList.remove(localSettings.fieldClass);\r\n\r\n\t\t// If the field is a radio button and part of a group, remove error from all and get the last item in the group\r\n\t\tif (field.type === 'radio' && field.name) {\r\n\t\t\tvar group = document.getElementsByName(field.name);\r\n\t\t\tif (group.length > 0) {\r\n\t\t\t\tfor (var i = 0; i < group.length; i++) {\r\n\t\t\t\t\tif (group[i].form !== field.form) continue; // Only check fields in current form\r\n\t\t\t\t\tgroup[i].classList.remove(localSettings.fieldClass);\r\n\t\t\t\t}\r\n\t\t\t\tfield = group[group.length - 1];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get field id or name\r\n\t\tvar id = field.id || field.name;\r\n\t\tif (!id) return;\r\n\r\n\t\t// Check if an error message is in the DOM\r\n\t\tvar message = field.form.querySelector('.' + localSettings.errorClass + '#error-for-' + id + '');\r\n\t\tif (!message) return;\r\n\r\n\t\t// If so, hide it\r\n\t\tmessage.innerHTML = '';\r\n\t\tmessage.style.display = 'none';\r\n\t\tmessage.style.visibility = 'hidden';\r\n\r\n\t\t// After remove error callback\r\n\t\tlocalSettings.afterRemoveError(field);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Add the `novalidate` attribute to all forms\r\n\t * @private\r\n\t * @param {Boolean} remove If true, remove the `novalidate` attribute\r\n\t */\r\n\tvar addNoValidate = function (remove) {\r\n\t\tvar forms = document.querySelectorAll(settings.selector);\r\n\t\tfor (var i = 0; i < forms.length; i++) {\r\n\t\t\tif (remove) {\r\n\t\t\t\tforms[i].removeAttribute('novalidate');\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tforms[i].setAttribute('novalidate', true);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Check field validity when it loses focus\r\n\t * @private\r\n\t * @param {Event} event The blur event\r\n\t */\r\n\tvar blurHandler = function (event) {\r\n\r\n\t\t// Only run if the field is in a form to be validated\r\n\t\tif (!event.target.form || !event.target.form.matches(settings.selector)) return;\r\n\r\n\t\t// Validate the field\r\n\t\tvar error = validate.hasError(event.target);\r\n\r\n\t\t// If there's an error, show it\r\n\t\tif (error) {\r\n\t\t\tvalidate.showError(event.target, error);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Otherwise, remove any errors that exist\r\n\t\tvalidate.removeError(event.target);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Check radio and checkbox field validity when clicked\r\n\t * @private\r\n\t * @param {Event} event The click event\r\n\t */\r\n\tvar clickHandler = function (event) {\r\n\r\n\t\t// Only run if the field is in a form to be validated\r\n\t\tif (!event.target.form || !event.target.form.matches(settings.selector)) return;\r\n\r\n\t\t// Only run if the field is a checkbox or radio\r\n\t\tvar type = event.target.getAttribute('type');\r\n\t\tif (!(type === 'checkbox' || type === 'radio')) return;\r\n\r\n\t\t// Validate the field\r\n\t\tvar error = validate.hasError(event.target);\r\n\r\n\t\t// If there's an error, show it\r\n\t\tif (error) {\r\n\t\t\tvalidate.showError(event.target, error);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Otherwise, remove any errors that exist\r\n\t\tvalidate.removeError(event.target);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Check all fields on submit\r\n\t * @private\r\n\t * @param {Event} event The submit event\r\n\t */\r\n\tvar submitHandler = function (event) {\r\n\r\n\t\t// Only run on forms flagged for validation\r\n\t\tif (!event.target.matches(settings.selector)) return;\r\n\r\n\t\t// Get all of the form elements\r\n\t\tvar fields = event.target.elements;\r\n\r\n\t\t// Validate each field\r\n\t\t// Store the first field with an error to a variable so we can bring it into focus later\r\n\t\tvar hasErrors;\r\n\t\tfor (var i = 0; i < fields.length; i++) {\r\n\t\t\tvar error = validate.hasError(fields[i]);\r\n\t\t\tif (error) {\r\n\t\t\t\tvalidate.showError(fields[i], error);\r\n\t\t\t\tif (!hasErrors) {\r\n\t\t\t\t\thasErrors = fields[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Prevent form from submitting if there are errors or submission is disabled\r\n\t\tif (hasErrors || settings.disableSubmit) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\t// If there are errrors, focus on first element with error\r\n\t\tif (hasErrors) {\r\n\t\t\thasErrors.focus();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Otherwise, submit the form\r\n\t\tsettings.onSubmit(event.target, fields);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Destroy the current initialization.\r\n\t * @public\r\n\t */\r\n\tvalidate.destroy = function () {\r\n\r\n\t\t// If plugin isn't already initialized, stop\r\n\t\tif ( !settings ) return;\r\n\r\n\t\t// Remove event listeners\r\n\t\tdocument.removeEventListener('blur', blurHandler, true);\r\n\t\tdocument.removeEventListener('click', clickHandler, false);\r\n\t\tdocument.removeEventListener('submit', submitHandler, false);\r\n\r\n\t\t// Remove all errors\r\n\t\tvar fields = document.querySelectorAll(settings.errorClass);\r\n\t\tfor (var i = 0; i < fields.length; i++) {\r\n\t\t\tvalidate.removeError(fields[i]);\r\n\t\t}\r\n\r\n\t\t// Remove `novalidate` from forms\r\n\t\taddNoValidate(true);\r\n\r\n\t\t// Reset variables\r\n\t\tsettings = null;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Initialize Validate\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\tvalidate.init = function (options) {\r\n\r\n\t\t// feature test\r\n\t\tif (!supports()) return;\r\n\r\n\t\t// Destroy any existing initializations\r\n\t\tvalidate.destroy();\r\n\r\n\t\t// Merge user options with defaults\r\n\t\tsettings = extend(defaults, options || {});\r\n\r\n\t\t// Add the `novalidate` attribute to all forms\r\n\t\taddNoValidate();\r\n\r\n\t\t// Event listeners\r\n\t\tdocument.addEventListener('blur', blurHandler, true);\r\n\t\tdocument.addEventListener('click', clickHandler, true);\r\n\t\tdocument.addEventListener('submit', submitHandler, false);\r\n\r\n\t};\r\n\r\n\r\n\t//\r\n\t// Public APIs\r\n\t//\r\n\r\n\treturn validate;\r\n\r\n}));","/*!\r\n * native slide toggle 1.1.3\r\n * https://github.com/kunukn/native-slide-toggle/\r\n *\r\n * Copyright Kunuk Nykjaer\r\n * Released under the MIT license\r\n */\r\n\r\n/* global define, exports: true, module*/\r\n(function(root, factory) {\r\n 'use strict';\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define('nst', factory);\r\n } else if (typeof exports === 'object') {\r\n exports = module.exports = factory();\r\n } else {\r\n root.nst = factory();\r\n }\r\n})(this, function() {\r\n\r\n 'use strict';\r\n\r\n var log = console.log.bind(console),\r\n error = console.error.bind(console);\r\n\r\n var fixSafariBugCss = 'nst-fix-safari-bug',\r\n componentCss = 'nst-component',\r\n manualInitCss = 'nst-manual-init',\r\n contentCss = 'nst-content',\r\n toggleSelector = '.nst-toggle',\r\n collapsingCss = 'nst-is-collapsing',\r\n collapsedCss = 'nst-is-collapsed',\r\n expandingCss = 'nst-is-expanding',\r\n expandedCss = 'nst-is-expanded',\r\n eventNameTransitionEnd = 'transitionend';\r\n\r\n function $$(expr, context) {\r\n return [].slice.call((context || document).querySelectorAll(expr), 0);\r\n }\r\n\r\n function rAF(callback) {\r\n window.requestAnimationFrame(callback);\r\n }\r\n\r\n function nextFrame(callback) {\r\n window.requestAnimationFrame(function() {\r\n window.requestAnimationFrame(callback);\r\n });\r\n }\r\n\r\n function getSlideToggleComponent(element) {\r\n var root = element;\r\n while (root) {\r\n root = root.parentElement;\r\n if (root && root.classList.contains(componentCss)) {\r\n return root;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n function toggle(event) {\r\n\r\n function collapse(component, content) {\r\n\r\n component.classList.add(collapsingCss);\r\n\r\n function transitionEnd(event) {\r\n if (event.propertyName === 'max-height') {\r\n if (component.classList.contains(collapsingCss)) {\r\n component.classList.remove(collapsingCss);\r\n component.classList.add(collapsedCss);\r\n }\r\n\r\n content.removeEventListener(eventNameTransitionEnd, transitionEnd, false);\r\n }\r\n }\r\n\r\n content.classList.add(fixSafariBugCss);\r\n\r\n content.style.maxHeight = 'none';\r\n var BCR = content.getBoundingClientRect(),\r\n height = BCR.height;\r\n\r\n if (height === 0) {\r\n content.classList.remove(fixSafariBugCss);\r\n return;\r\n }\r\n\r\n content.style.maxHeight = height + 'px';\r\n\r\n content.addEventListener(eventNameTransitionEnd, transitionEnd, false);\r\n\r\n nextFrame(function() {\r\n content.classList.remove(fixSafariBugCss);\r\n content.style.maxHeight = '0px';\r\n });\r\n }\r\n\r\n function expand(component, content) {\r\n nextFrame(function() {\r\n\r\n component.classList.add(expandingCss);\r\n\r\n function transitionEnd(event) {\r\n if (event.propertyName === 'max-height') {\r\n\r\n if (component.classList.contains(expandingCss)) {\r\n component.classList.remove(expandingCss);\r\n component.classList.add(expandedCss);\r\n\r\n content.classList.add(fixSafariBugCss);\r\n\r\n content.style.maxHeight = '';\r\n nextFrame(function() {\r\n content.classList.remove(fixSafariBugCss);\r\n });\r\n }\r\n\r\n content.removeEventListener(eventNameTransitionEnd, transitionEnd, false);\r\n }\r\n }\r\n\r\n content.classList.add(fixSafariBugCss);\r\n\r\n content.style.maxHeight = 'none';\r\n\r\n var BCR = content.getBoundingClientRect();\r\n\r\n content.style.maxHeight = '0px';\r\n\r\n content.addEventListener(eventNameTransitionEnd, transitionEnd, false);\r\n\r\n rAF(function() {\r\n content.classList.remove(fixSafariBugCss);\r\n content.style.maxHeight = BCR.height + 'px';\r\n });\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n var toggle = event.target,\r\n component = getSlideToggleComponent(toggle);\r\n\r\n if (!component) {\r\n error('nst: the markup is wrong, nst-component css class is missing');\r\n return;\r\n }\r\n\r\n if (component.classList.contains(collapsingCss) || component.classList.contains(expandingCss)) {\r\n\r\n log('nst: skipped action because still animating');\r\n return;\r\n }\r\n\r\n var content = component.querySelector('.' + contentCss);\r\n\r\n if (!content) {\r\n error('nst: the markup is wrong, nst-content css class is missing');\r\n return;\r\n }\r\n\r\n component.classList.remove(expandingCss);\r\n component.classList.remove(collapsingCss);\r\n\r\n if (component.classList.contains(collapsedCss)) {\r\n component.classList.remove(collapsedCss);\r\n expand(component, content);\r\n } else {\r\n component.classList.remove(expandedCss);\r\n collapse(component, content);\r\n }\r\n }\r\n\r\n function destroy(component) {\r\n if (component) {\r\n var toggles = $$(toggleSelector, component);\r\n if (toggles && toggles.length) {\r\n toggles.forEach(function(toggleElement) {\r\n toggleElement.removeEventListener('click', toggle);\r\n });\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function destroyAll() {\r\n var allToggles = $$(toggleSelector);\r\n if (allToggles && allToggles.length) {\r\n allToggles.forEach(function(toggleElement) {\r\n toggleElement.removeEventListener('click', toggle);\r\n });\r\n }\r\n return this;\r\n }\r\n\r\n function init(component) {\r\n if (component) {\r\n if (component.classList.contains(collapsedCss)) {\r\n // if init with collapsed state, then set required maxHeight\r\n component.querySelector('.' + contentCss).style.maxHeight = '0px';\r\n }\r\n\r\n var toggles = $$(toggleSelector, component);\r\n toggles.forEach(function(toggleElement) {\r\n toggleElement.addEventListener('click', toggle);\r\n });\r\n }\r\n return this;\r\n }\r\n\r\n function initAll(config) {\r\n\r\n var isAutoInit = config && config.autoInit,\r\n component, allToggles = $$(toggleSelector);\r\n\r\n if (config && config.log) {\r\n log(config.log);\r\n }\r\n\r\n allToggles.forEach(function(toggleElement) {\r\n\r\n component = getSlideToggleComponent(toggleElement);\r\n\r\n if (!component) {\r\n error('nst component not found: ' + component);\r\n return this;\r\n }\r\n\r\n var isManualInit = component.classList.contains(manualInitCss),\r\n skip = isAutoInit && isManualInit;\r\n\r\n if (!skip) {\r\n if (component.classList.contains(collapsedCss)) {\r\n // if init with collapsed state, then set required maxHeight\r\n component.querySelector('.' + contentCss).style.maxHeight = '0px';\r\n }\r\n\r\n toggleElement.addEventListener('click', toggle);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n initAll({ autoInit: true });\r\n\r\n return {\r\n init: init,\r\n initAll: initAll,\r\n destroy: destroy,\r\n destroyAll: destroyAll\r\n };\r\n\r\n});"]}