{ "version": 3, "sources": ["../../../node_modules/ev-emitter/ev-emitter.js", "../../../node_modules/lodash/isObject.js", "../../../node_modules/lodash/_freeGlobal.js", "../../../node_modules/lodash/_root.js", "../../../node_modules/lodash/now.js", "../../../node_modules/lodash/_trimmedEndIndex.js", "../../../node_modules/lodash/_baseTrim.js", "../../../node_modules/lodash/_Symbol.js", "../../../node_modules/lodash/_getRawTag.js", "../../../node_modules/lodash/_objectToString.js", "../../../node_modules/lodash/_baseGetTag.js", "../../../node_modules/lodash/isObjectLike.js", "../../../node_modules/lodash/isSymbol.js", "../../../node_modules/lodash/toNumber.js", "../../../node_modules/lodash/debounce.js", "webpack:///webpack/bootstrap", "../../../node_modules/fontfaceobserver/fontfaceobserver.js", "../../../node_modules/@threespot/expand-toggle/index.js", "../../javascript/modules/a11y-menu.js", "../../javascript/modules/carousel.js", "../../javascript/modules/fluid-iframes.js", "../../javascript/modules/font-face.js", "../../javascript/modules/jump-link-nav.js", "../../javascript/modules/nav.js", "../../javascript/lib/tooltips.js", "../../javascript/modules/tooltips.js"], "sourcesContent": ["/**\n * EvEmitter v2.1.1\n * Lil' event emitter\n * MIT License\n */\n\n( function( global, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\nfunction EvEmitter() {}\n\nlet proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) return this;\n\n // set events hash\n let events = this._events = this._events || {};\n // set listeners array\n let listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( !listeners.includes( listener ) ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) return this;\n\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n let onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n let onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n let listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) return this;\n\n let index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n let listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) return this;\n\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice( 0 );\n args = args || [];\n // once stuff\n let onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( let listener of listeners ) {\n let isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n return this;\n};\n\nreturn EvEmitter;\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n", "var root = require('./_root');\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\nmodule.exports = now;\n", "/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n", "var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n", "var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n", "var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n", "var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 * 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 timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\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 clearTimeout(timerId);\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\nmodule.exports = debounce;\n", " \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./index.js\");\n", "/* Font Face Observer v2.3.0 - \u00A9 Bram Stein. License: BSD-3-Clause */(function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&\"object\"==typeof b&&\"function\"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}}\nfunction r(a,b){if(a.a==p){if(b==a)throw new TypeError;a.a=1;a.b=b;v(a)}}function v(a){l(function(){if(a.a!=p)for(;a.f.length;){var b=a.f.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0==a.a?\"function\"==typeof c?e(c.call(void 0,a.b)):e(a.b):1==a.a&&(\"function\"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(h){b(h)}}})}n.prototype.g=function(a){return this.c(void 0,a)};n.prototype.c=function(a,b){var c=this;return new n(function(d,e){c.f.push([a,b,d,e]);v(c)})};\nfunction w(a){return new n(function(b,c){function d(c){return function(d){h[c]=d;e+=1;e==a.length&&b(h)}}var e=0,h=[];0==a.length&&b(h);for(var k=0;kparseInt(a[1],10)):F=!1);return F}function M(a){null===H&&(H=!!a.document.fonts);return H}\nfunction N(a,c){var b=a.style,g=a.weight;if(null===G){var e=document.createElement(\"div\");try{e.style.font=\"condensed 100px sans-serif\"}catch(q){}G=\"\"!==e.style.font}return[b,g,G?a.stretch:\"\",\"100px\",c].join(\" \")}\nD.prototype.load=function(a,c){var b=this,g=a||\"BESbswy\",e=0,q=c||3E3,J=(new Date).getTime();return new Promise(function(K,L){if(M(b.context)&&!I(b.context)){var O=new Promise(function(r,t){function h(){(new Date).getTime()-J>=q?t(Error(\"\"+q+\"ms timeout exceeded\")):b.context.document.fonts.load(N(b,'\"'+b.family+'\"'),g).then(function(n){1<=n.length?r():setTimeout(h,25)},t)}h()}),P=new Promise(function(r,t){e=setTimeout(function(){t(Error(\"\"+q+\"ms timeout exceeded\"))},q)});Promise.race([P,O]).then(function(){clearTimeout(e);\nK(b)},L)}else u(function(){function r(){var d;if(d=-1!=k&&-1!=l||-1!=k&&-1!=m||-1!=l&&-1!=m)(d=k!=l&&k!=m&&l!=m)||(null===E&&(d=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),E=!!d&&(536>parseInt(d[1],10)||536===parseInt(d[1],10)&&11>=parseInt(d[2],10))),d=E&&(k==y&&l==y&&m==y||k==z&&l==z&&m==z||k==A&&l==A&&m==A)),d=!d;d&&(null!==f.parentNode&&f.parentNode.removeChild(f),clearTimeout(e),K(b))}function t(){if((new Date).getTime()-J>=q)null!==f.parentNode&&f.parentNode.removeChild(f),\nL(Error(\"\"+q+\"ms timeout exceeded\"));else{var d=b.context.document.hidden;if(!0===d||void 0===d)k=h.g.offsetWidth,l=n.g.offsetWidth,m=v.g.offsetWidth,r();e=setTimeout(t,50)}}var h=new w(g),n=new w(g),v=new w(g),k=-1,l=-1,m=-1,y=-1,z=-1,A=-1,f=document.createElement(\"div\");f.dir=\"ltr\";x(h,N(b,\"sans-serif\"));x(n,N(b,\"serif\"));x(v,N(b,\"monospace\"));f.appendChild(h.g);f.appendChild(n.g);f.appendChild(v.g);b.context.document.body.appendChild(f);y=h.g.offsetWidth;z=n.g.offsetWidth;A=v.g.offsetWidth;t();\nC(h,function(d){k=d;r()});x(h,N(b,'\"'+b.family+'\",sans-serif'));C(n,function(d){l=d;r()});x(n,N(b,'\"'+b.family+'\",serif'));C(v,function(d){m=d;r()});x(v,N(b,'\"'+b.family+'\",monospace'))})})};\"object\"===typeof module?module.exports=D:(window.FontFaceObserver=D,window.FontFaceObserver.prototype.load=D.prototype.load);}());\n", "/**\n * Wrap the last X words in an HTML tag to prevent them from wrapping (i.e. orphans)\n * @param {HTMLElement} el - Toggle button DOM node\n * @param {Object} opts - Options\n * @param {string} [opts.expandedClasses=\"\"] - Class(es) to apply when expanded\n * @param {string} [opts.activeToggleText=\"\"] - Expanded state toggle button text\n * @param {boolean} [opts.shouldStartExpanded=false] - Whether menu should start expanded\n * @param {function} [opts.onReady=\"\"] - Ready callback function\n */\n'use client';\n\nimport EventEmitter from \"ev-emitter\";\n\nexport default class ExpandToggle extends EventEmitter {\n constructor(el, opts) {\n // Have to call super() first before referencing \u201Cthis\u201D since we\u2019re extending EventEmitter\n // https://stackoverflow.com/a/43591507/673457\n super();\n\n this.el = el;\n this.targetId = this.el.getAttribute(\"data-expands\");\n this.targetEl = document.getElementById(this.targetId);\n this.targetParentEl = this.targetEl.parentNode;\n\n // Ensure target element exist before initializing\n if (!this.targetEl) {\n console.warn(`Can\u2019t find expandable target with id \u201C${this.targetId}\u201D`);\n return;\n }\n\n // Use Object.assign() to merge \u201Copts\u201D object with default values in this.options\n this.options = Object.assign(\n {},\n {\n expandedClasses: \"\", // string, accepts multiple space-separated classes\n activeToggleText: \"\", // expanded state toggle button text\n shouldStartExpanded: false, // component starts expanded on init\n onReady: null // ready callback function\n },\n opts\n );\n\n // Check for custom expanded class(es)\n this.expandedClasses = this.el.getAttribute(\"data-expands-class\") || this.options.expandedClasses;\n\n if (this.expandedClasses.length) {\n // Check if active class string contains multiple classes\n if (this.expandedClasses.indexOf(\" \") > -1) {\n // Convert to array and remove any empty string values\n // caused by having multiple spaces in a row.\n this.expandedClasses = this.expandedClasses\n .split(\" \")\n .filter(n => n.length);\n } else {\n // We still need to convert a single active class to an array\n // so we can use the spread syntax later in classList.add()\n this.expandedClasses = [this.expandedClasses];\n }\n }\n\n // Check if component should start expanded\n this.shouldStartExpanded =\n this.el.hasAttribute(\"data-expanded\") || this.options.shouldStartExpanded;\n\n // Check for custom toggle button text to use when expanded\n this.hasActiveText = false;\n this.textEl = this.el.querySelector(\"[data-expands-text]\");\n\n if (this.textEl) {\n this.defaultToggleText = this.textEl.textContent;\n this.activeToggleText =\n this.textEl.getAttribute(\"data-expands-text\") ||\n this.options.activeToggleText;\n this.hasActiveText = !!this.activeToggleText.length;\n }\n\n this.init();\n }\n\n init() {\n // Store state to avoid calling resize handler after component has been destroyed\n this.hasInitialized = true;\n\n // Accessibility setup\n this.el.setAttribute(\"aria-haspopup\", true);\n this.el.setAttribute(\"aria-expanded\", this.shouldStartExpanded);\n\n // Omit \u201Caria-controls\u201D for now\n // See https://inclusive-components.design/menus-menu-buttons/#ariacontrols\n // this.el.setAttribute(\"aria-controls\", this.targetId);\n this.targetEl.setAttribute(\"aria-hidden\", !this.shouldStartExpanded);\n\n if (this.el.tagName.toLowerCase() === \"a\") {\n this.el.setAttribute(\"role\", \"button\");\n }\n\n // Click event listener on toggle button\n // Note: Callback needs to be assigned to a let so we can remove it since we\u2019re using bind()\n // https://stackoverflow.com/a/22870717/673457\n this.clickHandler = this.toggle.bind(this);\n this.el.addEventListener(\"click\", this.clickHandler);\n\n // Keyboard listeners on toggle button\n this.keydownHandler = this.keyboardEvents.bind(this);\n this.el.addEventListener(\"keydown\", this.keydownHandler);\n\n // Check for onReady callback\n if (typeof this.options.onReady === \"function\") {\n this.options.onReady();\n }\n }\n\n destroy() {\n this.hasInitialized = false;\n\n // Remove event listeners\n this.el.removeEventListener(\"click\", this.clickHandler);\n this.el.removeEventListener(\"keydown\", this.keydownHandler);\n\n // Remove aria attributes\n this.el.removeAttribute(\"aria-haspopup\");\n this.el.removeAttribute(\"aria-expanded\");\n this.targetEl.removeAttribute(\"aria-hidden\");\n\n if (this.el.tagName.toLowerCase() === \"a\") {\n this.el.removeAttribute(\"role\");\n }\n\n // Reset toggle text\n if (this.hasActiveText) {\n this.textEl.textContent = this.defaultToggleText;\n }\n\n // Remove custom classes\n if (this.expandedClasses.length) {\n this.el.classList.remove(...this.expandedClasses);\n this.targetEl.classList.remove(...this.expandedClasses);\n }\n\n this.emitEvent(\"destroy\");\n }\n\n keyboardEvents(event) {\n // Expand with down arrow\n if (event.keyCode == 40) {\n this.expand();\n } else if (event.keyCode == 38 || event.keyCode == 27) {\n // Close with up arrow or escape key\n this.collapse();\n }\n }\n\n expand(event) {\n // Update toggle text\n if (this.hasActiveText) {\n this.textEl.textContent = this.activeToggleText;\n }\n\n // Add classes\n if (this.expandedClasses.length) {\n this.el.classList.add(...this.expandedClasses);\n this.targetEl.classList.add(...this.expandedClasses);\n }\n\n // Update aria attributes\n this.el.setAttribute(\"aria-expanded\", true);\n this.targetEl.setAttribute(\"aria-hidden\", false);\n\n // Emit event and include original event as an argument\n this.emitEvent(\"expand\", event);\n }\n\n collapse(event) {\n // Update toggle text\n if (this.hasActiveText) {\n this.textEl.textContent = this.defaultToggleText;\n }\n\n // Remove classes\n if (this.expandedClasses.length) {\n this.el.classList.remove(...this.expandedClasses);\n this.targetEl.classList.remove(...this.expandedClasses);\n }\n\n // Update aria attributes\n this.el.setAttribute(\"aria-expanded\", false);\n this.targetEl.setAttribute(\"aria-hidden\", true);\n\n // Emit event and include original event as an argument\n this.emitEvent(\"collapse\", event);\n }\n\n toggle(event) {\n // Prevent default in case toggle element is a link instead of a button\n event.preventDefault();\n\n if (this.el.getAttribute(\"aria-expanded\") === \"true\") {\n this.collapse(event);\n } else {\n this.expand(event);\n }\n }\n}\n", "//------------------------------------------------------------------------\n// Accessiblity menu functionality (font size and color theme chooser)\n//\n// NOTE: Saved theme preference is applied on load in critical.js to prevent a FOUC\n//------------------------------------------------------------------------\n\"use strict\";\n\nimport ExpandToggle from '@threespot/expand-toggle';\n\nclass A11yMenu {\n constructor(el) {\n var self = this;\n this.htmlEl = document.documentElement;\n this.el = el;\n this.textSizeEl = document.getElementById(\"text-size\");\n this.themeInputs = this.el.querySelectorAll(\".A11yMenu-theme input\");\n\n // Init toggle\n this.expandToggle = new ExpandToggle(\n document.querySelector(\".A11yMenu-toggle\")\n );\n\n // Update form fields on load to reflect currently selected theme and font size\n this.updateForm();\n\n // Expand the menu on load if the user has never collapsed it before\n if (typeof localStorage !== \"undefined\" && !localStorage.a11yMenu) {\n this.expandToggle.expand()\n }\n\n // Set cookie once menu is collapsed\n this.expandToggle.on(\"collapse\", () => {\n if (typeof localStorage !== \"undefined\" && !localStorage.a11yMenu) {\n localStorage.a11yMenu = true;\n }\n });\n\n // Listen for any changes within the form\n this.el.addEventListener(\"change\", function(evt) {\n var val = evt.target.value;\n\n // If the value of the element that changed is not a number, assume it\u2019s a theme class\n if (isNaN(parseInt(val, 10))) {\n self.updateTheme(val);\n } else {\n self.updateTextSize(val);\n }\n });\n\n // Close when click off of it\n window.addEventListener(\"click\", evt => {\n if (!evt.target.closest(\".A11yMenu\")) {\n this.expandToggle.collapse();\n }\n });\n }\n\n updateTextSize(size) {\n // Apply inline font-size to html element\n this.htmlEl.style.fontSize = size + \"%\";\n\n // Save value to localStorage\n if (typeof localStorage !== \"undefined\") {\n localStorage.textSize = size;\n }\n\n // Trigger window resize event to force all expandable components to recalc their height\n window.dispatchEvent(new Event('resize'));\n }\n\n updateTheme(themeColor) {\n // Find any class names starting with \u201Ct-\u201D and remove them\n var htmlClasses = this.htmlEl.className.replace(/\\b(\\s*?t-.+?)\\b/g, \"\");\n\n // Add new theme class\n this.htmlEl.className = htmlClasses + \" t-\" + themeColor;\n\n // Save to localStorage\n if (typeof localStorage !== \"undefined\") {\n localStorage.theme = themeColor;\n }\n }\n\n // Get current theme and font size values from localStorage and update form fields\n updateForm() {\n if (typeof localStorage !== \"undefined\") {\n if (localStorage.theme) {\n // Select the current theme radio button\n for (var i = 0, len = this.themeInputs.length; i < len; i++) {\n var input = this.themeInputs[i];\n\n if (input.value == localStorage.theme) {\n input.checked = true;\n }\n }\n }\n\n if (localStorage.textSize) {\n // Add \u201Cselected\u201D attribute to current font size\n this.textSizeEl.querySelector(\n '[value=\"' + localStorage.textSize + '\"]'\n ).selected = true;\n }\n }\n }\n}\n\n// Init\nvar a11Menu = new A11yMenu(document.querySelector(\".A11yMenu-form\"));\n", "\"use strict\";\n\nimport debounce from \"lodash/debounce\";\n\nclass Carousel {\n constructor(el) {\n var self = this;\n this.el = el;\n this.carouselList = this.el.querySelector(\".Carousel-list\");\n this.slides = this.el.querySelectorAll(\".Carousel-item\");\n this.captions = this.el.querySelectorAll(\".Carousel-caption\");\n this.counter = this.el.querySelector(\".Carousel-counter\");\n this.buttons = this.el.querySelector(\".Carousel-buttons\")\n this.prevButton = this.el.querySelector(\".Carousel-button--prev\");\n this.nextButton = this.el.querySelector(\".Carousel-button--next\");\n\n this.currentSlideIndex = 0;\n\n this.carouselList.classList.add(\"js-init\");\n\n // to prevent content below slideshow from shifting, set caption height equal to tallest caption\n this.updateContainerHeight();\n\n this.updateButtonState();\n\n this.updateCounter();\n\n //display the first slide\n this.slides[0].classList.add('is-active');\n\n //listen for clicks on prev slide button\n this.prevButton.addEventListener(\"click\", function(evt){\n self.prevSlide();\n });\n\n //listen for clicks on next slide button\n this.nextButton.addEventListener(\"click\", function(evt){\n self.advanceSlide();\n })\n\n //listen for keypress to use left/right arrows to navigate\n window.addEventListener(\"keydown\", function(evt) {\n self.keyboardNav(evt);\n })\n\n // Update maxCaptionHeight on window resize\n window.addEventListener(\n \"resize\",\n debounce(function(event) {\n // console.log('fired debounce');\n self.updateContainerHeight();\n }, 50)\n );\n }\n\n // find the longest caption so the height of the captions can be as tall as the longest\n updateContainerHeight() {\n var maxHeight = 0;\n // find the tallest caption and set that value as the maxCaptionHeight\n for (var i = 0; i < this.captions.length; i++) {\n var caption = this.captions[i];\n var captionHeight = caption.getBoundingClientRect().height;\n\n if (captionHeight > maxHeight) {\n maxHeight = captionHeight;\n }\n }\n\n //add padding to the bottom of the list equivalent to the tallest caption\n this.carouselList.style.paddingBottom = (maxHeight + 36) + \"px\";//magic number\n }\n\n // disable or enable buttons at start and end of list\n updateButtonState() {\n // Disable previous button if at first slide\n if (this.currentSlideIndex === 0) {\n this.prevButton.disabled = true;\n this.nextButton.disabled = false;\n }\n\n else if (this.currentSlideIndex === this.slides.length - 1) {\n this.prevButton.disabled = false;\n this.nextButton.disabled = true;\n }\n\n else {\n this.prevButton.disabled = false;\n this.nextButton.disabled = false;\n }\n }\n\n updateCounter() {\n this.counter.innerHTML = `${this.currentSlideIndex + 1} / ${this.slides.length}`;\n }\n\n // de-increment slides minus 1\n prevSlide() {\n this.currentSlideIndex -= 1;\n this.slides[this.currentSlideIndex + 1].classList.remove('is-active');\n this.slides[this.currentSlideIndex].classList.add('is-active');\n this.updateButtonState();\n this.updateCounter();\n }\n\n // increment slide plus 1\n advanceSlide() {\n this.currentSlideIndex += 1;\n this.slides[this.currentSlideIndex - 1].classList.remove('is-active');\n this.slides[this.currentSlideIndex].classList.add('is-active');\n this.updateButtonState();\n this.updateCounter();\n }\n\n // make carousel navigable with keyboard left/right arrows\n keyboardNav(evt) {\n if (evt.keyCode == 37 && this.currentSlideIndex > 0) {\n // left arrow\n this.prevSlide(this.currentSlideIndex);\n }\n else if (evt.keyCode == 39 && this.currentSlideIndex < (this.slides.length - 1)) {\n // right arrow\n this.advanceSlide(this.currentSlideIndex);\n }\n }\n\n}\n\n// Init\nconst nodes = document.querySelectorAll(\".Carousel\");\nfor (var i = 0, len = nodes.length; i < len; i++) {\n new Carousel(nodes[i]);\n}\n\nexport default Carousel;\n", "//------------------------------------------------------------------------\n// Make iframes responsive, preserving their aspect ratio (like FitVid.js)\n//------------------------------------------------------------------------\n\"use strict\";\n\nimport FluidIframe from \"@threespot/fluid-iframe\";\n\nconst iframes = document.querySelectorAll(\".u-richtext > iframe:not([data-youtube])\");\n\niframes.forEach(el => new FluidIframe(el));\n", "//------------------------------------------------------------------------\n// Setup Font Face Observer to check when fonts have loaded\n// https://fontfaceobserver.com\n// https://www.filamentgroup.com/lab/font-events.html\n// https://jonsuh.com/blog/font-loading-with-font-events/\n// Note: Now that `font-display` is supported in some browsers, check for support first.\n// Once all modern browsers support it, consider loading fontfaceobserver asynchronously,\n// and possibly adding the Promise polyfill via Bable instead of bundling it in fontfaceobserver.\n// http://caniuse.com/#feat=css-font-rendering-controls\n// https://css-tricks.com/font-display-masses/#article-header-id-3\n//------------------------------------------------------------------------\n\n// TODO: Use Font Loading API when supported, dynamically load Font Face Observer when not supported\n\n// Font face observer script allows us to detect when web fonts have been downloaded\n// NOTE: The main file in \u201Cfontfaceobserver\u201D doesn\u2019t include the Promise polyfill so we\u2019re linking to the one that does\nimport FontFaceObserver from 'fontfaceobserver/fontfaceobserver';\n\nconst htmlEl = document.documentElement;\n\n// Only run if fonts have not been previously loaded\nif (\n !htmlEl.classList.contains(\"fonts-loaded\") &&\n (\"sessionStorage\" in window && !sessionStorage.fontsLoaded)\n) {\n var roboto = new FontFaceObserver('Roboto', { weight: 400 });\n var robotoItalic = new FontFaceObserver('Roboto', {\n weight: 400,\n style: 'italic'\n });\n\n var roboto700 = new FontFaceObserver('Roboto', { weight: 700 });\n var robotoItalic700 = new FontFaceObserver('Roboto', {\n weight: 700,\n style: 'italic'\n });\n\n var roboto900 = new FontFaceObserver('Roboto', { weight: 900 });\n\n var robotoCond = new FontFaceObserver('Roboto Condensed', { weight: 400 });\n var robotoCondItalic = new FontFaceObserver('Roboto Condensed', {\n weight: 400,\n style: 'italic'\n });\n\n var robotoCond700 = new FontFaceObserver('Roboto Condensed', { weight: 700 });\n var robotoCondItalic700 = new FontFaceObserver('Roboto Condensed', {\n weight: 700,\n style: 'italic'\n });\n\n var wisdomScript = new FontFaceObserver('Wisdom Script', { weight: 400 });\n\n // Promise polyfill provided by fontfaceobserver.js\n Promise.all([\n roboto.load(),\n robotoItalic.load(),\n roboto700.load(),\n robotoItalic700.load(),\n robotoCond.load(),\n robotoCondItalic.load(),\n robotoCond700.load(),\n robotoCondItalic700.load(),\n wisdomScript.load()\n ]).then(function() {\n // Append loaded class to html element\n htmlEl.className += ' fonts-loaded';\n\n // Set session var so we can skip this code next time\n // Note: Use sessionStorage instead of localStorage because we can't be\n // sure the fonts will still be cached in the future, so start\n // fresh each time a user visits the site.\n if ('sessionStorage' in window) {\n sessionStorage.fontsLoaded = \"true\";\n }\n\n // Trigger window resize event to force expandable components to recalc their height\n window.dispatchEvent(new Event('resize'));\n })\n .catch(function() {\n console.warn('Could not resolve Promise that webfonts loaded');\n });\n}\n", "//------------------------------------------------------------------------\n// Jump link navigation (used on disease pages and news landing)\n//------------------------------------------------------------------------\n\"use strict\";\n\nimport ExpandToggle from \"@threespot/expand-toggle\";\n\nclass JumpLinkNav {\n constructor(el) {\n // NOTE: Breakpoint must match $layout-sidebar-bp\n this.mediaQueryList = window.matchMedia(\"(max-width: 859px)\");// subtract 1px for max-width media queries\n this.el = el;\n this.contentEl = document.getElementById(this.el.getAttribute(\"data-expands\"));\n\n // Listen for breakpoint change\n this.mediaQueryList.addListener(evt => {\n if (evt.matches) {\n this.init();\n } else {\n this.destroy();\n }\n });\n\n // Init on load\n if (this.mediaQueryList.matches) {\n this.init();\n }\n }\n\n init() {\n this.toggleExpand = new ExpandToggle(this.el);\n }\n\n destroy() {\n this.toggleExpand.destroy();\n }\n}\n\n// Init\ndocument.querySelectorAll('.JumpLinkNav-toggle[data-expands]').forEach(el => new JumpLinkNav(el));\n", "//------------------------------------------------------------------------\n// Main nav\n//\n// Note: Requires support for window.matchMedia (IE 10+)\n//------------------------------------------------------------------------\n\"use strict\";\n\nimport ExpandToggle from \"@threespot/expand-toggle\";\nimport debounce from \"lodash/debounce\";\n\nclass MainNav {\n constructor() {\n // NOTE: Breakpoint must match $layout-nav-bp in _layout-vars.scss\n this.mediaQueryList = window.matchMedia(\"(min-width: 1100px)\");\n this.navToggles = document.querySelectorAll(\".Nav [data-expands]\");\n this.navExpandToggles = []; // placeholder to store ExpandToggle instances\n this.navDropdownMenus = document.querySelectorAll(\".Nav-sublist\");\n this.cutoffClass = \"is-cutoff\"; // for dropdown menus that are cutoff on the right\n\n // Init search toggle\n this.initSearchToggle();\n\n // Init nav drop-down menus\n this.initDropdownMenus();\n\n // Setup global event listeners\n this.globalEvents();\n }\n\n initDropdownMenus() {\n // Init dropdown menus (primary and secondary navs)\n this.navToggles.forEach((el) => {\n let expandToggle = new ExpandToggle(el);\n\n // Push to placeholder array so we can control them later\n // e.g. in closeOtherNavToggles() and closeAllNavToggles()\n this.navExpandToggles.push(expandToggle);\n\n // Close other dropdown menus when opening a new one\n expandToggle.on(\"expand\", () => {\n this.closeOtherNavToggles(expandToggle);\n });\n });\n\n // Check if dropdowns are cutoff on the right side.\n window.requestAnimationFrame(this.checkDropdownWidths.bind(this));\n\n // Re-check if dropdowns are cutoff on resize\n window.addEventListener(\n \"resize\",\n debounce(() => {\n window.requestAnimationFrame(this.checkDropdownWidths.bind(this));\n }, 150)\n );\n }\n\n initSearchToggle() {\n this.searchToggle = document.querySelector(\".Header-searchToggle\");\n this.searchField = document.querySelector(\".SearchNav-input\");\n\n // Init search toggle\n this.searchExpandToggle = new ExpandToggle(this.searchToggle);\n\n // Close nav menus when search toggle is expanded\n this.searchExpandToggle.on(\"expand\", () => {\n this.closeAllNavToggles();\n // Focus search input\n this.searchField.focus();\n });\n }\n\n globalEvents() {\n // Close menus when switching from mobile to desktop layout\n this.mediaQueryList.addListener((evt) => {\n this.closeAllNavToggles();\n this.searchExpandToggle.collapse();\n });\n\n // Listen for breakpoint change to determine if mobile\n // nav toggle should be initialized or destroyed.\n this.mediaQueryList.addListener((evt) => {\n if (evt.matches) {\n this.destroyMobileNav();\n } else {\n this.initMobileNav();\n }\n });\n\n // Check if mobile nav toggle should be initialized on load\n if (!this.mediaQueryList.matches) {\n this.initMobileNav();\n }\n\n // Close expanded elements when clicking off of them\n window.addEventListener(\"click\", (evt) => {\n if (\n !evt.target.closest(\".Nav-toggle\") &&\n !evt.target.closest(\".Nav-sublist\") &&\n !evt.target.closest(\".Header-navToggle\") &&\n !evt.target.closest(\"#menu\") &&\n !evt.target.closest(\".Header-searchToggle\") &&\n !evt.target.closest(\"#search-nav\")\n ) {\n this.closeAllNavToggles();\n this.searchExpandToggle.collapse();\n\n // Close mobile menu if initialized\n if (this.mobileNavToggle) {\n this.mobileNavToggle.collapse();\n }\n }\n });\n\n window.addEventListener(\"keydown\", (evt) => {\n // Close menus with escape key\n if (evt.which === 27) {\n // Collapse search menu\n if (this.searchToggle.getAttribute(\"aria-expanded\") == \"true\") {\n this.searchExpandToggle.collapse(evt);\n this.searchToggle.focus();\n } else {\n // Collapse nav menus\n this.closeAllNavToggles();\n }\n }\n\n // Navigate menus using left/right arrow keys\n if (evt.which === 37 || evt.which === 39) {\n let activeMenu = document.querySelector(\n '.Nav-toggle[aria-expanded=\"true\"]'\n );\n\n if (!activeMenu) {\n return false;\n }\n\n // Index of the currently expanded menu\n let activeMenuIndex = this.navExpandToggles\n .map((item) => item.el)\n .indexOf(activeMenu);\n\n // Left arrow\n if (evt.which === 37 && activeMenuIndex > 0) {\n this.navExpandToggles[activeMenuIndex].collapse();\n this.navExpandToggles[activeMenuIndex - 1].expand();\n this.navExpandToggles[activeMenuIndex - 1].el.focus();\n } else if (\n evt.which === 39 &&\n activeMenuIndex < this.navExpandToggles.length - 1\n ) {\n // Right arrow\n this.navExpandToggles[activeMenuIndex].collapse();\n this.navExpandToggles[activeMenuIndex + 1].expand();\n this.navExpandToggles[activeMenuIndex + 1].el.focus();\n }\n }\n });\n }\n\n initMobileNav() {\n this.mobileNavToggle = new ExpandToggle(\n document.querySelector(\".Header-navToggle\")\n );\n }\n\n destroyMobileNav() {\n this.mobileNavToggle.destroy();\n this.mobileNavToggle = null;\n }\n\n // Check if any dropdown menus are cut off on the right side.\n // If so, add a class to right align them.\n checkDropdownWidths() {\n for (var i = 0, len = this.navDropdownMenus.length; i < len; i++) {\n var el = this.navDropdownMenus[i];\n\n // Remove the cutoff class first before measuring\n el.classList.remove(this.cutoffClass);\n\n var bounds = el.getBoundingClientRect();\n\n if (bounds.width + bounds.left > window.innerWidth) {\n el.classList.add(this.cutoffClass);\n } else {\n el.classList.remove(this.cutoffClass);\n }\n }\n }\n\n // Close all nav dropdwn menus\n closeAllNavToggles() {\n this.navExpandToggles.forEach((toggle) => {\n toggle.collapse();\n });\n }\n\n // Close all nav dropdwn menus except the current one\n closeOtherNavToggles(currentToggle) {\n this.navExpandToggles.forEach((toggle) => {\n if (currentToggle !== toggle) {\n toggle.collapse();\n }\n });\n }\n}\n\n// Init\nnew MainNav();\n", "//------------------------------------------------------------------------\n// Tooltips\n//\n// Based on https://inclusive-components.design/tooltips-toggletips/\n//------------------------------------------------------------------------\n\"use strict\";\nimport debounce from \"lodash/debounce\";\n\n/**\n * Wrap the last X words in an HTML tag to prevent them from wrapping (i.e. orphans)\n * @param {HTMLElement} el - Tooltip DOM node\n * @param {Object} opts - Options\n * @param {string} [opts.classes=\"\"] - Class(es) to apply to tooltip\n * @param {number} [opts.gutter=0] - Gutter space around main content well\n */\nexport default class Tooltip {\n constructor(el, opts) {\n this.el = el;\n this.tooltipContent = this.el.getAttribute(\"title\");\n\n if (!this.tooltipContent) {\n console.warn(\n `\u201C${this.el.textContent.trim()}\u201D tooltip has no \u201Ctitle\u201D content`\n );\n return false;\n }\n\n // Use Object.assign() to merge \u201Copts\u201D object with default values in this.options\n this.options = Object.assign(\n {},\n {\n classes: \"\", // string, accepts multiple space-separated classes\n gutter: 0, // gutter space around main content well\n // Prepend a colon for better screenreader output\n prepend: ': ', // HTML to prepend to tooltip\n append: \"\", // HTML to append to tooltip\n wrapText: true // wrapper inner text in a span\n },\n opts\n );\n\n // Markdown regex for converting \u201Ctitle\u201D content to HTML (supports bold, italic, and links)\n // TODO: Split out into separate module\n this.markdownRegex = [\n {\n regex: /\\*\\*(.+?)\\*\\*/g,\n replace: \"$1\"\n },\n {\n regex: /\\*(.+?)\\*/g,\n replace: \"$1\"\n // NOTE: Use this more complex regex if bold test isn\u2019t executed first\n // regex: /([^\\*])\\*([^\\*]+?[^\\*])\\*([^\\*])/g,\n // replace: \"$1$2$3\"\n },\n {\n regex: /\\[(.+?)\\]\\((.+?)\\)/g,\n replace: '$1'\n }\n ];\n\n // Build tooltip, add attributes\n this.setup();\n\n // Event listeners\n this.events();\n\n // Determine tooltip position on load\n window.requestAnimationFrame(this.updatePosition.bind(this));\n }\n\n expandMarkdown(string) {\n this.markdownRegex.forEach(test => {\n string = string.replace(test.regex, test.replace);\n });\n\n return string;\n }\n\n setup() {\n this.isOpen = false;\n this.tooltipContent = this.expandMarkdown(this.tooltipContent);\n\n // Generate a unique ID for each tooltip so we can use \u201Caria-describedby\u201D on the toggle\n // https://gist.github.com/gordonbrander/2230317\n this.uniqueID = Math.random().toString(36).substr(2, 4);\n this.parentEl = this.el.parentNode;\n\n // Convert tag to a link and add aria attributes\n // (button text can only wrap like an inline-block element)\n // Note: Don\u2019t copy the \u201Ctitle\u201D attribute since we don\u2019t need it\n // anymore and it could be announced by a screen reader.\n let linkEl = document.createElement(\"a\");\n linkEl.href = \"#\"; // enables us to style the hover/focus/active states\n linkEl.className = this.el.className;\n linkEl.setAttribute(\"data-tooltip\", \"\");\n linkEl.setAttribute(\"aria-describedby\", \"tooltip-\" + this.uniqueID);\n linkEl.setAttribute(\"aria-expanded\", \"false\");\n linkEl.setAttribute(\"role\", \"button\");\n linkEl.innerHTML = this.el.innerHTML;\n this.el.parentNode.replaceChild(linkEl, this.el);\n this.el = linkEl;\n\n // Build tooltip\n this.tooltipEl = document.createElement(\"span\");\n this.tooltipEl.setAttribute(\"aria-hidden\", \"true\");\n this.tooltipEl.setAttribute(\"data-tooltip-menu\", \"\"); // for styling purposes\n this.tooltipEl.setAttribute(\"id\", `tooltip-${this.uniqueID}`);\n this.tooltipEl.setAttribute(\"role\", \"tooltip\");\n\n if (this.options.classes) {\n this.tooltipEl.setAttribute(\"class\", this.options.classes);\n }\n\n this.tooltipEl.innerHTML =\n this.options.prepend + this.tooltipContent + this.options.append;\n // We also could have built the markup using DOMParser() and template literals but I think it\u2019s harder to read:\n // https://davidwalsh.name/convert-html-stings-dom-nodes\n // this.tooltipEl = new DOMParser().parseFromString(`\n // \n // `, 'text/html').body.firstChild;\n\n // Add tooltip menu element\n this.el.appendChild(this.tooltipEl);\n }\n\n events() {\n // Update tooltip position after web fonts have loaded\n document.documentElement.addEventListener(\"fonts-loaded\", () => {\n window.requestAnimationFrame(this.updatePosition.bind(this));\n });\n\n // Toggle on click\n this.el.addEventListener(\"click\", evt => {\n // Prevent default on clicks inside of tooltip menu\n if (this.tooltipEl.isSameNode(evt.target)) {\n evt.preventDefault();\n } else {\n this.toggle(evt);\n }\n });\n\n // Close tooltip if click off of it\n window.addEventListener(\"click\", evt => {\n if (this.isOpen && !this.el.contains(evt.target)) {\n this.hideTooltip();\n }\n });\n\n // Close tooltip with escape key\n window.addEventListener(\"keydown\", evt => {\n if (this.isOpen && evt.which === 27) {\n this.hideTooltip();\n }\n });\n\n // Hide on resize, recalc position\n window.addEventListener(\n \"resize\",\n debounce(event => {\n if (this.isOpen) {\n this.hideTooltip();\n }\n window.requestAnimationFrame(this.updatePosition.bind(this));\n }, 150)\n );\n }\n\n updatePosition() {\n // Reset alignment classes/attributes, centers tooltip over toggle\n this.el.classList.remove(\"is-fullwidth\");\n this.tooltipEl.setAttribute(\"data-align\", \"\");\n // Disable CSS transitions so we don\u2019t have to wait for them to complete before measuring the tooltip\n this.tooltipEl.style.transition = \"none\";\n // Use setTimeout to force browser to recalc styles first\n window.setTimeout(this.calculatePosition.bind(this), 0);\n }\n\n calculatePosition() {\n let bodyWidth = window.innerWidth - this.options.gutter * 2;\n let bodyRightCutoff = window.innerWidth - this.options.gutter;\n\n // Toggle dimensions\n let toggleBoundingRect = this.el.getBoundingClientRect();\n let toggleLeftOffset = toggleBoundingRect.right;\n let toggleRightOffset = toggleBoundingRect.right;\n\n // Tooltip dimensions\n let tooltipBoundingRect = this.tooltipEl.getBoundingClientRect();\n let tooltipLeftOffset = tooltipBoundingRect.left;\n let tooltipRightOffset = tooltipBoundingRect.right;\n let tooltipWidth = tooltipBoundingRect.width;\n\n let cutoffRight = tooltipRightOffset > bodyRightCutoff;\n let cutoffLeft = tooltipLeftOffset < this.options.gutter;\n\n // Re-enable transitions\n this.tooltipEl.style.removeProperty(\"transition\");\n\n // If tooltip fits, do nothing to keep it centered\n if (!cutoffLeft && !cutoffRight) {\n return false;\n }\n\n // If right side is cutoff\u2026\n if (cutoffRight) {\n // \u2026check if left side would fit before right aligning to toggle\n if (tooltipWidth + this.options.gutter <= toggleRightOffset) {\n this.tooltipEl.setAttribute(\"data-align\", \"right\");\n return false;\n }\n }\n\n // If left side is cutoff\u2026\n if (cutoffLeft) {\n // \u2026check if right side would fit before left aligning to toggle\n if (\n toggleLeftOffset + tooltipWidth <=\n window.innerWidth - this.options.gutter\n ) {\n this.tooltipEl.setAttribute(\"data-align\", \"left\");\n return false;\n }\n }\n\n // Tooltip can\u2019t be aligned to toggle so make it fullwidth\n this.el.classList.add(\"is-fullwidth\");\n this.tooltipEl.setAttribute(\"data-align\", \"full\");\n }\n\n showTooltip(evt) {\n this.isOpen = true;\n this.el.setAttribute(\"aria-expanded\", \"true\");\n this.tooltipEl.setAttribute(\"aria-hidden\", \"false\");\n }\n\n hideTooltip(evt) {\n this.isOpen = false;\n this.el.setAttribute(\"aria-expanded\", \"false\");\n this.tooltipEl.setAttribute(\"aria-hidden\", \"true\");\n }\n\n // Toggle expandable\n toggle(evt) {\n evt.preventDefault();\n\n if (this.isOpen) {\n this.hideTooltip();\n } else {\n this.showTooltip();\n }\n }\n}\n", "// Tooltips\n\"use strict\";\n\nimport Tooltip from \"../lib/tooltips\";\n\nconst init = () => {\n document.querySelectorAll(\"[data-tooltip][title]\").forEach(el => new Tooltip(el, {\n // min space between tooltip and edge of screen\n gutter: 10,\n // prepend: \"\",\n // Append a period if there isn't one for better screen reader experience\n append: el.title.trim().slice(-1) !== \".\" ? `.` : \"\"\n }));\n};\n\n// Init on initial page load\ninit();\n"], "mappings": "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", "names": ["exports", "module", "global", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "Symbol", "exports", "module", "Symbol", "exports", "module", "exports", "module", "Symbol", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "debounce", "__webpack_require__", "module", "exports", "exports", "module", "a", "b", "c", "d", "EventEmitter", "self", "self", "debounce", "FluidIframe", "FontFaceObserver", "import_debounce", "debounce", "import_debounce", "debounce"] }