{"version":3,"sources":["webpack:///./node_modules/lodash-es/throttle.js","webpack:///./js/components/init-accordion.ts","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/lodash-es/now.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/isSymbol.js","webpack:///./node_modules/lodash-es/toNumber.js","webpack:///./node_modules/lodash-es/debounce.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/when-dom-ready/dist/index.es2015.js"],"names":["throttle","func","wait","options","leading","trailing","TypeError","isObject","debounce","calculateHeight","element","currentMaxHeight","style","maxHeight","height","getBoundingClientRect","setProperty","whenDomReady","then","Array","from","document","querySelectorAll","forEach","items","window","addEventListener","content","item","header","querySelector","setTimeout","event","preventDefault","classList","contains","remove","close","add","open","toggle","initialiseAccordion","value","type","freeGlobal","global","Object","freeSelf","self","root","Function","now","Date","Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","getRawTag","isOwn","call","tag","unmasked","e","result","objectToString","baseGetTag","isObjectLike","isSymbol","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","replace","isBinary","test","slice","nativeMax","Math","max","nativeMin","min","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","time","args","thisArg","apply","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","g","module","exports","loadedStates","cb","doc","Promise","resolve","done","indexOf","readyState","resume","val"],"mappings":"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","file":"14-a4341e9e63754a3629de.js","sourcesContent":["import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` 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 throttled 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 `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import throttle from 'lodash/throttle';\r\nimport whenDomReady from 'when-dom-ready';\r\nconst ACTIVE = 'is-active';\r\n/**\r\n * Initialise all accordions\r\n */\r\nfunction initialise() {\r\n const accordions = Array.from(document.querySelectorAll('.js-accordion'));\r\n accordions.forEach(element => {\r\n initialiseAccordion(element);\r\n });\r\n}\r\n/**\r\n * Initialise the accordion\r\n * @param {HTMLElement} element\r\n */\r\nfunction initialiseAccordion(element) {\r\n const items = Array.from(element.querySelectorAll('.js-accordion-item'));\r\n // Setup a resize observer to track changes in content height.\r\n window.addEventListener('resize', throttle(handleResize, 16));\r\n items.forEach(item => {\r\n const header = item.querySelector('.js-accordion-header');\r\n const content = item.querySelector('.js-accordion-content');\r\n if (!header || !content) {\r\n return;\r\n }\r\n // Set initial content height variable.\r\n calculateHeight(content);\r\n // Had to set timeout as Firefox was not calculating correctly, dirtyfix.\r\n setTimeout(() => {\r\n calculateHeight(content);\r\n }, 200);\r\n header.addEventListener('click', event => {\r\n event.preventDefault();\r\n // Toggle accordion content.\r\n toggle(item);\r\n });\r\n });\r\n /**\r\n * Close specified item.\r\n * @param {HTMLElement} item\r\n */\r\n function close(item) {\r\n item.classList.remove(ACTIVE);\r\n }\r\n /**\r\n * Open specified item.\r\n * @param {HTMLElement} item\r\n */\r\n function open(item) {\r\n item.classList.add(ACTIVE);\r\n }\r\n /**\r\n * Toggle specified item.\r\n * @param {HTMLElement} item\r\n */\r\n function toggle(item) {\r\n if (item.classList.contains(ACTIVE)) {\r\n close(item);\r\n }\r\n else {\r\n open(item);\r\n }\r\n }\r\n /**\r\n * Ensure height variables are updated.\r\n */\r\n function handleResize() {\r\n const contents = Array.from(element.querySelectorAll('.js-accordion-content'));\r\n contents.forEach(content => {\r\n calculateHeight(content);\r\n });\r\n }\r\n}\r\n/**\r\n * Calculate the max height of the specified element.\r\n * @param element\r\n */\r\nfunction calculateHeight(element) {\r\n // Cache current value.\r\n const currentMaxHeight = element.style.maxHeight;\r\n // Remove max height.\r\n element.style.maxHeight = 'none';\r\n // Get current height value.\r\n const { height } = element.getBoundingClientRect();\r\n element.style.setProperty('--height', `${height}px`);\r\n // Reset style back to cached value.\r\n element.style.maxHeight = currentMaxHeight;\r\n return height;\r\n}\r\nwhenDomReady().then(initialise);\r\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\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\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\nexport default root;\n","import root from './_root.js';\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\nexport default now;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\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\nexport default 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\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\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\nexport default 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\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isSymbol;\n","import isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\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\nexport default debounce;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/* eslint no-void: \"off\" */\n\n// Loaded ready states\nvar loadedStates = ['interactive', 'complete'];\n\n// Return Promise\nvar whenDomReady = function whenDomReady(cb, doc) {\n\treturn new Promise(function (resolve) {\n\t\t// Allow doc to be passed in as the lone first param\n\t\tif (cb && typeof cb !== 'function') {\n\t\t\tdoc = cb;\n\t\t\tcb = null;\n\t\t}\n\n\t\t// Use global document if we don't have one\n\t\tdoc = doc || window.document;\n\n\t\t// Handle DOM load\n\t\tvar done = function done() {\n\t\t\treturn resolve(void (cb && setTimeout(cb)));\n\t\t};\n\n\t\t// Resolve now if DOM has already loaded\n\t\t// Otherwise wait for DOMContentLoaded\n\t\tif (loadedStates.indexOf(doc.readyState) !== -1) {\n\t\t\tdone();\n\t\t} else {\n\t\t\tdoc.addEventListener('DOMContentLoaded', done);\n\t\t}\n\t});\n};\n\n// Promise chain helper\nwhenDomReady.resume = function (doc) {\n\treturn function (val) {\n\t\treturn whenDomReady(doc).then(function () {\n\t\t\treturn val;\n\t\t});\n\t};\n};\n\nexport default whenDomReady;\n//# sourceMappingURL=index.es2015.js.map\n"],"sourceRoot":""}