{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/classlist-polyfill/src/index.js","node_modules/domready/ready.js","node_modules/elem-dataset/dist/index.js","node_modules/element-closest/element-closest.js","node_modules/keyboardevent-key-polyfill/index.js","node_modules/lodash.debounce/index.js","node_modules/object-assign/index.js","node_modules/receptor/behavior/index.js","node_modules/receptor/compose/index.js","node_modules/receptor/delegate/index.js","node_modules/receptor/delegateAll/index.js","node_modules/receptor/ignore/index.js","node_modules/receptor/index.js","node_modules/receptor/keymap/index.js","node_modules/receptor/once/index.js","node_modules/resolve-id-refs/index.js","src/js/components/accordion.js","src/js/components/banner.js","src/js/components/footer.js","src/js/components/index.js","src/js/components/navigation.js","src/js/components/password.js","src/js/components/search.js","src/js/components/skipnav.js","src/js/components/validator.js","src/js/config.js","src/js/events.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/start.js","src/js/utils/active-element.js","src/js/utils/behavior.js","src/js/utils/focus-trap.js","src/js/utils/is-in-viewport.js","src/js/utils/select.js","src/js/utils/toggle-field-mask.js","src/js/utils/toggle-form-input.js","src/js/utils/toggle.js","src/js/utils/validate-input.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","window","self","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","this","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","l","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","testElement","createMethod","original","DOMTokenList","prototype","_toggle","definition","define","_typeof","amd","_listener","fns","doc","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","fn","setTimeout","Boolean","dataset","aB","element","map","attributes","getter","value","setter","removeAttribute","j","attribute","prop","slice","charAt","toUpperCase","bind","set","ElementProto","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","elements","ownerDocument","querySelectorAll","closest","nodeType","parentNode","keyboardeventKeyPolyfill","polyfill","KeyboardEvent","proto","x","key","keys","which","keyCode","isArray","shiftKey","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","fromCharCode","toLowerCase","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","Function","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","isSymbol","toNumber","other","valueOf","isBinary","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","debounced","isInvoking","cancel","clearTimeout","flush","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","getOwnPropertyNames","test2","test3","forEach","err","shouldUseNative","target","source","from","symbols","to","val","toObject","s","delegate","delegateAll","DELEGATE_PATTERN","popKey","obj","events","props","listeners","reduce","memo","handler","match","capture","passive","listener","_type","getListeners","concat","functions","some","event","compose","selectors","delegates","behavior","ignore","keymap","MODIFIERS","Alt","Control","Ctrl","Shift","hasModifiers","modifier","getEventKey","_key","wrapped","currentTarget","RE_TRIM","RE_SPLIT","str","ids","getElementById","id","querySelector","el","select","isElementInViewport","CLICK","PREFIX","prefix","ACCORDION","BUTTON","EXPANDED","getAccordionButtons","accordion","filter","button","toggleButton","expanded","safeExpanded","multiselectable","_defineProperty","preventDefault","scrollIntoView","init","show","hide","getButtons","HEADER","EXPANDED_CLASS","lastInnerWidth","debounce","HIDDEN","SCOPE","NAV","COLLAPSIBLE","resize","innerWidth","hidden","list","collapseEl","HIDE_MAX_WIDTH","DEBOUNCE_RATE","teardown","banner","footer","navigation","password","search","skipnav","validator","navActive","FocusTrap","NAV_LINKS","NAV_CONTROL","OPENERS","CLOSE_BUTTON","OVERLAY","CLOSERS","TOGGLES","ACTIVE_CLASS","isActive","body","toggleNav","active","safeActive","focusTrap","update","closeButton","menuButton","focus","activeElement","closer","getBoundingClientRect","width","onMenuClose","hideActiveNavDropdown","_CLICK","acc","btn","trapContainer","Escape","toggleFormInput","LINK","lastButton","FORM","toggleSearch","context","form","input","once","style","outline","validate","keyup change","input[data-validation-element]","elproto","HTMLElement","hasAttribute","domready","uswds","components","on","Behavior","sequence","_len","seq","_this","off","focusableElements","firstTabStop","lastTabStop","additionalKeyBindings","tabEventHandler","tabAhead","tabBack","keyMappings","Tab","Shift+Tab","keydown","win","docEl","rect","top","left","bottom","innerHeight","clientHeight","right","clientWidth","selection","field","mask","resolveIdRefs","toggleFieldMask","PRESSED","SHOW_ATTR","pressed","textContent","showText","hideText","controls","CHECKED_CLASS","data","validationElement","checkList","entries","_ref","_ref2","_slicedToArray","startsWith","validatorName","substr","validatorPattern","RegExp","validatorSelector","validatorCheckbox","checked"],"mappings":"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","file":"uswds.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut'\n }\n };\n\n // Function keys (F1-24).\n var i;\n for (i = 1; i < 25; i++) {\n keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;\n }\n\n // Printable ASCII characters.\n var letter = '';\n for (i = 65; i < 91; i++) {\n letter = String.fromCharCode(i);\n keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];\n }\n\n function polyfill () {\n if (!('KeyboardEvent' in window) ||\n 'key' in KeyboardEvent.prototype) {\n return false;\n }\n\n // Polyfill `key` on `KeyboardEvent`.\n var proto = {\n get: function (x) {\n var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];\n\n if (Array.isArray(key)) {\n key = key[+this.shiftKey];\n }\n\n return key;\n }\n };\n Object.defineProperty(KeyboardEvent.prototype, 'key', proto);\n return proto;\n }\n\n if (typeof define === 'function' && define.amd) {\n define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n module.exports = keyboardeventKeyPolyfill;\n } else if (window) {\n window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;\n }\n\n})();\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('../delegate');\nconst delegateAll = require('../delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","// polyfill Element.prototype.closest\nrequire('element-closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = event.target.closest(selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('../delegate');\nconst compose = require('../compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","module.exports = {\n behavior: require('./behavior'),\n delegate: require('./delegate'),\n delegateAll: require('./delegateAll'),\n ignore: require('./ignore'),\n keymap: require('./keymap'),\n};\n","require('keyboardevent-key-polyfill');\n\n// these are the only relevant modifiers supported on all platforms,\n// according to MDN:\n// \nconst MODIFIERS = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Ctrl': 'ctrlKey',\n 'Shift': 'shiftKey'\n};\n\nconst MODIFIER_SEPARATOR = '+';\n\nconst getEventKey = function(event, hasModifiers) {\n var key = event.key;\n if (hasModifiers) {\n for (var modifier in MODIFIERS) {\n if (event[MODIFIERS[modifier]] === true) {\n key = [modifier, key].join(MODIFIER_SEPARATOR);\n }\n }\n }\n return key;\n};\n\nmodule.exports = function keymap(keys) {\n const hasModifiers = Object.keys(keys).some(function(key) {\n return key.indexOf(MODIFIER_SEPARATOR) > -1;\n });\n return function(event) {\n var key = getEventKey(event, hasModifiers);\n return [key, key.toLowerCase()]\n .reduce(function(result, _key) {\n if (_key in keys) {\n result = keys[key].call(this, event);\n }\n return result;\n }, undefined);\n };\n};\n\nmodule.exports.MODIFIERS = MODIFIERS;\n","module.exports = function once(listener, options) {\n var wrapped = function wrappedOnce(e) {\n e.currentTarget.removeEventListener(e.type, wrapped, options);\n return listener.call(this, e);\n };\n return wrapped;\n};\n\n","'use strict';\n\nvar RE_TRIM = /(^\\s+)|(\\s+$)/g;\nvar RE_SPLIT = /\\s+/;\n\nvar trim = String.prototype.trim\n ? function(str) { return str.trim(); }\n : function(str) { return str.replace(RE_TRIM, ''); };\n\nvar queryById = function(id) {\n return this.querySelector('[id=\"' + id.replace(/\"/g, '\\\\\"') + '\"]');\n};\n\nmodule.exports = function resolveIds(ids, doc) {\n if (typeof ids !== 'string') {\n throw new Error('Expected a string but got ' + (typeof ids));\n }\n\n if (!doc) {\n doc = window.document;\n }\n\n var getElementById = doc.getElementById\n ? doc.getElementById.bind(doc)\n : queryById.bind(doc);\n\n ids = trim(ids).split(RE_SPLIT);\n\n // XXX we can short-circuit here because trimming and splitting a\n // string of just whitespace produces an array containing a single,\n // empty string\n if (ids.length === 1 && ids[0] === '') {\n return [];\n }\n\n return ids\n .map(function(id) {\n var el = getElementById(id);\n if (!el) {\n throw new Error('no element with id: \"' + id + '\"');\n }\n return el;\n });\n};\n","const select = require('../utils/select');\nconst behavior = require('../utils/behavior');\nconst toggle = require('../utils/toggle');\nconst isElementInViewport = require('../utils/is-in-viewport');\nconst { CLICK } = require('../events');\nconst { prefix: PREFIX } = require('../config');\n\nconst ACCORDION = `.${PREFIX}-accordion, .${PREFIX}-accordion--bordered`;\nconst BUTTON = `.${PREFIX}-accordion__button[aria-controls]`;\nconst EXPANDED = 'aria-expanded';\nconst MULTISELECTABLE = 'aria-multiselectable';\n\n/**\n * Get an Array of button elements belonging directly to the given\n * accordion element.\n * @param {HTMLElement} accordion\n * @return {array}\n */\nconst getAccordionButtons = (accordion) => {\n const buttons = select(BUTTON, accordion);\n\n return buttons.filter(button => button.closest(ACCORDION) === accordion);\n};\n\n/**\n * Toggle a button's \"pressed\" state, optionally providing a target\n * state.\n *\n * @param {HTMLButtonElement} button\n * @param {boolean?} expanded If no state is provided, the current\n * state will be toggled (from false to true, and vice-versa).\n * @return {boolean} the resulting state\n */\nconst toggleButton = (button, expanded) => {\n const accordion = button.closest(ACCORDION);\n let safeExpanded = expanded;\n\n if (!accordion) {\n throw new Error(`${BUTTON} is missing outer ${ACCORDION}`);\n }\n\n safeExpanded = toggle(button, expanded);\n\n // XXX multiselectable is opt-in, to preserve legacy behavior\n const multiselectable = accordion.getAttribute(MULTISELECTABLE) === 'true';\n\n if (safeExpanded && !multiselectable) {\n getAccordionButtons(accordion).forEach((other) => {\n if (other !== button) {\n toggle(other, false);\n }\n });\n }\n};\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} true\n */\nconst showButton = button => toggleButton(button, true);\n\n/**\n * @param {HTMLButtonElement} button\n * @return {boolean} false\n */\nconst hideButton = button => toggleButton(button, false);\n\nconst accordion = behavior({\n [CLICK]: {\n [BUTTON](event) {\n event.preventDefault();\n\n toggleButton(this);\n\n if (this.getAttribute(EXPANDED) === 'true') {\n // We were just expanded, but if another accordion was also just\n // collapsed, we may no longer be in the viewport. This ensures\n // that we are still visible, so the user isn't confused.\n if (!isElementInViewport(this)) this.scrollIntoView();\n }\n },\n },\n}, {\n init(root) {\n select(BUTTON, root).forEach((button) => {\n const expanded = button.getAttribute(EXPANDED) === 'true';\n toggleButton(button, expanded);\n });\n },\n ACCORDION,\n BUTTON,\n show: showButton,\n hide: hideButton,\n toggle: toggleButton,\n getButtons: getAccordionButtons,\n});\n\nmodule.exports = accordion;\n","const behavior = require('../utils/behavior');\nconst { CLICK } = require('../events');\nconst { prefix: PREFIX } = require('../config');\n\nconst HEADER = `.${PREFIX}-banner__header`;\nconst EXPANDED_CLASS = `${PREFIX}-banner__header--expanded`;\n\nconst toggleBanner = function toggleEl(event) {\n event.preventDefault();\n this.closest(HEADER).classList.toggle(EXPANDED_CLASS);\n};\n\nmodule.exports = behavior({\n [CLICK]: {\n [`${HEADER} [aria-controls]`]: toggleBanner,\n },\n});\n","const debounce = require('lodash.debounce');\nconst behavior = require('../utils/behavior');\nconst select = require('../utils/select');\nconst { CLICK } = require('../events');\nconst { prefix: PREFIX } = require('../config');\n\nconst HIDDEN = 'hidden';\nconst SCOPE = `.${PREFIX}-footer--big`;\nconst NAV = `${SCOPE} nav`;\nconst BUTTON = `${NAV} .${PREFIX}-footer__primary-link`;\nconst COLLAPSIBLE = `.${PREFIX}-footer__primary-content--collapsible`;\n\nconst HIDE_MAX_WIDTH = 480;\nconst DEBOUNCE_RATE = 180;\n\nfunction showPanel() {\n if (window.innerWidth < HIDE_MAX_WIDTH) {\n const collapseEl = this.closest(COLLAPSIBLE);\n collapseEl.classList.toggle(HIDDEN);\n\n // NB: this *should* always succeed because the button\n // selector is scoped to \".{prefix}-footer-big nav\"\n const collapsibleEls = select(COLLAPSIBLE, collapseEl.closest(NAV));\n\n collapsibleEls.forEach((el) => {\n if (el !== collapseEl) {\n el.classList.add(HIDDEN);\n }\n });\n }\n}\n\nlet lastInnerWidth;\n\nconst resize = debounce(() => {\n if (lastInnerWidth === window.innerWidth) return;\n lastInnerWidth = window.innerWidth;\n const hidden = window.innerWidth < HIDE_MAX_WIDTH;\n select(COLLAPSIBLE).forEach(list => list.classList.toggle(HIDDEN, hidden));\n}, DEBOUNCE_RATE);\n\nmodule.exports = behavior({\n [CLICK]: {\n [BUTTON]: showPanel,\n },\n}, {\n // export for use elsewhere\n HIDE_MAX_WIDTH,\n DEBOUNCE_RATE,\n\n init() {\n resize();\n window.addEventListener('resize', resize);\n },\n\n teardown() {\n window.removeEventListener('resize', resize);\n },\n});\n","const accordion = require('./accordion');\nconst banner = require('./banner');\nconst footer = require('./footer');\nconst navigation = require('./navigation');\nconst password = require('./password');\nconst search = require('./search');\nconst skipnav = require('./skipnav');\nconst validator = require('./validator');\n\nmodule.exports = {\n accordion,\n banner,\n footer,\n navigation,\n password,\n search,\n skipnav,\n validator,\n};\n","const behavior = require('../utils/behavior');\nconst select = require('../utils/select');\nconst toggle = require('../utils/toggle');\nconst FocusTrap = require('../utils/focus-trap');\nconst accordion = require('./accordion');\n\nconst { CLICK } = require('../events');\nconst { prefix: PREFIX } = require('../config');\n\nconst BODY = 'body';\nconst NAV = `.${PREFIX}-nav`;\nconst NAV_LINKS = `${NAV} a`;\nconst NAV_CONTROL = `button.${PREFIX}-nav__link`;\nconst OPENERS = `.${PREFIX}-menu-btn`;\nconst CLOSE_BUTTON = `.${PREFIX}-nav__close`;\nconst OVERLAY = `.${PREFIX}-overlay`;\nconst CLOSERS = `${CLOSE_BUTTON}, .${PREFIX}-overlay`;\nconst TOGGLES = [NAV, OVERLAY].join(', ');\n\nconst ACTIVE_CLASS = 'usa-js-mobile-nav--active';\nconst VISIBLE_CLASS = 'is-visible';\n\nlet navigation;\nlet navActive;\n\nconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);\n\nconst toggleNav = (active) => {\n const { body } = document;\n const safeActive = typeof active === 'boolean' ? active : !isActive();\n\n body.classList.toggle(ACTIVE_CLASS, safeActive);\n\n select(TOGGLES).forEach(el => el.classList.toggle(VISIBLE_CLASS, safeActive));\n\n navigation.focusTrap.update(safeActive);\n\n const closeButton = body.querySelector(CLOSE_BUTTON);\n const menuButton = body.querySelector(OPENERS);\n\n if (safeActive && closeButton) {\n // The mobile nav was just activated, so focus on the close button,\n // which is just before all the nav elements in the tab order.\n closeButton.focus();\n } else if (!safeActive && document.activeElement === closeButton && menuButton) {\n // The mobile nav was just deactivated, and focus was on the close\n // button, which is no longer visible. We don't want the focus to\n // disappear into the void, so focus on the menu button if it's\n // visible (this may have been what the user was just focused on,\n // if they triggered the mobile nav by mistake).\n menuButton.focus();\n }\n\n return safeActive;\n};\n\nconst resize = () => {\n const closer = document.body.querySelector(CLOSE_BUTTON);\n\n if (isActive() && closer && closer.getBoundingClientRect().width === 0) {\n // When the mobile nav is active, and the close box isn't visible,\n // we know the user's viewport has been resized to be larger.\n // Let's make the page state consistent by deactivating the mobile nav.\n navigation.toggleNav.call(closer, false);\n }\n};\n\nconst onMenuClose = () => navigation.toggleNav.call(navigation, false);\nconst hideActiveNavDropdown = () => {\n toggle(navActive, false);\n navActive = null;\n};\n\n\nnavigation = behavior({\n [CLICK]: {\n [NAV_CONTROL]() {\n // If another nav is open, close it\n if (navActive && navActive !== this) {\n hideActiveNavDropdown();\n }\n // store a reference to the last clicked nav link element, so we\n // can hide the dropdown if another element on the page is clicked\n if (navActive) {\n hideActiveNavDropdown();\n } else {\n navActive = this;\n toggle(navActive, true);\n }\n\n // Do this so the event handler on the body doesn't fire\n return false;\n },\n [BODY]() {\n if (navActive) {\n hideActiveNavDropdown();\n }\n },\n [OPENERS]: toggleNav,\n [CLOSERS]: toggleNav,\n [NAV_LINKS]() {\n // A navigation link has been clicked! We want to collapse any\n // hierarchical navigation UI it's a part of, so that the user\n // can focus on whatever they've just selected.\n\n // Some navigation links are inside accordions; when they're\n // clicked, we want to collapse those accordions.\n const acc = this.closest(accordion.ACCORDION);\n\n if (acc) {\n accordion.getButtons(acc).forEach(btn => accordion.hide(btn));\n }\n\n // If the mobile navigation menu is active, we want to hide it.\n if (isActive()) {\n navigation.toggleNav.call(navigation, false);\n }\n },\n },\n}, {\n init(root) {\n const trapContainer = root.querySelector(NAV);\n\n if (trapContainer) {\n navigation.focusTrap = FocusTrap(trapContainer, {\n Escape: onMenuClose,\n });\n }\n\n resize();\n window.addEventListener('resize', resize, false);\n },\n teardown() {\n window.removeEventListener('resize', resize, false);\n navActive = false;\n },\n focusTrap: null,\n toggleNav,\n});\n\nmodule.exports = navigation;\n","const behavior = require('../utils/behavior');\nconst toggleFormInput = require('../utils/toggle-form-input');\n\nconst { CLICK } = require('../events');\nconst { prefix: PREFIX } = require('../config');\n\nconst LINK = `.${PREFIX}-show-password, .${PREFIX}-show-multipassword`;\n\nfunction toggle(event) {\n event.preventDefault();\n toggleFormInput(this);\n}\n\nmodule.exports = behavior({\n [CLICK]: {\n [LINK]: toggle,\n },\n});\n","const ignore = require('receptor/ignore');\nconst behavior = require('../utils/behavior');\nconst select = require('../utils/select');\n\nconst { CLICK } = require('../events');\n\nconst BUTTON = '.js-search-button';\nconst FORM = '.js-search-form';\nconst INPUT = '[type=search]';\nconst CONTEXT = 'header'; // XXX\n\nlet lastButton;\n\nconst getForm = (button) => {\n const context = button.closest(CONTEXT);\n return context\n ? context.querySelector(FORM)\n : document.querySelector(FORM);\n};\n\nconst toggleSearch = (button, active) => {\n const form = getForm(button);\n\n if (!form) {\n throw new Error(`No ${FORM} found for search toggle in ${CONTEXT}!`);\n }\n\n /* eslint-disable no-param-reassign */\n button.hidden = active;\n form.hidden = !active;\n /* eslint-enable */\n\n if (!active) {\n return;\n }\n\n const input = form.querySelector(INPUT);\n\n if (input) {\n input.focus();\n }\n // when the user clicks _outside_ of the form w/ignore(): hide the\n // search, then remove the listener\n const listener = ignore(form, () => {\n if (lastButton) {\n hideSearch.call(lastButton); // eslint-disable-line no-use-before-define\n }\n\n document.body.removeEventListener(CLICK, listener);\n });\n\n // Normally we would just run this code without a timeout, but\n // IE11 and Edge will actually call the listener *immediately* because\n // they are currently handling this exact type of event, so we'll\n // make sure the browser is done handling the current click event,\n // if any, before we attach the listener.\n setTimeout(() => {\n document.body.addEventListener(CLICK, listener);\n }, 0);\n};\n\nfunction showSearch() {\n toggleSearch(this, true);\n lastButton = this;\n}\n\nfunction hideSearch() {\n toggleSearch(this, false);\n lastButton = undefined;\n}\n\nconst search = behavior({\n [CLICK]: {\n [BUTTON]: showSearch,\n },\n}, {\n init(target) {\n select(BUTTON, target).forEach((button) => {\n toggleSearch(button, false);\n });\n },\n teardown() {\n // forget the last button clicked\n lastButton = undefined;\n },\n});\n\nmodule.exports = search;\n","const once = require('receptor/once');\nconst behavior = require('../utils/behavior');\nconst { CLICK } = require('../events');\nconst { prefix: PREFIX } = require('../config');\n\nconst LINK = `.${PREFIX}-skipnav[href^=\"#\"], .${PREFIX}-footer__return-to-top [href^=\"#\"]`;\nconst MAINCONTENT = 'main-content';\n\nfunction setTabindex() {\n // NB: we know because of the selector we're delegating to below that the\n // href already begins with '#'\n const id = this.getAttribute('href');\n const target = document.getElementById((id === '#') ? MAINCONTENT : id.slice(1));\n\n if (target) {\n target.style.outline = '0';\n target.setAttribute('tabindex', 0);\n target.focus();\n target.addEventListener('blur', once(() => {\n target.setAttribute('tabindex', -1);\n }));\n } else {\n // throw an error?\n }\n}\n\nmodule.exports = behavior({\n [CLICK]: {\n [LINK]: setTabindex,\n },\n});\n","const behavior = require('../utils/behavior');\nconst validate = require('../utils/validate-input');\n\nfunction change() {\n validate(this);\n}\n\nconst validator = behavior({\n 'keyup change': {\n 'input[data-validation-element]': change,\n },\n});\n\nmodule.exports = validator;\n","module.exports = {\n prefix: 'usa',\n};\n","module.exports = {\n // This used to be conditionally dependent on whether the\n // browser supported touch events; if it did, `CLICK` was set to\n // `touchstart`. However, this had downsides:\n //\n // * It pre-empted mobile browsers' default behavior of detecting\n // whether a touch turned into a scroll, thereby preventing\n // users from using some of our components as scroll surfaces.\n //\n // * Some devices, such as the Microsoft Surface Pro, support *both*\n // touch and clicks. This meant the conditional effectively dropped\n // support for the user's mouse, frustrating users who preferred\n // it on those systems.\n CLICK: 'click',\n};\n","\nconst elproto = window.HTMLElement.prototype;\nconst HIDDEN = 'hidden';\n\nif (!(HIDDEN in elproto)) {\n Object.defineProperty(elproto, HIDDEN, {\n get() {\n return this.hasAttribute(HIDDEN);\n },\n set(value) {\n if (value) {\n this.setAttribute(HIDDEN, '');\n } else {\n this.removeAttribute(HIDDEN);\n }\n },\n });\n}\n","\n// polyfills HTMLElement.prototype.classList and DOMTokenList\nrequire('classlist-polyfill');\n// polyfills HTMLElement.prototype.hidden\nrequire('./element-hidden');\n","\nconst domready = require('domready');\n\n/**\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\n * older browsers, so must be loaded first.\n */\nrequire('./polyfills');\n\nconst uswds = require('./config');\n\nconst components = require('./components');\n\nuswds.components = components;\n\ndomready(() => {\n const target = document.body;\n Object.keys(components)\n .forEach((key) => {\n const behavior = components[key];\n behavior.on(target);\n });\n});\n\nmodule.exports = uswds;\n","module.exports = (htmlDocument = document) => htmlDocument.activeElement;\n","const assign = require('object-assign');\nconst Behavior = require('receptor/behavior');\n\n/**\n * @name sequence\n * @param {...Function} seq an array of functions\n * @return { closure } callHooks\n */\n// We use a named function here because we want it to inherit its lexical scope\n// from the behavior props object, not from the module\nconst sequence = (...seq) => function callHooks(target = document.body) {\n seq.forEach((method) => {\n if (typeof this[method] === 'function') {\n this[method].call(this, target);\n }\n });\n};\n\n/**\n * @name behavior\n * @param {object} events\n * @param {object?} props\n * @return {receptor.behavior}\n */\nmodule.exports = (events, props) => Behavior(events, assign({\n on: sequence('init', 'add'),\n off: sequence('teardown', 'remove'),\n}, props));\n","const assign = require('object-assign');\nconst { keymap } = require('receptor');\nconst behavior = require('./behavior');\nconst select = require('./select');\nconst activeElement = require('./active-element');\n\nconst FOCUSABLE = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable]';\n\nconst tabHandler = (context) => {\n const focusableElements = select(FOCUSABLE, context);\n const firstTabStop = focusableElements[0];\n const lastTabStop = focusableElements[focusableElements.length - 1];\n\n // Special rules for when the user is tabbing forward from the last focusable element,\n // or when tabbing backwards from the first focusable element\n function tabAhead(event) {\n if (activeElement() === lastTabStop) {\n event.preventDefault();\n firstTabStop.focus();\n }\n }\n\n function tabBack(event) {\n if (activeElement() === firstTabStop) {\n event.preventDefault();\n lastTabStop.focus();\n }\n }\n\n return {\n firstTabStop,\n lastTabStop,\n tabAhead,\n tabBack,\n };\n};\n\nmodule.exports = (context, additionalKeyBindings = {}) => {\n const tabEventHandler = tabHandler(context);\n\n // TODO: In the future, loop over additional keybindings and pass an array\n // of functions, if necessary, to the map keys. Then people implementing\n // the focus trap could pass callbacks to fire when tabbing\n const keyMappings = keymap(assign({\n Tab: tabEventHandler.tabAhead,\n 'Shift+Tab': tabEventHandler.tabBack,\n }, additionalKeyBindings));\n\n const focusTrap = behavior({\n keydown: keyMappings,\n }, {\n init() {\n // TODO: is this desireable behavior? Should the trap always do this by default or should\n // the component getting decorated handle this?\n tabEventHandler.firstTabStop.focus();\n },\n update(isActive) {\n if (isActive) {\n this.on();\n } else {\n this.off();\n }\n },\n });\n\n return focusTrap;\n};\n","// https://stackoverflow.com/a/7557433\nfunction isElementInViewport(el, win = window,\n docEl = document.documentElement) {\n const rect = el.getBoundingClientRect();\n\n return (\n rect.top >= 0\n && rect.left >= 0\n && rect.bottom <= (win.innerHeight || docEl.clientHeight)\n && rect.right <= (win.innerWidth || docEl.clientWidth)\n );\n}\n\nmodule.exports = isElementInViewport;\n","\n\n/**\n * @name isElement\n * @desc returns whether or not the given argument is a DOM element.\n * @param {any} value\n * @return {boolean}\n */\nconst isElement = value => value && typeof value === 'object' && value.nodeType === 1;\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 {Document|HTMLElement?} context - The context to traverse the DOM\n * in. If not provided, it defaults to the document.\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\n */\nmodule.exports = (selector, context) => {\n if (typeof selector !== 'string') {\n return [];\n }\n\n if (!context || !isElement(context)) {\n context = window.document; // eslint-disable-line no-param-reassign\n }\n\n const selection = context.querySelectorAll(selector);\n return Array.prototype.slice.call(selection);\n};\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 = (field, mask) => {\n field.setAttribute('autocapitalize', 'off');\n field.setAttribute('autocorrect', 'off');\n field.setAttribute('type', mask ? 'password' : 'text');\n};\n","const resolveIdRefs = require('resolve-id-refs');\nconst toggleFieldMask = require('./toggle-field-mask');\n\nconst CONTROLS = 'aria-controls';\nconst PRESSED = 'aria-pressed';\nconst SHOW_ATTR = 'data-show-text';\nconst HIDE_ATTR = 'data-hide-text';\n\n/**\n * Replace the word \"Show\" (or \"show\") with \"Hide\" (or \"hide\") in a string.\n * @param {string} showText\n * @return {strong} hideText\n */\nconst getHideText = showText => showText.replace(/\\bShow\\b/i, show => `${show[0] === 'S' ? 'H' : 'h'}ide`);\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 * @return {boolean}\n */\nmodule.exports = (el) => {\n // this is the *target* state:\n // * if the element has the attr and it's !== \"true\", pressed is true\n // * otherwise, pressed is false\n const pressed = el.hasAttribute(PRESSED)\n && el.getAttribute(PRESSED) !== 'true';\n\n const fields = resolveIdRefs(el.getAttribute(CONTROLS));\n fields.forEach(field => toggleFieldMask(field, pressed));\n\n if (!el.hasAttribute(SHOW_ATTR)) {\n el.setAttribute(SHOW_ATTR, el.textContent);\n }\n\n const showText = el.getAttribute(SHOW_ATTR);\n const hideText = el.getAttribute(HIDE_ATTR) || getHideText(showText);\n\n el.textContent = pressed ? showText : hideText; // eslint-disable-line no-param-reassign\n el.setAttribute(PRESSED, pressed);\n return pressed;\n};\n","const EXPANDED = 'aria-expanded';\nconst CONTROLS = 'aria-controls';\nconst HIDDEN = 'hidden';\n\nmodule.exports = (button, expanded) => {\n let safeExpanded = expanded;\n\n if (typeof safeExpanded !== 'boolean') {\n safeExpanded = button.getAttribute(EXPANDED) === 'false';\n }\n\n button.setAttribute(EXPANDED, safeExpanded);\n\n const id = button.getAttribute(CONTROLS);\n const controls = document.getElementById(id);\n if (!controls) {\n throw new Error(`No toggle target found with id: \"${id}\"`);\n }\n\n if (safeExpanded) {\n controls.removeAttribute(HIDDEN);\n } else {\n controls.setAttribute(HIDDEN, '');\n }\n\n return safeExpanded;\n};\n","\nconst dataset = require('elem-dataset');\n\nconst { prefix: PREFIX } = require('../config');\n\nconst CHECKED = 'aria-checked';\nconst CHECKED_CLASS = `${PREFIX}-checklist__item--checked`;\n\nmodule.exports = function validate(el) {\n const data = dataset(el);\n const id = data.validationElement;\n const checkList = id.charAt(0) === '#'\n ? document.querySelector(id)\n : document.getElementById(id);\n\n if (!checkList) {\n throw new Error(`No validation element found with id: \"${id}\"`);\n }\n\n Object.entries(data).forEach(([key, value]) => {\n if (key.startsWith('validate')) {\n const validatorName = key.substr('validate'.length).toLowerCase();\n const validatorPattern = new RegExp(value);\n const validatorSelector = `[data-validator=\"${validatorName}\"]`;\n const validatorCheckbox = checkList.querySelector(validatorSelector);\n\n if (!validatorCheckbox) {\n throw new Error(`No validator checkbox found for: \"${validatorName}\"`);\n }\n\n const checked = validatorPattern.test(el.value);\n validatorCheckbox.classList.toggle(CHECKED_CLASS, checked);\n validatorCheckbox.setAttribute(CHECKED, checked);\n }\n });\n};\n"]}