{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/classlist-polyfill/src/index.js","uswds.js","node_modules/lodash.debounce/index.js","src/js/components/accordion.js","src/js/components/banner.js","src/js/components/footer.js","src/js/components/navigation.js","src/js/components/search.js","src/js/components/toggle-field-mask.js","src/js/components/toggle-form-input.js","src/js/components/validator.js","src/js/initializers/accordions.js","src/js/initializers/banner.js","src/js/initializers/footer.js","src/js/initializers/forms.js","src/js/initializers/navigation.js","src/js/initializers/polyfills.js","src/js/initializers/search.js","src/js/initializers/skip-nav.js","src/js/polyfills/element-hidden.js","src/js/start.js","src/js/utils/dispatch.js","src/js/utils/select.js","src/js/utils/when-dom-ready.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","window","self","document","createElement","createElementNS","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","prototype","token","len","arguments","this","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","tokens","updated","remove","index","splice","result","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","number","__defineGetter__","2","global","debounce","func","wait","options","invokeFunc","time","args","lastArgs","thisArg","lastThis","undefined","lastInvokeTime","apply","leadingEdge","timerId","setTimeout","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","trailing","cancel","clearTimeout","flush","debounced","isInvoking","TypeError","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","value","isObjectLike","isSymbol","objectToString","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","slice","reIsBadHex","parseInt","freeGlobal","freeSelf","root","Function","objectProto","Math","max","min","Date","3","showPanelListener","el","ev","expanded","hideAll","show","Accordion","buttons","select","forEach","attachEvent","bind","addEventListener","$","selector","hide","button","content","../utils/select","4","bannerClickHandler","event","preventDefault","returnValue","bannerInit","banners","banner","bannerClick","dispatch","../utils/dispatch","5","getSiblings","parentNode","firstChild","matches","nodeType","nextSibling","panelToShow","otherPanels","events","navList","primaryLink","off","innerWidth","6","handleNavElements","toggleElements","navCloseElement","element","body","focus","navInit","navElements","dispatchers","map","clickEvent","navOff","pop","documentElement","7","searchButtonClickHandler","searchForm","hidden","closeSearch","openSearch","deactivateDispatcher","searchOpenClickHandler","searchFormContains","target","VISUALLY_HIDDEN","input","querySelector","searchButton","searchButtonContainer","searchInit","activateDispatcher","searchOff","8","fields","mask","field","9","getSelectors","selectors","selectorsList","getFormParent","tagName","toggleFieldMask","toggleFormInput","showText","hideText","defaultSelectors","outerHTML","fieldSelector","formElement","masked","toggleClickListener","textContent","./toggle-field-mask","10","getData","hasAttributes","data","attrs","attributes","match","validate","key","startsWith","validatorName","validatorPattern","RegExp","validatorSelector","validatorCheckbox","checkList","checked","validationelement","11","whenDOMReady","accordions","../components/accordion","../utils/when-dom-ready","12","../components/banner","13","footerAccordion","../components/footer","lodash.debounce","14","validator","elShowPassword","elFormInput","elValidator","../components/toggle-form-input","../components/validator","15","../components/navigation","16","callback","T","k","O","kValue","oThis","aArgs","fToBind","fNOP","fBound","concat","../polyfills/element-hidden","classlist-polyfill","17","../components/search","18","elSkipnav","elMainContent","19","elproto","HTMLElement","HIDDEN","hasAttribute","set","removeAttribute","20","./initializers/accordions","./initializers/banner","./initializers/footer","./initializers/forms","./initializers/navigation","./initializers/polyfills","./initializers/search","./initializers/skip-nav","21","eventTypes","listener","eventTypeArray","attach","d","trigger","fakeEvent","createEvent","initEvent","dispatchEvent","createEventObject","eventType","fireEvent","detach","detachEvent","removeEventListener","22","isElement","context","selection","querySelectorAll","23","isFunction","arg","cb","readyState"],"mappings":"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","file":"uswds.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 2014-07-23\n *\n * By Eli Grey, http://eligrey.com\n * Public Domain.\n * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/\n\n/* Copied from MDN:\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/classList\n */\n\nif (\"document\" in window.self) {\n\n // Full polyfill for browsers with no classList support\n // Including IE < Edge missing SVGElement.classList\n if (!(\"classList\" in document.createElement(\"_\"))\n || document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n (function (view) {\n\n \"use strict\";\n\n if (!('Element' in view)) return;\n\n var\n classListProp = \"classList\"\n , protoProp = \"prototype\"\n , elemCtrProto = view.Element[protoProp]\n , objCtr = Object\n , strTrim = String[protoProp].trim || function () {\n return this.replace(/^\\s+|\\s+$/g, \"\");\n }\n , arrIndexOf = Array[protoProp].indexOf || function (item) {\n var\n i = 0\n , len = this.length\n ;\n for (; i < len; i++) {\n if (i in this && this[i] === item) {\n return i;\n }\n }\n return -1;\n }\n // Vendors: please allow content code to instantiate DOMExceptions\n , DOMEx = function (type, message) {\n this.name = type;\n this.code = DOMException[type];\n this.message = message;\n }\n , checkTokenAndGetIndex = function (classList, token) {\n if (token === \"\") {\n throw new DOMEx(\n \"SYNTAX_ERR\"\n , \"An invalid or illegal string was specified\"\n );\n }\n if (/\\s/.test(token)) {\n throw new DOMEx(\n \"INVALID_CHARACTER_ERR\"\n , \"String contains an invalid character\"\n );\n }\n return arrIndexOf.call(classList, token);\n }\n , ClassList = function (elem) {\n var\n trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n , classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n , i = 0\n , len = classes.length\n ;\n for (; i < len; i++) {\n this.push(classes[i]);\n }\n this._updateClassName = function () {\n elem.setAttribute(\"class\", this.toString());\n };\n }\n , classListProto = ClassList[protoProp] = []\n , classListGetter = function () {\n return new ClassList(this);\n }\n ;\n // Most DOMException implementations don't allow calling DOMException's toString()\n // on non-DOMExceptions. Error's toString() is sufficient here.\n DOMEx[protoProp] = Error[protoProp];\n classListProto.item = function (i) {\n return this[i] || null;\n };\n classListProto.contains = function (token) {\n token += \"\";\n return checkTokenAndGetIndex(this, token) !== -1;\n };\n classListProto.add = function () {\n var\n tokens = arguments\n , i = 0\n , l = tokens.length\n , token\n , updated = false\n ;\n do {\n token = tokens[i] + \"\";\n if (checkTokenAndGetIndex(this, token) === -1) {\n this.push(token);\n updated = true;\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n classListProto.remove = function () {\n var\n tokens = arguments\n , i = 0\n , l = tokens.length\n , token\n , updated = false\n , index\n ;\n do {\n token = tokens[i] + \"\";\n index = checkTokenAndGetIndex(this, token);\n while (index !== -1) {\n this.splice(index, 1);\n updated = true;\n index = checkTokenAndGetIndex(this, token);\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n classListProto.toggle = function (token, force) {\n token += \"\";\n\n var\n result = this.contains(token)\n , method = result ?\n force !== true && \"remove\"\n :\n force !== false && \"add\"\n ;\n\n if (method) {\n this[method](token);\n }\n\n if (force === true || force === false) {\n return force;\n } else {\n return !result;\n }\n };\n classListProto.toString = function () {\n return this.join(\" \");\n };\n\n if (objCtr.defineProperty) {\n var classListPropDesc = {\n get: classListGetter\n , enumerable: true\n , configurable: true\n };\n try {\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n } catch (ex) { // IE 8 doesn't support enumerable:true\n if (ex.number === -0x7FF5EC54) {\n classListPropDesc.enumerable = false;\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n }\n }\n } else if (objCtr[protoProp].__defineGetter__) {\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\n }\n\n }(window.self));\n\n } else {\n // There is full or partial native classList support, so just check if we need\n // to normalize the add/remove and toggle APIs.\n\n (function () {\n \"use strict\";\n\n var testElement = document.createElement(\"_\");\n\n testElement.classList.add(\"c1\", \"c2\");\n\n // Polyfill for IE 10/11 and Firefox <26, where classList.add and\n // classList.remove exist but support only one argument at a time.\n if (!testElement.classList.contains(\"c2\")) {\n var createMethod = function(method) {\n var original = DOMTokenList.prototype[method];\n\n DOMTokenList.prototype[method] = function(token) {\n var i, len = arguments.length;\n\n for (i = 0; i < len; i++) {\n token = arguments[i];\n original.call(this, token);\n }\n };\n };\n createMethod('add');\n createMethod('remove');\n }\n\n testElement.classList.toggle(\"c3\", false);\n\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n // support the second argument.\n if (testElement.classList.contains(\"c3\")) {\n var _toggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function(token, force) {\n if (1 in arguments && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n\n }\n\n testElement = null;\n }());\n }\n}\n","(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n/*\n * classList.js: Cross-browser full element.classList implementation.\n * 2014-07-23\n *\n * By Eli Grey, http://eligrey.com\n * Public Domain.\n * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/\n\n/* Copied from MDN:\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/classList\n */\n\nif (\"document\" in window.self) {\n\n // Full polyfill for browsers with no classList support\n // Including IE < Edge missing SVGElement.classList\n if (!(\"classList\" in document.createElement(\"_\"))\n || document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n (function (view) {\n\n \"use strict\";\n\n if (!('Element' in view)) return;\n\n var\n classListProp = \"classList\"\n , protoProp = \"prototype\"\n , elemCtrProto = view.Element[protoProp]\n , objCtr = Object\n , strTrim = String[protoProp].trim || function () {\n return this.replace(/^\\s+|\\s+$/g, \"\");\n }\n , arrIndexOf = Array[protoProp].indexOf || function (item) {\n var\n i = 0\n , len = this.length\n ;\n for (; i < len; i++) {\n if (i in this && this[i] === item) {\n return i;\n }\n }\n return -1;\n }\n // Vendors: please allow content code to instantiate DOMExceptions\n , DOMEx = function (type, message) {\n this.name = type;\n this.code = DOMException[type];\n this.message = message;\n }\n , checkTokenAndGetIndex = function (classList, token) {\n if (token === \"\") {\n throw new DOMEx(\n \"SYNTAX_ERR\"\n , \"An invalid or illegal string was specified\"\n );\n }\n if (/\\s/.test(token)) {\n throw new DOMEx(\n \"INVALID_CHARACTER_ERR\"\n , \"String contains an invalid character\"\n );\n }\n return arrIndexOf.call(classList, token);\n }\n , ClassList = function (elem) {\n var\n trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n , classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n , i = 0\n , len = classes.length\n ;\n for (; i < len; i++) {\n this.push(classes[i]);\n }\n this._updateClassName = function () {\n elem.setAttribute(\"class\", this.toString());\n };\n }\n , classListProto = ClassList[protoProp] = []\n , classListGetter = function () {\n return new ClassList(this);\n }\n ;\n // Most DOMException implementations don't allow calling DOMException's toString()\n // on non-DOMExceptions. Error's toString() is sufficient here.\n DOMEx[protoProp] = Error[protoProp];\n classListProto.item = function (i) {\n return this[i] || null;\n };\n classListProto.contains = function (token) {\n token += \"\";\n return checkTokenAndGetIndex(this, token) !== -1;\n };\n classListProto.add = function () {\n var\n tokens = arguments\n , i = 0\n , l = tokens.length\n , token\n , updated = false\n ;\n do {\n token = tokens[i] + \"\";\n if (checkTokenAndGetIndex(this, token) === -1) {\n this.push(token);\n updated = true;\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n classListProto.remove = function () {\n var\n tokens = arguments\n , i = 0\n , l = tokens.length\n , token\n , updated = false\n , index\n ;\n do {\n token = tokens[i] + \"\";\n index = checkTokenAndGetIndex(this, token);\n while (index !== -1) {\n this.splice(index, 1);\n updated = true;\n index = checkTokenAndGetIndex(this, token);\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n classListProto.toggle = function (token, force) {\n token += \"\";\n\n var\n result = this.contains(token)\n , method = result ?\n force !== true && \"remove\"\n :\n force !== false && \"add\"\n ;\n\n if (method) {\n this[method](token);\n }\n\n if (force === true || force === false) {\n return force;\n } else {\n return !result;\n }\n };\n classListProto.toString = function () {\n return this.join(\" \");\n };\n\n if (objCtr.defineProperty) {\n var classListPropDesc = {\n get: classListGetter\n , enumerable: true\n , configurable: true\n };\n try {\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n } catch (ex) { // IE 8 doesn't support enumerable:true\n if (ex.number === -0x7FF5EC54) {\n classListPropDesc.enumerable = false;\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n }\n }\n } else if (objCtr[protoProp].__defineGetter__) {\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\n }\n\n }(window.self));\n\n } else {\n // There is full or partial native classList support, so just check if we need\n // to normalize the add/remove and toggle APIs.\n\n (function () {\n \"use strict\";\n\n var testElement = document.createElement(\"_\");\n\n testElement.classList.add(\"c1\", \"c2\");\n\n // Polyfill for IE 10/11 and Firefox <26, where classList.add and\n // classList.remove exist but support only one argument at a time.\n if (!testElement.classList.contains(\"c2\")) {\n var createMethod = function(method) {\n var original = DOMTokenList.prototype[method];\n\n DOMTokenList.prototype[method] = function(token) {\n var i, len = arguments.length;\n\n for (i = 0; i < len; i++) {\n token = arguments[i];\n original.call(this, token);\n }\n };\n };\n createMethod('add');\n createMethod('remove');\n }\n\n testElement.classList.toggle(\"c3\", false);\n\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n // support the second argument.\n if (testElement.classList.contains(\"c3\")) {\n var _toggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function(token, force) {\n if (1 in arguments && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n\n }\n\n testElement = null;\n }());\n }\n}\n\n},{}],2:[function(require,module,exports){\n(function (global){\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],3:[function(require,module,exports){\nvar select = require('../utils/select');\n\n/**\n * @name showPanelListener\n * @desc The event handler for clicking on a button in an accordion.\n * @param {HTMLElement} el - An HTML element most likely a <button>.\n * @param {Object} ev - A DOM event object.\n */\nfunction showPanelListener (el, ev) {\n var expanded = el.getAttribute('aria-expanded') === 'true';\n this.hideAll();\n if (!expanded) {\n this.show(el);\n }\n return false;\n}\n\n/**\n * @class Accordion\n *\n * An accordion component.\n *\n * @param {HTMLElement} el An HTMLElement to turn into an accordion.\n */\nfunction Accordion (el) {\n var self = this;\n this.root = el;\n\n // delegate click events on each <button>\n var buttons = select('button', this.root);\n buttons.forEach(function (el) {\n if (el.attachEvent) {\n el.attachEvent('onclick', showPanelListener.bind(self, el));\n } else {\n el.addEventListener('click', showPanelListener.bind(self, el));\n }\n });\n\n // find the first expanded button\n var expanded = this.$('button[aria-expanded=true]')[ 0 ];\n this.hideAll();\n if (expanded !== undefined) {\n this.show(expanded);\n }\n}\n\n/**\n * @param {String} selector\n * @return {Array}\n */\nAccordion.prototype.$ = function (selector) {\n return select(selector, this.root);\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.hide = function (button) {\n var selector = button.getAttribute('aria-controls'),\n content = this.$('#' + selector)[ 0 ];\n\n button.setAttribute('aria-expanded', false);\n content.setAttribute('aria-hidden', true);\n return this;\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.show = function (button) {\n var selector = button.getAttribute('aria-controls'),\n content = this.$('#' + selector)[ 0 ];\n\n button.setAttribute('aria-expanded', true);\n content.setAttribute('aria-hidden', false);\n return this;\n};\n\n/**\n * @return {Accordion}\n */\nAccordion.prototype.hideAll = function () {\n var self = this;\n var buttons = this.$('ul > li > button, .usa-accordion-button');\n buttons.forEach(function (button) {\n self.hide(button);\n });\n return this;\n};\n\nmodule.exports = Accordion;\n\n},{\"../utils/select\":22}],4:[function(require,module,exports){\nvar select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nfunction bannerClickHandler (event) {\n (event.preventDefault) ? event.preventDefault() : event.returnValue = false;\n\n this.classList.toggle('usa-banner-header-expanded');\n}\n\nfunction bannerInit () {\n var banners = select('.usa-banner-header');\n\n banners.forEach(function (banner) {\n var bannerClick = bannerClickHandler.bind(banner);\n select('[aria-controls]', banner).forEach(function (button) {\n dispatch(button, 'click', bannerClick);\n });\n });\n}\n\nmodule.exports = bannerInit;\n\n},{\"../utils/dispatch\":21,\"../utils/select\":22}],5:[function(require,module,exports){\nvar select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nfunction getSiblings (el) {\n var n = el.parentNode.firstChild;\n var matches = [];\n\n while (n) {\n if (n.nodeType == 1 && n != el) {\n matches.push(n);\n }\n n = n.nextSibling;\n }\n\n return matches;\n}\n\nvar showPanelListener = function () {\n var panelToShow = this.parentNode;\n var otherPanels = getSiblings(panelToShow);\n panelToShow.classList.remove('hidden');\n otherPanels.forEach(function (el) {\n el.classList.add('hidden');\n });\n};\n\nvar events = [];\n\nmodule.exports = function footerAccordion () {\n\n var navList = select('.usa-footer-big nav ul');\n var primaryLink = select('.usa-footer-big nav .usa-footer-primary-link');\n\n if (events.length) {\n events.forEach(function (e) {\n e.off();\n });\n events = [];\n }\n\n if (window.innerWidth < 600) {\n\n navList.forEach(function (el) {\n el.classList.add('hidden');\n });\n\n primaryLink.forEach(function (el) {\n events.push(\n dispatch(el, 'click', showPanelListener)\n );\n });\n\n } else {\n navList.forEach(function (el) {\n el.classList.remove('hidden');\n });\n }\n};\n\n},{\"../utils/dispatch\":21,\"../utils/select\":22}],6:[function(require,module,exports){\nvar select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nvar clickEvent = ('ontouchstart' in document.documentElement ? 'touchstart' : 'click');\nvar dispatchers = [];\n\nfunction handleNavElements (e) {\n\n var toggleElements = select('.usa-overlay, .usa-nav');\n var navCloseElement = select('.usa-nav-close')[ 0 ];\n\n toggleElements.forEach(function (element) {\n element.classList.toggle('is-visible');\n });\n\n document.body.classList.toggle('usa-mobile_nav-active');\n navCloseElement.focus();\n\n return false;\n}\n\nfunction navInit () {\n var navElements = select('.usa-menu-btn, .usa-overlay, .usa-nav-close');\n\n dispatchers = navElements.map(function (element) {\n return dispatch(element, clickEvent, handleNavElements);\n });\n}\n\nfunction navOff () {\n while (dispatchers.length) {\n dispatchers.pop().off();\n }\n}\n\nmodule.exports = navInit;\nmodule.exports.off = navOff;\n\n},{\"../utils/dispatch\":21,\"../utils/select\":22}],7:[function(require,module,exports){\nvar select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nvar VISUALLY_HIDDEN = 'usa-sr-only';\n\nvar clickEvent = ('ontouchstart' in document.documentElement)\n ? 'touchstart'\n : 'click';\n\nvar searchForm;\nvar searchButton;\nvar searchButtonContainer;\n\nvar activateDispatcher;\nvar deactivateDispatcher;\n\nfunction searchButtonClickHandler (event) {\n if (searchForm.hidden) {\n closeSearch();\n } else {\n openSearch();\n deactivateDispatcher = dispatch(document.body, clickEvent, searchOpenClickHandler);\n }\n\n return false;\n}\n\nfunction searchOpenClickHandler (event) {\n if (! searchFormContains(event.target)) {\n closeSearch();\n deactivateDispatcher.off();\n deactivateDispatcher = undefined;\n }\n}\n\nfunction openSearch () {\n searchForm.classList.remove(VISUALLY_HIDDEN);\n var input = searchForm.querySelector('[type=search]');\n if (input) {\n input.focus();\n }\n searchButton.hidden = true;\n}\n\nfunction closeSearch () {\n searchForm.classList.add(VISUALLY_HIDDEN);\n searchButton.hidden = false;\n}\n\nfunction searchFormContains (element) {\n return (searchForm && searchForm.contains(element)) ||\n (searchButtonContainer && searchButtonContainer.contains(element));\n}\n\nfunction searchInit () {\n searchForm = select('.js-search-form')[ 0 ];\n searchButton = select('.js-search-button')[ 0 ];\n searchButtonContainer = select('.js-search-button-container')[ 0 ];\n\n if (searchButton && searchForm) {\n closeSearch();\n activateDispatcher = dispatch(searchButton, clickEvent, searchButtonClickHandler);\n }\n}\n\nfunction searchOff () {\n if (activateDispatcher) {\n activateDispatcher.off();\n }\n if (deactivateDispatcher) {\n deactivateDispatcher.off();\n }\n}\n\nmodule.exports = searchInit;\nmodule.exports.off = searchOff;\n\n},{\"../utils/dispatch\":21,\"../utils/select\":22}],8:[function(require,module,exports){\n/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = function (fields, mask) {\n fields.forEach(function (field) {\n field.setAttribute('autocapitalize', 'off');\n field.setAttribute('autocorrect', 'off');\n field.setAttribute('type', mask ? 'password' : 'text');\n });\n};\n\n},{}],9:[function(require,module,exports){\nvar toggleFieldMask = require('./toggle-field-mask');\nvar select = require('../utils/select');\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @param {String} showText Button text shown when field is masked\n * @param {String} hideText Button text show when field is unmasked\n * @return {}\n */\nvar toggleFormInput = function (el, showText, hideText) {\n var defaultSelectors = el.getAttribute('aria-controls');\n\n if (!defaultSelectors || defaultSelectors.trim().length === 0) {\n throw new Error('Did you forget to define selectors in the aria-controls attribute? Check element ' + el.outerHTML);\n }\n\n var fieldSelector = getSelectors(defaultSelectors);\n var formElement = getFormParent(el);\n if (!formElement) {\n throw new Error('toggleFormInput() needs the supplied element to be inside a <form>. Check element ' + el.outerHTML);\n }\n var fields = select(fieldSelector, formElement);\n var masked = false;\n\n var toggleClickListener = function (ev) {\n ev.preventDefault();\n toggleFieldMask(fields, masked);\n el.textContent = masked ? showText : hideText;\n masked = !masked;\n };\n\n if (el.attachEvent) {\n el.attachEvent('onclick', toggleClickListener);\n } else {\n el.addEventListener('click', toggleClickListener);\n }\n};\n\n/**\n * Helper function to turn a string of ids into valid selectors\n * @param {String} selectors Space separated list of ids of fields to be masked\n * @return {String} Comma separated list of selectors\n */\nfunction getSelectors (selectors) {\n var selectorsList = selectors.split(' ');\n\n return selectorsList.map(function (selector) {\n return '#' + selector;\n }).join(', ');\n}\n\n/**\n * Searches up the tree from the element to find a Form element, and returns it,\n * or null if no Form is found\n * @param {HTMLElement} el - Child element to start search\n */\nfunction getFormParent (el) {\n while (el && el.tagName !== 'FORM') {\n el = el.parentNode;\n }\n return el;\n}\n\nmodule.exports = toggleFormInput;\n\n},{\"../utils/select\":22,\"./toggle-field-mask\":8}],10:[function(require,module,exports){\nvar select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nmodule.exports = function validator (el) {\n var data = getData(el);\n var key;\n var validatorName;\n var validatorPattern;\n var validatorCheckbox;\n var checkList = select(data.validationelement)[ 0 ];\n\n function validate () {\n for (key in data) {\n if (key.startsWith('validate')) {\n validatorName = key.split('validate')[ 1 ];\n validatorPattern = new RegExp(data[ key ]);\n validatorSelector = '[data-validator=' + validatorName + ']';\n validatorCheckbox = select(validatorSelector, checkList)[ 0 ];\n\n var checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle('usa-checklist-checked', checked);\n }\n }\n }\n\n dispatch(el, 'keyup', validate);\n};\n\n/**\n * Extracts attributes named with the pattern \"data-[NAME]\" from a given\n * HTMLElement, then returns an object populated with the NAME/value pairs.\n * Any hyphens in NAME are removed.\n * @param {HTMLElement} el\n * @return {Object}\n */\n\nfunction getData (el) {\n if (!el.hasAttributes()) return;\n var data = {};\n var attrs = el.attributes;\n for (var i = attrs.length - 1; i >= 0; i--) {\n var matches = attrs[ i ].name.match(/data-(.*)/i);\n if (matches && matches[ 1 ]) {\n var name = matches[ 1 ].replace(/-/, '');\n data[ name ] = attrs[ i ].value;\n }\n }\n return data;\n}\n\n},{\"../utils/dispatch\":21,\"../utils/select\":22}],11:[function(require,module,exports){\nvar select = require('../utils/select');\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar Accordion = require('../components/accordion');\n\nwhenDOMReady(function initAccordions () {\n\n var accordions = select('.usa-accordion, .usa-accordion-bordered');\n accordions.forEach(function (el) {\n new Accordion(el);\n });\n});\n\n},{\"../components/accordion\":3,\"../utils/select\":22,\"../utils/when-dom-ready\":23}],12:[function(require,module,exports){\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar bannerInit = require('../components/banner');\n\nwhenDOMReady(function () {\n\n bannerInit();\n\n});\n\n\n},{\"../components/banner\":4,\"../utils/when-dom-ready\":23}],13:[function(require,module,exports){\nvar debounce = require('lodash.debounce');\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar dispatch = require('../utils/dispatch');\nvar footerAccordion = require('../components/footer');\n\nwhenDOMReady(function () {\n\n footerAccordion();\n\n dispatch(window, 'resize', debounce(footerAccordion, 180));\n\n});\n\n},{\"../components/footer\":5,\"../utils/dispatch\":21,\"../utils/when-dom-ready\":23,\"lodash.debounce\":2}],14:[function(require,module,exports){\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar select = require('../utils/select');\nvar validator = require('../components/validator');\nvar toggleFormInput = require('../components/toggle-form-input');\n\nwhenDOMReady(function () {\n var elShowPassword = select('.usa-show_password')[ 0 ];\n var elFormInput = select('.usa-show_multipassword')[ 0 ];\n var elValidator = select('.js-validate_password')[ 0 ];\n\n elShowPassword && toggleFormInput(elShowPassword, 'Show Password', 'Hide Password');\n elFormInput && toggleFormInput(elFormInput, 'Show my typing', 'Hide my typing');\n elValidator && validator(elValidator);\n});\n\n\n},{\"../components/toggle-form-input\":9,\"../components/validator\":10,\"../utils/select\":22,\"../utils/when-dom-ready\":23}],15:[function(require,module,exports){\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar navInit = require('../components/navigation');\n\nwhenDOMReady(navInit);\n\n},{\"../components/navigation\":6,\"../utils/when-dom-ready\":23}],16:[function(require,module,exports){\n// support for HTMLElement#hidden\nrequire('../polyfills/element-hidden');\n// support for Element#classList\nrequire('classlist-polyfill');\n\n/**\n * This file defines key ECMAScript 5 methods that are used by the Standards\n * but may be missing in older browsers.\n */\n\n/**\n * Array.prototype.forEach()\n * Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\n */\n\n// Production steps of ECMA-262, Edition 5, 15.4.4.18\n// Reference: http://es5.github.io/#x15.4.4.18\nif (!Array.prototype.forEach) {\n\n Array.prototype.forEach = function (callback, thisArg) {\n\n var T, k;\n\n if (this === null) {\n throw new TypeError(' this is null or not defined');\n }\n\n // 1. Let O be the result of calling toObject() passing the\n // |this| value as the argument.\n var O = Object(this);\n\n // 2. Let lenValue be the result of calling the Get() internal\n // method of O with the argument \"length\".\n // 3. Let len be toUint32(lenValue).\n var len = O.length >>> 0;\n\n // 4. If isCallable(callback) is false, throw a TypeError exception. \n // See: http://es5.github.com/#x9.11\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n\n // 5. If thisArg was supplied, let T be thisArg; else let\n // T be undefined.\n if (arguments.length > 1) {\n T = thisArg;\n }\n\n // 6. Let k be 0\n k = 0;\n\n // 7. Repeat, while k < len\n while (k < len) {\n\n var kValue;\n\n // a. Let Pk be ToString(k).\n // This is implicit for LHS operands of the in operator\n // b. Let kPresent be the result of calling the HasProperty\n // internal method of O with argument Pk.\n // This step can be combined with c\n // c. If kPresent is true, then\n if (k in O) {\n\n // i. Let kValue be the result of calling the Get internal\n // method of O with argument Pk.\n kValue = O[ k ];\n\n // ii. Call the Call internal method of callback with T as\n // the this value and argument list containing kValue, k, and O.\n callback.call(T, kValue, k, O);\n }\n // d. Increase k by 1.\n k++;\n }\n // 8. return undefined\n };\n}\n\n\n/**\n * Function.prototype.bind()\n * Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind\n */\n\n// Reference: http://es5.github.io/#x15.3.4.5\nif (!Function.prototype.bind) {\n\n Function.prototype.bind = function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function () {},\n fBound = function () {\n return fToBind.apply(this instanceof fNOP ? this : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // Function.prototype doesn't have a prototype property\n fNOP.prototype = this.prototype; \n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n\n}\n\n},{\"../polyfills/element-hidden\":19,\"classlist-polyfill\":1}],17:[function(require,module,exports){\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar searchInit = require('../components/search');\n\nwhenDOMReady(searchInit);\n\n},{\"../components/search\":7,\"../utils/when-dom-ready\":23}],18:[function(require,module,exports){\nvar dispatch = require('../utils/dispatch');\nvar select = require('../utils/select');\nvar whenDOMReady = require('../utils/when-dom-ready');\n\nwhenDOMReady(function () {\n\n // Fixing skip nav focus behavior in chrome\n var elSkipnav = select('.skipnav')[ 0 ];\n var elMainContent = select('#main-content')[ 0 ];\n\n if (elSkipnav) {\n dispatch(elSkipnav, 'click', function () {\n elMainContent.setAttribute('tabindex', '0');\n });\n }\n\n if (elMainContent) {\n dispatch(elMainContent, 'blur', function () {\n elMainContent.setAttribute('tabindex', '-1');\n });\n }\n});\n\n},{\"../utils/dispatch\":21,\"../utils/select\":22,\"../utils/when-dom-ready\":23}],19:[function(require,module,exports){\nvar elproto = window.HTMLElement.prototype;\nvar HIDDEN = 'hidden';\n\nif (!(HIDDEN in elproto)) {\n\n Object.defineProperty(elproto, HIDDEN, {\n get: function () {\n return this.hasAttribute(HIDDEN);\n },\n set: function (value) {\n if (value) {\n this.setAttribute(HIDDEN, '');\n } else {\n this.removeAttribute(HIDDEN);\n }\n },\n });\n}\n\n},{}],20:[function(require,module,exports){\n'use strict';\n\n/**\n * The 'polyfills' file defines key ECMAScript 5 methods that may be\n * missing from older browsers, so must be loaded first.\n */\nrequire('./initializers/polyfills');\n\nrequire('./initializers/accordions');\nrequire('./initializers/banner');\nrequire('./initializers/footer');\nrequire('./initializers/forms');\nrequire('./initializers/navigation');\nrequire('./initializers/search');\nrequire('./initializers/skip-nav');\n\n},{\"./initializers/accordions\":11,\"./initializers/banner\":12,\"./initializers/footer\":13,\"./initializers/forms\":14,\"./initializers/navigation\":15,\"./initializers/polyfills\":16,\"./initializers/search\":17,\"./initializers/skip-nav\":18}],21:[function(require,module,exports){\n/**\n * Attaches a given listener function to a given element which is\n * triggered by a specified list of event types.\n * @param {HTMLElement} element - the element to which the listener will be attached\n * @param {String} eventTypes - space-separated list of event types which will trigger the listener\n * @param {Function} listener - the function to be executed\n * @returns {Object} - containing a <tt>trigger()</tt> method for executing the listener, and an <tt>off()</tt> method for detaching it\n */\nmodule.exports = function dispatch (element, eventTypes, listener, options) {\n var eventTypeArray = eventTypes.split(/\\s+/);\n\n var attach = function (e, t, d) {\n if (e.attachEvent) {\n e.attachEvent('on' + t, d, options);\n }\n if (e.addEventListener) {\n e.addEventListener(t, d, options);\n }\n };\n\n var trigger = function (e, t) {\n var fakeEvent;\n if ('createEvent' in document) {\n // modern browsers, IE9+\n fakeEvent = document.createEvent('HTMLEvents');\n fakeEvent.initEvent(t, false, true);\n e.dispatchEvent(fakeEvent);\n } else {\n // IE 8\n fakeEvent = document.createEventObject();\n fakeEvent.eventType = t;\n e.fireEvent('on'+e.eventType, fakeEvent);\n }\n };\n\n var detach = function (e, t, d) {\n if (e.detachEvent) {\n e.detachEvent('on' + t, d, options);\n }\n if (e.removeEventListener) {\n e.removeEventListener(t, d, options);\n }\n };\n\n eventTypeArray.forEach(function (eventType) {\n attach.call(null, element, eventType, listener);\n });\n\n return {\n trigger: function () {\n trigger.call(null, element, eventTypeArray[ 0 ]);\n },\n off: function () {\n eventTypeArray.forEach(function (eventType) {\n detach.call(null, element, eventType, listener);\n });\n },\n };\n};\n\n},{}],22:[function(require,module,exports){\n/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {HTMLElement} context - The context to traverse the DOM in.\n * @return {Array.HTMLElement} - An array of DOM nodes or an empty array.\n */\nmodule.exports = function select (selector, context) {\n\n if (typeof selector !== 'string') {\n return [];\n }\n\n if ((context === undefined) || !isElement(context)) {\n context = window.document;\n }\n\n var selection = context.querySelectorAll(selector);\n\n return Array.prototype.slice.call(selection);\n\n};\n\nfunction isElement (value) {\n return !!value && typeof value === 'object' && value.nodeType === 1;\n}\n},{}],23:[function(require,module,exports){\n/*\n * @name DOMLoaded\n * @param {function} cb - The callback function to run when the DOM has loaded.\n */\nmodule.exports = function DOMLoaded (cb) {\n // in case the document is already rendered\n if ('loading' !== document.readyState) {\n if (isFunction(cb)) {\n cb();\n }\n } else if (document.addEventListener) { // modern browsers\n document.addEventListener('DOMContentLoaded', cb);\n } else { // IE <= 8\n document.attachEvent('onreadystatechange', function (){\n if ('complete' === document.readyState) {\n if (isFunction(cb)) {\n cb();\n }\n }\n });\n }\n};\n\nfunction isFunction (arg) {\n return (typeof arg === 'function');\n}\n},{}]},{},[20])\n\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","var select = require('../utils/select');\n\n/**\n * @name showPanelListener\n * @desc The event handler for clicking on a button in an accordion.\n * @param {HTMLElement} el - An HTML element most likely a <button>.\n * @param {Object} ev - A DOM event object.\n */\nfunction showPanelListener (el, ev) {\n var expanded = el.getAttribute('aria-expanded') === 'true';\n this.hideAll();\n if (!expanded) {\n this.show(el);\n }\n return false;\n}\n\n/**\n * @class Accordion\n *\n * An accordion component.\n *\n * @param {HTMLElement} el An HTMLElement to turn into an accordion.\n */\nfunction Accordion (el) {\n var self = this;\n this.root = el;\n\n // delegate click events on each <button>\n var buttons = select('button', this.root);\n buttons.forEach(function (el) {\n if (el.attachEvent) {\n el.attachEvent('onclick', showPanelListener.bind(self, el));\n } else {\n el.addEventListener('click', showPanelListener.bind(self, el));\n }\n });\n\n // find the first expanded button\n var expanded = this.$('button[aria-expanded=true]')[ 0 ];\n this.hideAll();\n if (expanded !== undefined) {\n this.show(expanded);\n }\n}\n\n/**\n * @param {String} selector\n * @return {Array}\n */\nAccordion.prototype.$ = function (selector) {\n return select(selector, this.root);\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.hide = function (button) {\n var selector = button.getAttribute('aria-controls'),\n content = this.$('#' + selector)[ 0 ];\n\n button.setAttribute('aria-expanded', false);\n content.setAttribute('aria-hidden', true);\n return this;\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.show = function (button) {\n var selector = button.getAttribute('aria-controls'),\n content = this.$('#' + selector)[ 0 ];\n\n button.setAttribute('aria-expanded', true);\n content.setAttribute('aria-hidden', false);\n return this;\n};\n\n/**\n * @return {Accordion}\n */\nAccordion.prototype.hideAll = function () {\n var self = this;\n var buttons = this.$('ul > li > button, .usa-accordion-button');\n buttons.forEach(function (button) {\n self.hide(button);\n });\n return this;\n};\n\nmodule.exports = Accordion;\n","var select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nfunction bannerClickHandler (event) {\n (event.preventDefault) ? event.preventDefault() : event.returnValue = false;\n\n this.classList.toggle('usa-banner-header-expanded');\n}\n\nfunction bannerInit () {\n var banners = select('.usa-banner-header');\n\n banners.forEach(function (banner) {\n var bannerClick = bannerClickHandler.bind(banner);\n select('[aria-controls]', banner).forEach(function (button) {\n dispatch(button, 'click', bannerClick);\n });\n });\n}\n\nmodule.exports = bannerInit;\n","var select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nfunction getSiblings (el) {\n var n = el.parentNode.firstChild;\n var matches = [];\n\n while (n) {\n if (n.nodeType == 1 && n != el) {\n matches.push(n);\n }\n n = n.nextSibling;\n }\n\n return matches;\n}\n\nvar showPanelListener = function () {\n var panelToShow = this.parentNode;\n var otherPanels = getSiblings(panelToShow);\n panelToShow.classList.remove('hidden');\n otherPanels.forEach(function (el) {\n el.classList.add('hidden');\n });\n};\n\nvar events = [];\n\nmodule.exports = function footerAccordion () {\n\n var navList = select('.usa-footer-big nav ul');\n var primaryLink = select('.usa-footer-big nav .usa-footer-primary-link');\n\n if (events.length) {\n events.forEach(function (e) {\n e.off();\n });\n events = [];\n }\n\n if (window.innerWidth < 600) {\n\n navList.forEach(function (el) {\n el.classList.add('hidden');\n });\n\n primaryLink.forEach(function (el) {\n events.push(\n dispatch(el, 'click', showPanelListener)\n );\n });\n\n } else {\n navList.forEach(function (el) {\n el.classList.remove('hidden');\n });\n }\n};\n","var select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nvar clickEvent = ('ontouchstart' in document.documentElement ? 'touchstart' : 'click');\nvar dispatchers = [];\n\nfunction handleNavElements (e) {\n\n var toggleElements = select('.usa-overlay, .usa-nav');\n var navCloseElement = select('.usa-nav-close')[ 0 ];\n\n toggleElements.forEach(function (element) {\n element.classList.toggle('is-visible');\n });\n\n document.body.classList.toggle('usa-mobile_nav-active');\n navCloseElement.focus();\n\n return false;\n}\n\nfunction navInit () {\n var navElements = select('.usa-menu-btn, .usa-overlay, .usa-nav-close');\n\n dispatchers = navElements.map(function (element) {\n return dispatch(element, clickEvent, handleNavElements);\n });\n}\n\nfunction navOff () {\n while (dispatchers.length) {\n dispatchers.pop().off();\n }\n}\n\nmodule.exports = navInit;\nmodule.exports.off = navOff;\n","var select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nvar VISUALLY_HIDDEN = 'usa-sr-only';\n\nvar clickEvent = ('ontouchstart' in document.documentElement)\n ? 'touchstart'\n : 'click';\n\nvar searchForm;\nvar searchButton;\nvar searchButtonContainer;\n\nvar activateDispatcher;\nvar deactivateDispatcher;\n\nfunction searchButtonClickHandler (event) {\n if (searchForm.hidden) {\n closeSearch();\n } else {\n openSearch();\n deactivateDispatcher = dispatch(document.body, clickEvent, searchOpenClickHandler);\n }\n\n return false;\n}\n\nfunction searchOpenClickHandler (event) {\n if (! searchFormContains(event.target)) {\n closeSearch();\n deactivateDispatcher.off();\n deactivateDispatcher = undefined;\n }\n}\n\nfunction openSearch () {\n searchForm.classList.remove(VISUALLY_HIDDEN);\n var input = searchForm.querySelector('[type=search]');\n if (input) {\n input.focus();\n }\n searchButton.hidden = true;\n}\n\nfunction closeSearch () {\n searchForm.classList.add(VISUALLY_HIDDEN);\n searchButton.hidden = false;\n}\n\nfunction searchFormContains (element) {\n return (searchForm && searchForm.contains(element)) ||\n (searchButtonContainer && searchButtonContainer.contains(element));\n}\n\nfunction searchInit () {\n searchForm = select('.js-search-form')[ 0 ];\n searchButton = select('.js-search-button')[ 0 ];\n searchButtonContainer = select('.js-search-button-container')[ 0 ];\n\n if (searchButton && searchForm) {\n closeSearch();\n activateDispatcher = dispatch(searchButton, clickEvent, searchButtonClickHandler);\n }\n}\n\nfunction searchOff () {\n if (activateDispatcher) {\n activateDispatcher.off();\n }\n if (deactivateDispatcher) {\n deactivateDispatcher.off();\n }\n}\n\nmodule.exports = searchInit;\nmodule.exports.off = searchOff;\n","/**\n * Flips given INPUT elements between masked (hiding the field value) and unmasked\n * @param {Array.HTMLElement} fields - An array of INPUT elements\n * @param {Boolean} mask - Whether the mask should be applied, hiding the field value\n */\nmodule.exports = function (fields, mask) {\n fields.forEach(function (field) {\n field.setAttribute('autocapitalize', 'off');\n field.setAttribute('autocorrect', 'off');\n field.setAttribute('type', mask ? 'password' : 'text');\n });\n};\n","var toggleFieldMask = require('./toggle-field-mask');\nvar select = require('../utils/select');\n\n/**\n * Component that decorates an HTML element with the ability to toggle the\n * masked state of an input field (like a password) when clicked.\n * The ids of the fields to be masked will be pulled directly from the button's\n * `aria-controls` attribute.\n *\n * @param {HTMLElement} el Parent element containing the fields to be masked\n * @param {String} showText Button text shown when field is masked\n * @param {String} hideText Button text show when field is unmasked\n * @return {}\n */\nvar toggleFormInput = function (el, showText, hideText) {\n var defaultSelectors = el.getAttribute('aria-controls');\n\n if (!defaultSelectors || defaultSelectors.trim().length === 0) {\n throw new Error('Did you forget to define selectors in the aria-controls attribute? Check element ' + el.outerHTML);\n }\n\n var fieldSelector = getSelectors(defaultSelectors);\n var formElement = getFormParent(el);\n if (!formElement) {\n throw new Error('toggleFormInput() needs the supplied element to be inside a <form>. Check element ' + el.outerHTML);\n }\n var fields = select(fieldSelector, formElement);\n var masked = false;\n\n var toggleClickListener = function (ev) {\n ev.preventDefault();\n toggleFieldMask(fields, masked);\n el.textContent = masked ? showText : hideText;\n masked = !masked;\n };\n\n if (el.attachEvent) {\n el.attachEvent('onclick', toggleClickListener);\n } else {\n el.addEventListener('click', toggleClickListener);\n }\n};\n\n/**\n * Helper function to turn a string of ids into valid selectors\n * @param {String} selectors Space separated list of ids of fields to be masked\n * @return {String} Comma separated list of selectors\n */\nfunction getSelectors (selectors) {\n var selectorsList = selectors.split(' ');\n\n return selectorsList.map(function (selector) {\n return '#' + selector;\n }).join(', ');\n}\n\n/**\n * Searches up the tree from the element to find a Form element, and returns it,\n * or null if no Form is found\n * @param {HTMLElement} el - Child element to start search\n */\nfunction getFormParent (el) {\n while (el && el.tagName !== 'FORM') {\n el = el.parentNode;\n }\n return el;\n}\n\nmodule.exports = toggleFormInput;\n","var select = require('../utils/select');\nvar dispatch = require('../utils/dispatch');\n\nmodule.exports = function validator (el) {\n var data = getData(el);\n var key;\n var validatorName;\n var validatorPattern;\n var validatorCheckbox;\n var checkList = select(data.validationelement)[ 0 ];\n\n function validate () {\n for (key in data) {\n if (key.startsWith('validate')) {\n validatorName = key.split('validate')[ 1 ];\n validatorPattern = new RegExp(data[ key ]);\n validatorSelector = '[data-validator=' + validatorName + ']';\n validatorCheckbox = select(validatorSelector, checkList)[ 0 ];\n\n var checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle('usa-checklist-checked', checked);\n }\n }\n }\n\n dispatch(el, 'keyup', validate);\n};\n\n/**\n * Extracts attributes named with the pattern \"data-[NAME]\" from a given\n * HTMLElement, then returns an object populated with the NAME/value pairs.\n * Any hyphens in NAME are removed.\n * @param {HTMLElement} el\n * @return {Object}\n */\n\nfunction getData (el) {\n if (!el.hasAttributes()) return;\n var data = {};\n var attrs = el.attributes;\n for (var i = attrs.length - 1; i >= 0; i--) {\n var matches = attrs[ i ].name.match(/data-(.*)/i);\n if (matches && matches[ 1 ]) {\n var name = matches[ 1 ].replace(/-/, '');\n data[ name ] = attrs[ i ].value;\n }\n }\n return data;\n}\n","var select = require('../utils/select');\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar Accordion = require('../components/accordion');\n\nwhenDOMReady(function initAccordions () {\n\n var accordions = select('.usa-accordion, .usa-accordion-bordered');\n accordions.forEach(function (el) {\n new Accordion(el);\n });\n});\n","var whenDOMReady = require('../utils/when-dom-ready');\nvar bannerInit = require('../components/banner');\n\nwhenDOMReady(function () {\n\n bannerInit();\n\n});\n\n","var debounce = require('lodash.debounce');\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar dispatch = require('../utils/dispatch');\nvar footerAccordion = require('../components/footer');\n\nwhenDOMReady(function () {\n\n footerAccordion();\n\n dispatch(window, 'resize', debounce(footerAccordion, 180));\n\n});\n","var whenDOMReady = require('../utils/when-dom-ready');\nvar select = require('../utils/select');\nvar validator = require('../components/validator');\nvar toggleFormInput = require('../components/toggle-form-input');\n\nwhenDOMReady(function () {\n var elShowPassword = select('.usa-show_password')[ 0 ];\n var elFormInput = select('.usa-show_multipassword')[ 0 ];\n var elValidator = select('.js-validate_password')[ 0 ];\n\n elShowPassword && toggleFormInput(elShowPassword, 'Show Password', 'Hide Password');\n elFormInput && toggleFormInput(elFormInput, 'Show my typing', 'Hide my typing');\n elValidator && validator(elValidator);\n});\n\n","var whenDOMReady = require('../utils/when-dom-ready');\nvar navInit = require('../components/navigation');\n\nwhenDOMReady(navInit);\n","// support for HTMLElement#hidden\nrequire('../polyfills/element-hidden');\n// support for Element#classList\nrequire('classlist-polyfill');\n\n/**\n * This file defines key ECMAScript 5 methods that are used by the Standards\n * but may be missing in older browsers.\n */\n\n/**\n * Array.prototype.forEach()\n * Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\n */\n\n// Production steps of ECMA-262, Edition 5, 15.4.4.18\n// Reference: http://es5.github.io/#x15.4.4.18\nif (!Array.prototype.forEach) {\n\n Array.prototype.forEach = function (callback, thisArg) {\n\n var T, k;\n\n if (this === null) {\n throw new TypeError(' this is null or not defined');\n }\n\n // 1. Let O be the result of calling toObject() passing the\n // |this| value as the argument.\n var O = Object(this);\n\n // 2. Let lenValue be the result of calling the Get() internal\n // method of O with the argument \"length\".\n // 3. Let len be toUint32(lenValue).\n var len = O.length >>> 0;\n\n // 4. If isCallable(callback) is false, throw a TypeError exception. \n // See: http://es5.github.com/#x9.11\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n\n // 5. If thisArg was supplied, let T be thisArg; else let\n // T be undefined.\n if (arguments.length > 1) {\n T = thisArg;\n }\n\n // 6. Let k be 0\n k = 0;\n\n // 7. Repeat, while k < len\n while (k < len) {\n\n var kValue;\n\n // a. Let Pk be ToString(k).\n // This is implicit for LHS operands of the in operator\n // b. Let kPresent be the result of calling the HasProperty\n // internal method of O with argument Pk.\n // This step can be combined with c\n // c. If kPresent is true, then\n if (k in O) {\n\n // i. Let kValue be the result of calling the Get internal\n // method of O with argument Pk.\n kValue = O[ k ];\n\n // ii. Call the Call internal method of callback with T as\n // the this value and argument list containing kValue, k, and O.\n callback.call(T, kValue, k, O);\n }\n // d. Increase k by 1.\n k++;\n }\n // 8. return undefined\n };\n}\n\n\n/**\n * Function.prototype.bind()\n * Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind\n */\n\n// Reference: http://es5.github.io/#x15.3.4.5\nif (!Function.prototype.bind) {\n\n Function.prototype.bind = function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function () {},\n fBound = function () {\n return fToBind.apply(this instanceof fNOP ? this : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // Function.prototype doesn't have a prototype property\n fNOP.prototype = this.prototype; \n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n\n}\n","var whenDOMReady = require('../utils/when-dom-ready');\nvar searchInit = require('../components/search');\n\nwhenDOMReady(searchInit);\n","var dispatch = require('../utils/dispatch');\nvar select = require('../utils/select');\nvar whenDOMReady = require('../utils/when-dom-ready');\n\nwhenDOMReady(function () {\n\n // Fixing skip nav focus behavior in chrome\n var elSkipnav = select('.skipnav')[ 0 ];\n var elMainContent = select('#main-content')[ 0 ];\n\n if (elSkipnav) {\n dispatch(elSkipnav, 'click', function () {\n elMainContent.setAttribute('tabindex', '0');\n });\n }\n\n if (elMainContent) {\n dispatch(elMainContent, 'blur', function () {\n elMainContent.setAttribute('tabindex', '-1');\n });\n }\n});\n","var elproto = window.HTMLElement.prototype;\nvar HIDDEN = 'hidden';\n\nif (!(HIDDEN in elproto)) {\n\n Object.defineProperty(elproto, HIDDEN, {\n get: function () {\n return this.hasAttribute(HIDDEN);\n },\n set: function (value) {\n if (value) {\n this.setAttribute(HIDDEN, '');\n } else {\n this.removeAttribute(HIDDEN);\n }\n },\n });\n}\n","'use strict';\n\n/**\n * The 'polyfills' file defines key ECMAScript 5 methods that may be\n * missing from older browsers, so must be loaded first.\n */\nrequire('./initializers/polyfills');\n\nrequire('./initializers/accordions');\nrequire('./initializers/banner');\nrequire('./initializers/footer');\nrequire('./initializers/forms');\nrequire('./initializers/navigation');\nrequire('./initializers/search');\nrequire('./initializers/skip-nav');\n","/**\n * Attaches a given listener function to a given element which is\n * triggered by a specified list of event types.\n * @param {HTMLElement} element - the element to which the listener will be attached\n * @param {String} eventTypes - space-separated list of event types which will trigger the listener\n * @param {Function} listener - the function to be executed\n * @returns {Object} - containing a <tt>trigger()</tt> method for executing the listener, and an <tt>off()</tt> method for detaching it\n */\nmodule.exports = function dispatch (element, eventTypes, listener, options) {\n var eventTypeArray = eventTypes.split(/\\s+/);\n\n var attach = function (e, t, d) {\n if (e.attachEvent) {\n e.attachEvent('on' + t, d, options);\n }\n if (e.addEventListener) {\n e.addEventListener(t, d, options);\n }\n };\n\n var trigger = function (e, t) {\n var fakeEvent;\n if ('createEvent' in document) {\n // modern browsers, IE9+\n fakeEvent = document.createEvent('HTMLEvents');\n fakeEvent.initEvent(t, false, true);\n e.dispatchEvent(fakeEvent);\n } else {\n // IE 8\n fakeEvent = document.createEventObject();\n fakeEvent.eventType = t;\n e.fireEvent('on'+e.eventType, fakeEvent);\n }\n };\n\n var detach = function (e, t, d) {\n if (e.detachEvent) {\n e.detachEvent('on' + t, d, options);\n }\n if (e.removeEventListener) {\n e.removeEventListener(t, d, options);\n }\n };\n\n eventTypeArray.forEach(function (eventType) {\n attach.call(null, element, eventType, listener);\n });\n\n return {\n trigger: function () {\n trigger.call(null, element, eventTypeArray[ 0 ]);\n },\n off: function () {\n eventTypeArray.forEach(function (eventType) {\n detach.call(null, element, eventType, listener);\n });\n },\n };\n};\n","/**\n * @name select\n * @desc selects elements from the DOM by class selector or ID selector.\n * @param {string} selector - The selector to traverse the DOM with.\n * @param {HTMLElement} context - The context to traverse the DOM in.\n * @return {Array.HTMLElement} - An array of DOM nodes or an empty array.\n */\nmodule.exports = function select (selector, context) {\n\n if (typeof selector !== 'string') {\n return [];\n }\n\n if ((context === undefined) || !isElement(context)) {\n context = window.document;\n }\n\n var selection = context.querySelectorAll(selector);\n\n return Array.prototype.slice.call(selection);\n\n};\n\nfunction isElement (value) {\n return !!value && typeof value === 'object' && value.nodeType === 1;\n}","/*\n * @name DOMLoaded\n * @param {function} cb - The callback function to run when the DOM has loaded.\n */\nmodule.exports = function DOMLoaded (cb) {\n // in case the document is already rendered\n if ('loading' !== document.readyState) {\n if (isFunction(cb)) {\n cb();\n }\n } else if (document.addEventListener) { // modern browsers\n document.addEventListener('DOMContentLoaded', cb);\n } else { // IE <= 8\n document.attachEvent('onreadystatechange', function (){\n if ('complete' === document.readyState) {\n if (isFunction(cb)) {\n cb();\n }\n }\n });\n }\n};\n\nfunction isFunction (arg) {\n return (typeof arg === 'function');\n}"]}