18F/forest-service-prototype

View on GitHub
third-party/uswds-0.13.1/js/uswds.min.js.map

Summary

Maintainability
Test Coverage
{"version":3,"sources":["node_modules/browser-pack/_prelude.js","components.js","node_modules/lodash.debounce/index.js","node_modules/politespace/src/politespace.js","src/js/components/accordion.js","src/js/components/banner.js","src/js/components/footer.js","src/js/components/header/mobile.js","src/js/components/header/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/header.js","src/js/initializers/politespace.js","src/js/initializers/polyfills.js","src/js/initializers/skip-nav.js","src/js/start.js","src/js/utils/add-class.js","src/js/utils/dispatch.js","src/js/utils/remove-class.js","src/js/utils/select.js","src/js/utils/verify-jquery.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","global","debounce","func","wait","options","invokeFunc","time","args","lastArgs","thisArg","lastThis","undefined","lastInvokeTime","result","apply","leadingEdge","timerId","setTimeout","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","trailing","cancel","clearTimeout","flush","debounced","isInvoking","arguments","this","TypeError","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","value","type","isObjectLike","isSymbol","objectToString","symbolTag","NAN","other","valueOf","replace","reTrim","isBinary","reIsBinary","test","reIsOctal","freeParseInt","slice","reIsBadHex","parseInt","freeGlobal","Object","freeSelf","self","root","Function","objectProto","prototype","toString","Math","max","min","Date","window","2","w","Politespace","element","getAttribute","delimiter","reverse","groupLength","_divideIntoArray","substrStart","useCharCount","split","isUniformSplit","dividedValue","loopIndex","shift","push","substr","format","val","unformat","join","trimMaxlength","maxlength","getValue","update","useProxy","RegExp","reset","updateProxy","proxy","parentNode","firstChild","innerHTML","style","width","offsetWidth","createProxy","getStyle","el","prop","getComputedStyle","getPropertyValue","sumStyles","props","total","j","k","parseFloat","parent","document","createElement","font","paddingLeft","paddingRight","top","appendChild","className","formEl","replaceChild","3","showPanelListener","ev","expanded","hideAll","show","Accordion","buttons","select","forEach","attachEvent","bind","addEventListener","$","selector","hide","button","content","setAttribute","../utils/select","4","headerClickHandler","event","preventDefault","returnValue","target","toggleClass","addClass","removeClass","bannerInit","headers","header","headerClick","dispatch","../utils/add-class","../utils/dispatch","../utils/remove-class","5","getSiblings","matches","nodeType","nextSibling","panelToShow","otherPanels","events","navList","primaryLink","off","innerWidth","6","classList","toggle","handleNavElements","toggleElements","navCloseElement","body","focus","shouldTrigger","mobileInit","navElements","clickHandler","documentElement","../../utils/add-class","../../utils/dispatch","../../utils/remove-class","../../utils/select","7","searchButtonClickHandler","isOpen","searchForm","closeSearch","openSearch","searchDispatcher","searchOpenClickHandler","searchFormContains","searchButton","classRegexp","contains","searchButtonContainer","searchInit","8","fields","mask","field","9","getSelectors","selectors","selectorsList","map","getFormParent","tagName","toggleFieldMask","toggleFormInput","showText","hideText","defaultSelectors","trim","outerHTML","fieldSelector","formElement","masked","toggleClickListener","textContent","./toggle-field-mask","10","getData","hasAttributes","data","attrs","attributes","name","match","validate","key","startsWith","validatorName","validatorPattern","validatorSelector","validatorCheckbox","checkList","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/header/mobile","../components/header/search","16","verifyjQuery","jQuery","componentName","fn","each","polite","closest","politespace","../../../node_modules/politespace/src/politespace","../utils/verify-jquery","17","Array","callback","T","O","len","kValue","oThis","aArgs","fToBind","fNOP","fBound","concat","18","elSkipnav","elMainContent","19","./initializers/accordions","./initializers/banner","./initializers/footer","./initializers/forms","./initializers/header","./initializers/politespace","./initializers/polyfills","./initializers/skip-nav","20","add","21","eventTypes","listener","eventTypeArray","attach","d","trigger","fakeEvent","createEvent","initEvent","dispatchEvent","createEventObject","eventType","fireEvent","detach","detachEvent","removeEventListener","22","remove","newClassList","c","23","isElement","context","selection","querySelectorAll","24","jquery","25","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})","(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(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},{}],2:[function(require,module,exports){\n(function( w ){\n\t\"use strict\";\n\n\tvar Politespace = function( element ) {\n\t\tif( !element ) {\n\t\t\tthrow new Error( \"Politespace requires an element argument.\" );\n\t\t}\n\n\t\tif( !element.getAttribute ) {\n\t\t\t// Cut the mustard\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element = element;\n\t\tthis.type = this.element.getAttribute( \"type\" );\n\t\tthis.delimiter = this.element.getAttribute( \"data-delimiter\" ) || \" \";\n\t\tthis.reverse = this.element.getAttribute( \"data-reverse\" ) !== null;\n\t\tthis.groupLength = this.element.getAttribute( \"data-grouplength\" ) || 3;\n\t};\n\n\tPolitespace.prototype._divideIntoArray = function( value ) {\n\t\tvar split = ( '' + this.groupLength ).split( ',' ),\n\t\t\tisUniformSplit = split.length === 1,\n\t\t\tdividedValue = [],\n\t\t\tloopIndex = 0,\n\t\t\tgroupLength,\n\t\t\tsubstrStart,\n\t\t\tuseCharCount;\n\n\t\twhile( split.length && loopIndex < value.length ) {\n\t\t\tif( isUniformSplit ) {\n\t\t\t\tgroupLength = split[ 0 ];\n\t\t\t} else {\n\t\t\t\t// use the next split or the rest of the string if open ended, ala \"3,3,\"\n\t\t\t\tgroupLength = split.shift() || value.length - loopIndex;\n\t\t\t}\n\n\t\t\t// Use min if we’re at the end of a reversed string\n\t\t\t// (substrStart below grows larger than the string length)\n\t\t\tuseCharCount = Math.min( parseInt( groupLength, 10 ), value.length - loopIndex );\n\n\t\t\tif( this.reverse ) {\n\t\t\t\tsubstrStart = -1 * (useCharCount + loopIndex);\n\t\t\t} else {\n\t\t\t\tsubstrStart = loopIndex;\n\t\t\t}\n\t\t\tdividedValue.push( value.substr( substrStart, useCharCount ) );\n\t\t\tloopIndex += useCharCount;\n\t\t}\n\n\t\tif( this.reverse ) {\n\t\t\tdividedValue.reverse();\n\t\t}\n\n\t\treturn dividedValue;\n\t};\n\n\tPolitespace.prototype.format = function( value ) {\n\t\tvar val = this.unformat( value );\n\n\t\treturn this._divideIntoArray( val ).join( this.delimiter );\n\t};\n\n\tPolitespace.prototype.trimMaxlength = function( value ) {\n\t\tvar maxlength = this.element.getAttribute( \"maxlength\" );\n\t\t// Note input type=\"number\" maxlength does nothing\n\t\tif( maxlength ) {\n\t\t\tvalue = value.substr( 0, maxlength );\n\t\t}\n\t\treturn value;\n\t};\n\n\tPolitespace.prototype.getValue = function() {\n\t\treturn this.trimMaxlength( this.element.value );\n\t};\n\n\tPolitespace.prototype.update = function() {\n\t\tthis.element.value = this.useProxy() ? this.getValue() : this.format( this.getValue() );\n\t};\n\n\tPolitespace.prototype.unformat = function( value ) {\n\t\treturn value.replace( new RegExp(  this.delimiter, 'g' ), '' );\n\t};\n\n\tPolitespace.prototype.reset = function() {\n\t\tthis.element.value = this.unformat( this.element.value );\n\t};\n\n\tPolitespace.prototype.useProxy = function() {\n\t\treturn this.type === \"number\";\n\t};\n\n\tPolitespace.prototype.updateProxy = function() {\n\t\tvar proxy;\n\t\tif( this.useProxy() ) {\n\t\t\tproxy = this.element.parentNode.firstChild;\n\t\t\tproxy.innerHTML = this.format( this.getValue() );\n\t\t\tproxy.style.width = this.element.offsetWidth + \"px\";\n\t\t}\n\t};\n\n\tPolitespace.prototype.createProxy = function() {\n\t\tif( !this.useProxy() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction getStyle( el, prop ) {\n\t\t\treturn window.getComputedStyle( el, null ).getPropertyValue( prop );\n\t\t}\n\t\tfunction sumStyles( el, props ) {\n\t\t\tvar total = 0;\n\t\t\tfor( var j=0, k=props.length; j<k; j++ ) {\n\t\t\t\ttotal += parseFloat( getStyle( el, props[ j ] ) );\n\t\t\t}\n\t\t\treturn total;\n\t\t}\n\n\t\tvar parent = this.element.parentNode;\n\t\tvar el = document.createElement( \"div\" );\n\t\tvar proxy = document.createElement( \"div\" );\n\t\tproxy.style.font = getStyle( this.element, \"font\" );\n\t\tproxy.style.paddingLeft = sumStyles( this.element, [ \"padding-left\", \"border-left-width\" ] ) + \"px\";\n\t\tproxy.style.paddingRight = sumStyles( this.element, [ \"padding-right\", \"border-right-width\" ] ) + \"px\";\n\t\tproxy.style.top = sumStyles( this.element, [ \"padding-top\", \"border-top-width\", \"margin-top\" ] ) + \"px\";\n\n\t\tel.appendChild( proxy );\n\t\tel.className = \"politespace-proxy active\";\n\t\tvar formEl = parent.replaceChild( el, this.element );\n\t\tel.appendChild( formEl );\n\n\t\tthis.updateProxy();\n\t};\n\n\tw.Politespace = Politespace;\n\n}( this ));\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\":23}],4:[function(require,module,exports){\nvar select = require('../utils/select');\nvar addClass = require('../utils/add-class');\nvar removeClass = require('../utils/remove-class');\nvar dispatch = require('../utils/dispatch');\n\nfunction headerClickHandler (event) {\n  (event.preventDefault) ? event.preventDefault() : event.returnValue = false;\n  \n  var expanded = event.target.getAttribute('aria-expanded') === 'true';\n  var toggleClass = expanded ? addClass : removeClass;\n  toggleClass(this, 'usa-banner-header-expanded');\n}\n\nfunction bannerInit () {\n  var headers = select('.usa-banner-header');\n\n  headers.forEach(function (header) {\n    var headerClick = headerClickHandler.bind(header);\n    select('[aria-controls]').forEach(function (button) {\n      dispatch(button, 'click', headerClick);\n    });\n  });\n}\n\nmodule.exports = bannerInit;\n},{\"../utils/add-class\":20,\"../utils/dispatch\":21,\"../utils/remove-class\":22,\"../utils/select\":23}],5:[function(require,module,exports){\nvar select = require('../utils/select');\nvar addClass = require('../utils/add-class');\nvar removeClass = require('../utils/remove-class');\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  removeClass(panelToShow, 'hidden');\n  otherPanels.forEach(function (el) {\n    addClass(el, '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      addClass(el, '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      removeClass(el, 'hidden');\n    });\n  }\n};\n\n},{\"../utils/add-class\":20,\"../utils/dispatch\":21,\"../utils/remove-class\":22,\"../utils/select\":23}],6:[function(require,module,exports){\nvar select = require('../../utils/select');\nvar addClass = require('../../utils/add-class');\nvar removeClass = require('../../utils/remove-class');\nvar dispatch = require('../../utils/dispatch');\n\nvar clickHandler = ('ontouchstart' in document.documentElement ? 'touchstart' : 'click');\n\nfunction toggleClass (element, className) {\n  if (element.classList) {\n    element.classList.toggle(className);\n  }\n}\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    toggleClass(element, 'is-visible');\n  });\n  toggleClass(document.body, 'usa-mobile_nav-active');\n  navCloseElement.focus();\n  shouldTrigger = false;\n  return false;\n}\n\nfunction mobileInit () {\n  var navElements = select('.usa-menu-btn, .usa-overlay, .usa-nav-close');\n\n  navElements.forEach(function (element) {\n    dispatch(element, clickHandler, handleNavElements);\n  });\n}\n\nmodule.exports = mobileInit;\n},{\"../../utils/add-class\":20,\"../../utils/dispatch\":21,\"../../utils/remove-class\":22,\"../../utils/select\":23}],7:[function(require,module,exports){\nvar select = require('../../utils/select');\nvar addClass = require('../../utils/add-class');\nvar removeClass = require('../../utils/remove-class');\nvar dispatch = require('../../utils/dispatch');\n\nvar searchForm, searchButton, searchButtonContainer, searchDispatcher;\n\nfunction searchButtonClickHandler (event) {\n  if (isOpen(searchForm)) {\n    closeSearch();\n  } else {\n    openSearch();\n    searchDispatcher = dispatch(document.body, 'click touchstart', searchOpenClickHandler);\n  }\n\n  return false;\n}\n\nfunction searchOpenClickHandler (event) {\n  var target = event.target;\n  if (! searchFormContains(target)) {\n    closeSearch();\n    searchDispatcher.off();\n  }\n}\n\nfunction openSearch () {\n  addClass(searchForm, 'is-visible');\n  addClass(searchButton, 'is-hidden');\n}\n\nfunction closeSearch () {\n  removeClass(searchForm, 'is-visible');\n  removeClass(searchButton, 'is-hidden');\n}\n\nfunction isOpen (element) {\n  var classRegexp = new RegExp('(^| )is-visible( |$)', 'gi');\n  return classRegexp.test(element.className);\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    dispatch(searchButton, 'click touchstart', searchButtonClickHandler);\n  }\n}\n\nmodule.exports = searchInit;\n},{\"../../utils/add-class\":20,\"../../utils/dispatch\":21,\"../../utils/remove-class\":22,\"../../utils/select\":23}],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\":23,\"./toggle-field-mask\":8}],10:[function(require,module,exports){\nvar select = require('../utils/select');\nvar addClass = require('../utils/add-class');\nvar removeClass = require('../utils/remove-class');\nvar dispatch = require('../utils/dispatch');\n\nmodule.exports = function validator (el) {\n  var data = getData(el),\n    key,\n    validatorName,\n    validatorPattern,\n    validatorCheckbox,\n    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        if (!validatorPattern.test(el.value)) {\n          removeClass(validatorCheckbox, 'usa-checklist-checked');\n        }\n        else {\n          addClass(validatorCheckbox, 'usa-checklist-checked');\n        }\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/add-class\":20,\"../utils/dispatch\":21,\"../utils/remove-class\":22,\"../utils/select\":23}],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\":23,\"../utils/when-dom-ready\":25}],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\":25}],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\":25,\"lodash.debounce\":1}],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\":23,\"../utils/when-dom-ready\":25}],15:[function(require,module,exports){\nvar whenDOMReady = require('../utils/when-dom-ready');\nvar searchInit = require('../components/header/search');\nvar mobileInit = require('../components/header/mobile');\n\nwhenDOMReady(function initHeaders () {\n\n  // Search Toggle\n  searchInit();\n\n  // Mobile Navigation\n  mobileInit();\n\n});\n\n\n},{\"../components/header/mobile\":6,\"../components/header/search\":7,\"../utils/when-dom-ready\":25}],16:[function(require,module,exports){\nvar verifyjQuery = require('../utils/verify-jquery');\n\n// jQuery Plugin\n\nif (verifyjQuery(window)) {\n\n  var $ = window.jQuery;\n\n  // README: This is necessary because politespace doesn't properly export anything\n  // in its package.json. TODO: Let's open a PR related to this so we can fix it in Politespace.js\n  //\n  var Politespace = require('../../../node_modules/politespace/src/politespace').Politespace;\n\n  var componentName = 'politespace',\n    enhancedAttr = 'data-enhanced',\n    initSelector = '[data-\" + componentName + \"]:not([\" + enhancedAttr + \"])';\n\n  $.fn[ componentName ] = function (){\n    return this.each(function (){\n      var polite = new Politespace(this);\n      if(polite.type === 'number') {\n        polite.createProxy();\n      }\n\n      $(this)\n        .bind('input keydown', function () {\n          polite.updateProxy();\n        })\n        .bind('blur', function () {\n          $(this).closest('.politespace-proxy').addClass('active');\n          polite.update();\n          polite.updateProxy();\n        })\n        .bind('focus', function () {\n          $(this).closest('.politespace-proxy').removeClass('active');\n          polite.reset();\n        })\n        .data(componentName, polite);\n\n      polite.update();\n    });\n  };\n\n\t// auto-init on enhance (which is called on domready)\n  $(function () {\n    $('[data-' + componentName + ']').politespace();\n  });\n\n}\n\n},{\"../../../node_modules/politespace/src/politespace\":2,\"../utils/verify-jquery\":24}],17:[function(require,module,exports){\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},{}],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\":23,\"../utils/when-dom-ready\":25}],19:[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');\nrequire('./initializers/header');\nrequire('./initializers/accordions');\nrequire('./initializers/footer');\nrequire('./initializers/skip-nav');\nrequire('./initializers/forms');\nrequire('./initializers/politespace');\nrequire('./initializers/banner');\n\n},{\"./initializers/accordions\":11,\"./initializers/banner\":12,\"./initializers/footer\":13,\"./initializers/forms\":14,\"./initializers/header\":15,\"./initializers/politespace\":16,\"./initializers/polyfills\":17,\"./initializers/skip-nav\":18}],20:[function(require,module,exports){\n/**\n * Adds a class to a given HTML element.\n * @param {HTMLElement} element - The element to which the class will be added\n * @param {String} className - The name of the class to add\n */\n\nmodule.exports = function addClass (element, className) {\n  if (element.classList) {\n    element.classList.add(className);\n  } else {\n    element.className += ' ' + className;\n  }\n};\n},{}],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 * Removes a class from a given HTML elementement.\n * @param {HTMLElement} element - The element from which the class will be removed\n * @param {String} className - The name of the class to remove\n */\n\nmodule.exports = function removeClass (element, className) {\n  var classList = element.classList;\n\n  if (classList !== undefined) {\n    classList.remove(className);\n  }\n  else\n  {\n    classList = element.className.split(/\\s+/);\n    var newClassList = [];\n    classList.forEach(function (c) {\n      if (c !== className) {\n        newClassList.push(c);\n      }\n    });\n    element.className = newClassList.join(' ');\n  }\n};\n\n},{}],23:[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},{}],24:[function(require,module,exports){\n/*\n * @name verifyjQuery\n * @desc Tests the given host object for the presence of jQuery. If no\n *       object is given, the <tt>window</tt> object is used.\n * @param {object} w - Object to test for jQuery.\n * @return {boolean} True if jQuery exists on the object.\n */\nmodule.exports = function verifyjQuery (w) {\n  w = w || window;\n  return !!(w.jQuery && w.jQuery.fn && w.jQuery.fn.jquery);\n};\n},{}],25:[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},{}]},{},[19])\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","(function( w ){\n\t\"use strict\";\n\n\tvar Politespace = function( element ) {\n\t\tif( !element ) {\n\t\t\tthrow new Error( \"Politespace requires an element argument.\" );\n\t\t}\n\n\t\tif( !element.getAttribute ) {\n\t\t\t// Cut the mustard\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element = element;\n\t\tthis.type = this.element.getAttribute( \"type\" );\n\t\tthis.delimiter = this.element.getAttribute( \"data-delimiter\" ) || \" \";\n\t\tthis.reverse = this.element.getAttribute( \"data-reverse\" ) !== null;\n\t\tthis.groupLength = this.element.getAttribute( \"data-grouplength\" ) || 3;\n\t};\n\n\tPolitespace.prototype._divideIntoArray = function( value ) {\n\t\tvar split = ( '' + this.groupLength ).split( ',' ),\n\t\t\tisUniformSplit = split.length === 1,\n\t\t\tdividedValue = [],\n\t\t\tloopIndex = 0,\n\t\t\tgroupLength,\n\t\t\tsubstrStart,\n\t\t\tuseCharCount;\n\n\t\twhile( split.length && loopIndex < value.length ) {\n\t\t\tif( isUniformSplit ) {\n\t\t\t\tgroupLength = split[ 0 ];\n\t\t\t} else {\n\t\t\t\t// use the next split or the rest of the string if open ended, ala \"3,3,\"\n\t\t\t\tgroupLength = split.shift() || value.length - loopIndex;\n\t\t\t}\n\n\t\t\t// Use min if we’re at the end of a reversed string\n\t\t\t// (substrStart below grows larger than the string length)\n\t\t\tuseCharCount = Math.min( parseInt( groupLength, 10 ), value.length - loopIndex );\n\n\t\t\tif( this.reverse ) {\n\t\t\t\tsubstrStart = -1 * (useCharCount + loopIndex);\n\t\t\t} else {\n\t\t\t\tsubstrStart = loopIndex;\n\t\t\t}\n\t\t\tdividedValue.push( value.substr( substrStart, useCharCount ) );\n\t\t\tloopIndex += useCharCount;\n\t\t}\n\n\t\tif( this.reverse ) {\n\t\t\tdividedValue.reverse();\n\t\t}\n\n\t\treturn dividedValue;\n\t};\n\n\tPolitespace.prototype.format = function( value ) {\n\t\tvar val = this.unformat( value );\n\n\t\treturn this._divideIntoArray( val ).join( this.delimiter );\n\t};\n\n\tPolitespace.prototype.trimMaxlength = function( value ) {\n\t\tvar maxlength = this.element.getAttribute( \"maxlength\" );\n\t\t// Note input type=\"number\" maxlength does nothing\n\t\tif( maxlength ) {\n\t\t\tvalue = value.substr( 0, maxlength );\n\t\t}\n\t\treturn value;\n\t};\n\n\tPolitespace.prototype.getValue = function() {\n\t\treturn this.trimMaxlength( this.element.value );\n\t};\n\n\tPolitespace.prototype.update = function() {\n\t\tthis.element.value = this.useProxy() ? this.getValue() : this.format( this.getValue() );\n\t};\n\n\tPolitespace.prototype.unformat = function( value ) {\n\t\treturn value.replace( new RegExp(  this.delimiter, 'g' ), '' );\n\t};\n\n\tPolitespace.prototype.reset = function() {\n\t\tthis.element.value = this.unformat( this.element.value );\n\t};\n\n\tPolitespace.prototype.useProxy = function() {\n\t\treturn this.type === \"number\";\n\t};\n\n\tPolitespace.prototype.updateProxy = function() {\n\t\tvar proxy;\n\t\tif( this.useProxy() ) {\n\t\t\tproxy = this.element.parentNode.firstChild;\n\t\t\tproxy.innerHTML = this.format( this.getValue() );\n\t\t\tproxy.style.width = this.element.offsetWidth + \"px\";\n\t\t}\n\t};\n\n\tPolitespace.prototype.createProxy = function() {\n\t\tif( !this.useProxy() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction getStyle( el, prop ) {\n\t\t\treturn window.getComputedStyle( el, null ).getPropertyValue( prop );\n\t\t}\n\t\tfunction sumStyles( el, props ) {\n\t\t\tvar total = 0;\n\t\t\tfor( var j=0, k=props.length; j<k; j++ ) {\n\t\t\t\ttotal += parseFloat( getStyle( el, props[ j ] ) );\n\t\t\t}\n\t\t\treturn total;\n\t\t}\n\n\t\tvar parent = this.element.parentNode;\n\t\tvar el = document.createElement( \"div\" );\n\t\tvar proxy = document.createElement( \"div\" );\n\t\tproxy.style.font = getStyle( this.element, \"font\" );\n\t\tproxy.style.paddingLeft = sumStyles( this.element, [ \"padding-left\", \"border-left-width\" ] ) + \"px\";\n\t\tproxy.style.paddingRight = sumStyles( this.element, [ \"padding-right\", \"border-right-width\" ] ) + \"px\";\n\t\tproxy.style.top = sumStyles( this.element, [ \"padding-top\", \"border-top-width\", \"margin-top\" ] ) + \"px\";\n\n\t\tel.appendChild( proxy );\n\t\tel.className = \"politespace-proxy active\";\n\t\tvar formEl = parent.replaceChild( el, this.element );\n\t\tel.appendChild( formEl );\n\n\t\tthis.updateProxy();\n\t};\n\n\tw.Politespace = Politespace;\n\n}( this ));\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 addClass = require('../utils/add-class');\nvar removeClass = require('../utils/remove-class');\nvar dispatch = require('../utils/dispatch');\n\nfunction headerClickHandler (event) {\n  (event.preventDefault) ? event.preventDefault() : event.returnValue = false;\n  \n  var expanded = event.target.getAttribute('aria-expanded') === 'true';\n  var toggleClass = expanded ? addClass : removeClass;\n  toggleClass(this, 'usa-banner-header-expanded');\n}\n\nfunction bannerInit () {\n  var headers = select('.usa-banner-header');\n\n  headers.forEach(function (header) {\n    var headerClick = headerClickHandler.bind(header);\n    select('[aria-controls]').forEach(function (button) {\n      dispatch(button, 'click', headerClick);\n    });\n  });\n}\n\nmodule.exports = bannerInit;","var select = require('../utils/select');\nvar addClass = require('../utils/add-class');\nvar removeClass = require('../utils/remove-class');\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  removeClass(panelToShow, 'hidden');\n  otherPanels.forEach(function (el) {\n    addClass(el, '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      addClass(el, '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      removeClass(el, 'hidden');\n    });\n  }\n};\n","var select = require('../../utils/select');\nvar addClass = require('../../utils/add-class');\nvar removeClass = require('../../utils/remove-class');\nvar dispatch = require('../../utils/dispatch');\n\nvar clickHandler = ('ontouchstart' in document.documentElement ? 'touchstart' : 'click');\n\nfunction toggleClass (element, className) {\n  if (element.classList) {\n    element.classList.toggle(className);\n  }\n}\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    toggleClass(element, 'is-visible');\n  });\n  toggleClass(document.body, 'usa-mobile_nav-active');\n  navCloseElement.focus();\n  shouldTrigger = false;\n  return false;\n}\n\nfunction mobileInit () {\n  var navElements = select('.usa-menu-btn, .usa-overlay, .usa-nav-close');\n\n  navElements.forEach(function (element) {\n    dispatch(element, clickHandler, handleNavElements);\n  });\n}\n\nmodule.exports = mobileInit;","var select = require('../../utils/select');\nvar addClass = require('../../utils/add-class');\nvar removeClass = require('../../utils/remove-class');\nvar dispatch = require('../../utils/dispatch');\n\nvar searchForm, searchButton, searchButtonContainer, searchDispatcher;\n\nfunction searchButtonClickHandler (event) {\n  if (isOpen(searchForm)) {\n    closeSearch();\n  } else {\n    openSearch();\n    searchDispatcher = dispatch(document.body, 'click touchstart', searchOpenClickHandler);\n  }\n\n  return false;\n}\n\nfunction searchOpenClickHandler (event) {\n  var target = event.target;\n  if (! searchFormContains(target)) {\n    closeSearch();\n    searchDispatcher.off();\n  }\n}\n\nfunction openSearch () {\n  addClass(searchForm, 'is-visible');\n  addClass(searchButton, 'is-hidden');\n}\n\nfunction closeSearch () {\n  removeClass(searchForm, 'is-visible');\n  removeClass(searchButton, 'is-hidden');\n}\n\nfunction isOpen (element) {\n  var classRegexp = new RegExp('(^| )is-visible( |$)', 'gi');\n  return classRegexp.test(element.className);\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    dispatch(searchButton, 'click touchstart', searchButtonClickHandler);\n  }\n}\n\nmodule.exports = searchInit;","/**\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 addClass = require('../utils/add-class');\nvar removeClass = require('../utils/remove-class');\nvar dispatch = require('../utils/dispatch');\n\nmodule.exports = function validator (el) {\n  var data = getData(el),\n    key,\n    validatorName,\n    validatorPattern,\n    validatorCheckbox,\n    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        if (!validatorPattern.test(el.value)) {\n          removeClass(validatorCheckbox, 'usa-checklist-checked');\n        }\n        else {\n          addClass(validatorCheckbox, 'usa-checklist-checked');\n        }\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 searchInit = require('../components/header/search');\nvar mobileInit = require('../components/header/mobile');\n\nwhenDOMReady(function initHeaders () {\n\n  // Search Toggle\n  searchInit();\n\n  // Mobile Navigation\n  mobileInit();\n\n});\n\n","var verifyjQuery = require('../utils/verify-jquery');\n\n// jQuery Plugin\n\nif (verifyjQuery(window)) {\n\n  var $ = window.jQuery;\n\n  // README: This is necessary because politespace doesn't properly export anything\n  // in its package.json. TODO: Let's open a PR related to this so we can fix it in Politespace.js\n  //\n  var Politespace = require('../../../node_modules/politespace/src/politespace').Politespace;\n\n  var componentName = 'politespace',\n    enhancedAttr = 'data-enhanced',\n    initSelector = '[data-\" + componentName + \"]:not([\" + enhancedAttr + \"])';\n\n  $.fn[ componentName ] = function (){\n    return this.each(function (){\n      var polite = new Politespace(this);\n      if(polite.type === 'number') {\n        polite.createProxy();\n      }\n\n      $(this)\n        .bind('input keydown', function () {\n          polite.updateProxy();\n        })\n        .bind('blur', function () {\n          $(this).closest('.politespace-proxy').addClass('active');\n          polite.update();\n          polite.updateProxy();\n        })\n        .bind('focus', function () {\n          $(this).closest('.politespace-proxy').removeClass('active');\n          polite.reset();\n        })\n        .data(componentName, polite);\n\n      polite.update();\n    });\n  };\n\n\t// auto-init on enhance (which is called on domready)\n  $(function () {\n    $('[data-' + componentName + ']').politespace();\n  });\n\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 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","'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');\nrequire('./initializers/header');\nrequire('./initializers/accordions');\nrequire('./initializers/footer');\nrequire('./initializers/skip-nav');\nrequire('./initializers/forms');\nrequire('./initializers/politespace');\nrequire('./initializers/banner');\n","/**\n * Adds a class to a given HTML element.\n * @param {HTMLElement} element - The element to which the class will be added\n * @param {String} className - The name of the class to add\n */\n\nmodule.exports = function addClass (element, className) {\n  if (element.classList) {\n    element.classList.add(className);\n  } else {\n    element.className += ' ' + className;\n  }\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 * Removes a class from a given HTML elementement.\n * @param {HTMLElement} element - The element from which the class will be removed\n * @param {String} className - The name of the class to remove\n */\n\nmodule.exports = function removeClass (element, className) {\n  var classList = element.classList;\n\n  if (classList !== undefined) {\n    classList.remove(className);\n  }\n  else\n  {\n    classList = element.className.split(/\\s+/);\n    var newClassList = [];\n    classList.forEach(function (c) {\n      if (c !== className) {\n        newClassList.push(c);\n      }\n    });\n    element.className = newClassList.join(' ');\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 verifyjQuery\n * @desc Tests the given host object for the presence of jQuery. If no\n *       object is given, the <tt>window</tt> object is used.\n * @param {object} w - Object to test for jQuery.\n * @return {boolean} True if jQuery exists on the object.\n */\nmodule.exports = function verifyjQuery (w) {\n  w = w || window;\n  return !!(w.jQuery && w.jQuery.fn && w.jQuery.fn.jquery);\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}"],"sourceRoot":"/source/"}