{"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","getTargetOf","source","id","target","getElementById","Accordion","$","SELECTOR_BUTTON","forEach","button","attachEvent","bind","addEventListener","select","SELECTOR_BUTTON_EXPANDED","selector","hide","../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","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){\n'use strict';\nvar select = require('../utils/select');\n\nvar SELECTOR_BUTTON = 'button.usa-accordion-button';\nvar SELECTOR_BUTTON_EXPANDED = SELECTOR_BUTTON + '[aria-expanded=true]';\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 * @name getTargetOf\n * @desc Get the target of an element, according to the id listed in its\n * `aria-controls` attribute.\n * @param {HTMLElement} source the source element\n * @return {Element} the target element\n * @throws {Error} an error is thrown if no such target exists\n */\nfunction getTargetOf (source) {\n var id = source.getAttribute('aria-controls');\n var target = document.getElementById(id);\n if (target) {\n return target;\n } else {\n throw new Error('No accordion target with id \"' + id + '\" exists');\n }\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 this.$(SELECTOR_BUTTON).forEach(function (button) {\n if (button.attachEvent) {\n button.attachEvent('onclick', showPanelListener.bind(self, button));\n } else {\n button.addEventListener('click', showPanelListener.bind(self, button));\n }\n });\n\n // find the first expanded button\n var expanded = this.select(SELECTOR_BUTTON_EXPANDED);\n this.hideAll();\n if (expanded !== undefined) {\n this.show(expanded);\n }\n}\n\n/**\n * @param {String} selector\n * @return {Element}\n */\nAccordion.prototype.select = function (selector) {\n return this.$(selector)[ 0 ];\n};\n\n/**\n * @param {String} selector\n * @return {Array.HTMLElement}\n */\nAccordion.prototype.$ = function (selector) {\n return select(selector, this.root);\n};\n\n/**\n * @param {HTMLElement} button\n * @param {Boolean} expanded\n */\nAccordion.prototype.toggle = function (button, expanded) {\n var target = getTargetOf(button);\n button.setAttribute('aria-expanded', expanded);\n target.setAttribute('aria-hidden', !expanded);\n return this;\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.hide = function (button) {\n return this.toggle(button, false);\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.show = function (button) {\n return this.toggle(button, true);\n};\n\n/**\n * @return {Accordion}\n */\nAccordion.prototype.hideAll = function () {\n var self = this;\n this.$(SELECTOR_BUTTON).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","'use strict';\nvar select = require('../utils/select');\n\nvar SELECTOR_BUTTON = 'button.usa-accordion-button';\nvar SELECTOR_BUTTON_EXPANDED = SELECTOR_BUTTON + '[aria-expanded=true]';\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 * @name getTargetOf\n * @desc Get the target of an element, according to the id listed in its\n * `aria-controls` attribute.\n * @param {HTMLElement} source the source element\n * @return {Element} the target element\n * @throws {Error} an error is thrown if no such target exists\n */\nfunction getTargetOf (source) {\n var id = source.getAttribute('aria-controls');\n var target = document.getElementById(id);\n if (target) {\n return target;\n } else {\n throw new Error('No accordion target with id \"' + id + '\" exists');\n }\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 this.$(SELECTOR_BUTTON).forEach(function (button) {\n if (button.attachEvent) {\n button.attachEvent('onclick', showPanelListener.bind(self, button));\n } else {\n button.addEventListener('click', showPanelListener.bind(self, button));\n }\n });\n\n // find the first expanded button\n var expanded = this.select(SELECTOR_BUTTON_EXPANDED);\n this.hideAll();\n if (expanded !== undefined) {\n this.show(expanded);\n }\n}\n\n/**\n * @param {String} selector\n * @return {Element}\n */\nAccordion.prototype.select = function (selector) {\n return this.$(selector)[ 0 ];\n};\n\n/**\n * @param {String} selector\n * @return {Array.HTMLElement}\n */\nAccordion.prototype.$ = function (selector) {\n return select(selector, this.root);\n};\n\n/**\n * @param {HTMLElement} button\n * @param {Boolean} expanded\n */\nAccordion.prototype.toggle = function (button, expanded) {\n var target = getTargetOf(button);\n button.setAttribute('aria-expanded', expanded);\n target.setAttribute('aria-hidden', !expanded);\n return this;\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.hide = function (button) {\n return this.toggle(button, false);\n};\n\n/**\n * @param {HTMLElement} button\n * @return {Accordion}\n */\nAccordion.prototype.show = function (button) {\n return this.toggle(button, true);\n};\n\n/**\n * @return {Accordion}\n */\nAccordion.prototype.hideAll = function () {\n var self = this;\n this.$(SELECTOR_BUTTON).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}"]}