{"version":3,"file":"./dist/js/main.js","mappings":"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","sources":["webpack://impulse-wp/external var \"jQuery\"","webpack://impulse-wp/webpack/bootstrap","webpack://impulse-wp/./node_modules/@motionone/dom/dist/utils/resolve-elements.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/is-function.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/gestures/in-view.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/defaults.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/time.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/noop.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/stop-animation.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/controls.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/is-easing-generator.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/is-number.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/is-easing-list.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/mix.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/progress.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/offset.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/clamp.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/interpolate.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/easing.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/wrap.es.js","webpack://impulse-wp/./node_modules/@motionone/easing/dist/cubic-bezier.es.js","webpack://impulse-wp/./node_modules/@motionone/easing/dist/steps.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/is-cubic-bezier.es.js","webpack://impulse-wp/./node_modules/@motionone/animation/dist/utils/easing.es.js","webpack://impulse-wp/./node_modules/@motionone/animation/dist/Animation.es.js","webpack://impulse-wp/./node_modules/@motionone/types/dist/MotionValue.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/data.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/transforms.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/css-var.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/feature-detection.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/easing.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/get-style-name.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/style.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/animate-style.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/array.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/keyframes.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/get-unit.es.js","webpack://impulse-wp/./node_modules/@motionone/utils/dist/is-string.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/utils/options.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/utils/stagger.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/index.es.js","webpack://impulse-wp/./node_modules/@motionone/dom/dist/animate/create-animate.es.js","webpack://impulse-wp/./node_modules/motion/dist/animate.es.js","webpack://impulse-wp/./src/js/components/BreakElementLines.ts","webpack://impulse-wp/./src/js/components/Animations.ts","webpack://impulse-wp/./src/js/components/MobileNav.ts","webpack://impulse-wp/./src/js/main.ts"],"sourcesContent":["module.exports = jQuery;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function resolveElements(elements, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = document.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = document.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","const isFunction = (value) => typeof value === \"function\";\n\nexport { isFunction };\n","import { resolveElements } from '../utils/resolve-elements.es.js';\nimport { isFunction } from '@motionone/utils';\n\nconst thresholds = {\n any: 0,\n all: 1,\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"any\" } = {}) {\n /**\n * If this browser doesn't support IntersectionObserver, return a dummy stop function.\n * Default triggering of onStart is tricky - it could be used for starting/stopping\n * videos, lazy loading content etc. We could provide an option to enable a fallback, or\n * provide a fallback callback option.\n */\n if (typeof IntersectionObserver === \"undefined\") {\n return () => { };\n }\n const elements = resolveElements(elementOrSelector);\n const activeIntersections = new WeakMap();\n const onIntersectionChange = (entries) => {\n entries.forEach((entry) => {\n const onEnd = activeIntersections.get(entry.target);\n /**\n * If there's no change to the intersection, we don't need to\n * do anything here.\n */\n if (entry.isIntersecting === Boolean(onEnd))\n return;\n if (entry.isIntersecting) {\n const newOnEnd = onStart(entry);\n if (isFunction(newOnEnd)) {\n activeIntersections.set(entry.target, newOnEnd);\n }\n else {\n observer.unobserve(entry.target);\n }\n }\n else if (onEnd) {\n onEnd(entry);\n activeIntersections.delete(entry.target);\n }\n });\n };\n const observer = new IntersectionObserver(onIntersectionChange, {\n root,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholds[amount],\n });\n elements.forEach((element) => observer.observe(element));\n return () => observer.disconnect();\n}\n\nexport { inView };\n","const defaults = {\n duration: 0.3,\n delay: 0,\n endDelay: 0,\n repeat: 0,\n easing: \"ease\",\n};\n\nexport { defaults };\n","const time = {\n ms: (seconds) => seconds * 1000,\n s: (milliseconds) => milliseconds / 1000,\n};\n\nexport { time };\n","const noop = () => { };\nconst noopReturn = (v) => v;\n\nexport { noop, noopReturn };\n","function stopAnimation(animation, needsCommit = true) {\n if (!animation || animation.playState === \"finished\")\n return;\n // Suppress error thrown by WAAPI\n try {\n if (animation.stop) {\n animation.stop();\n }\n else {\n needsCommit && animation.commitStyles();\n animation.cancel();\n }\n }\n catch (e) { }\n}\n\nexport { stopAnimation };\n","import { defaults, noop, time } from '@motionone/utils';\nimport { stopAnimation } from './stop-animation.es.js';\n\nconst createAnimation = (factory) => factory();\nconst withControls = (animationFactory, options, duration = defaults.duration) => {\n return new Proxy({\n animations: animationFactory.map(createAnimation).filter(Boolean),\n duration,\n options,\n }, controls);\n};\n/**\n * TODO:\n * Currently this returns the first animation, ideally it would return\n * the first active animation.\n */\nconst getActiveAnimation = (state) => state.animations[0];\nconst controls = {\n get: (target, key) => {\n const activeAnimation = getActiveAnimation(target);\n switch (key) {\n case \"duration\":\n return target.duration;\n case \"currentTime\":\n return time.s((activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) || 0);\n case \"playbackRate\":\n case \"playState\":\n return activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key];\n case \"finished\":\n if (!target.finished) {\n target.finished = Promise.all(target.animations.map(selectFinished)).catch(noop);\n }\n return target.finished;\n case \"stop\":\n return () => {\n target.animations.forEach((animation) => stopAnimation(animation));\n };\n case \"forEachNative\":\n /**\n * This is for internal use only, fire a callback for each\n * underlying animation.\n */\n return (callback) => {\n target.animations.forEach((animation) => callback(animation, target));\n };\n default:\n return typeof (activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) === \"undefined\"\n ? undefined\n : () => target.animations.forEach((animation) => animation[key]());\n }\n },\n set: (target, key, value) => {\n switch (key) {\n case \"currentTime\":\n value = time.ms(value);\n // Fall-through\n case \"playbackRate\":\n for (let i = 0; i < target.animations.length; i++) {\n target.animations[i][key] = value;\n }\n return true;\n }\n return false;\n },\n};\nconst selectFinished = (animation) => animation.finished;\n\nexport { controls, withControls };\n","const isEasingGenerator = (easing) => typeof easing === \"object\" &&\n Boolean(easing.createAnimation);\n\nexport { isEasingGenerator };\n","const isNumber = (value) => typeof value === \"number\";\n\nexport { isNumber };\n","import { isNumber } from './is-number.es.js';\n\nconst isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);\n\nexport { isEasingList };\n","const mix = (min, max, progress) => -progress * min + progress * max + min;\n\nexport { mix };\n","const progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\nexport { progress };\n","import { mix } from './mix.es.js';\nimport { progress } from './progress.es.js';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\nfunction defaultOffset(length) {\n const offset = [0];\n fillOffset(offset, length - 1);\n return offset;\n}\n\nexport { defaultOffset, fillOffset };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { mix } from './mix.es.js';\nimport { noopReturn } from './noop.es.js';\nimport { fillOffset, defaultOffset } from './offset.es.js';\nimport { progress } from './progress.es.js';\nimport { getEasingForSegment } from './easing.es.js';\nimport { clamp } from './clamp.es.js';\n\nfunction interpolate(output, input = defaultOffset(output.length), easing = noopReturn) {\n const length = output.length;\n /**\n * If the input length is lower than the output we\n * fill the input to match. This currently assumes the input\n * is an animation progress value so is a good candidate for\n * moving outside the function.\n */\n const remainder = length - input.length;\n remainder > 0 && fillOffset(input, remainder);\n return (t) => {\n let i = 0;\n for (; i < length - 2; i++) {\n if (t < input[i + 1])\n break;\n }\n let progressInRange = clamp(0, 1, progress(input[i], input[i + 1], t));\n const segmentEasing = getEasingForSegment(easing, i);\n progressInRange = segmentEasing(progressInRange);\n return mix(output[i], output[i + 1], progressInRange);\n };\n}\n\nexport { interpolate };\n","import { isEasingList } from './is-easing-list.es.js';\nimport { wrap } from './wrap.es.js';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingList(easing)\n ? easing[wrap(0, easing.length, i)]\n : easing;\n}\n\nexport { getEasingForSegment };\n","const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","import { noopReturn } from '@motionone/utils';\n\n/*\n Bezier function generator\n\n This has been modified from Gaƫtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) * t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noopReturn;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { clamp } from '@motionone/utils';\n\nconst steps = (steps, direction = \"end\") => (progress) => {\n progress =\n direction === \"end\"\n ? Math.min(progress, 0.999)\n : Math.max(progress, 0.001);\n const expanded = progress * steps;\n const rounded = direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps);\n};\n\nexport { steps };\n","import { isNumber } from './is-number.es.js';\n\nconst isCubicBezier = (easing) => Array.isArray(easing) && isNumber(easing[0]);\n\nexport { isCubicBezier };\n","import { cubicBezier, steps } from '@motionone/easing';\nimport { isFunction, isCubicBezier, noopReturn } from '@motionone/utils';\n\nconst namedEasings = {\n ease: cubicBezier(0.25, 0.1, 0.25, 1.0),\n \"ease-in\": cubicBezier(0.42, 0.0, 1.0, 1.0),\n \"ease-in-out\": cubicBezier(0.42, 0.0, 0.58, 1.0),\n \"ease-out\": cubicBezier(0.0, 0.0, 0.58, 1.0),\n};\nconst functionArgsRegex = /\\((.*?)\\)/;\nfunction getEasingFunction(definition) {\n // If already an easing function, return\n if (isFunction(definition))\n return definition;\n // If an easing curve definition, return bezier function\n if (isCubicBezier(definition))\n return cubicBezier(...definition);\n // If we have a predefined easing function, return\n if (namedEasings[definition])\n return namedEasings[definition];\n // If this is a steps function, attempt to create easing curve\n if (definition.startsWith(\"steps\")) {\n const args = functionArgsRegex.exec(definition);\n if (args) {\n const argsArray = args[1].split(\",\");\n return steps(parseFloat(argsArray[0]), argsArray[1].trim());\n }\n }\n return noopReturn;\n}\n\nexport { getEasingFunction };\n","import { noopReturn, defaults, isEasingGenerator, isEasingList, interpolate } from '@motionone/utils';\nimport { getEasingFunction } from './utils/easing.es.js';\n\nclass Animation {\n constructor(output, keyframes = [0, 1], { easing, duration: initialDuration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, offset, direction = \"normal\", autoplay = true, } = {}) {\n this.startTime = null;\n this.rate = 1;\n this.t = 0;\n this.cancelTimestamp = null;\n this.easing = noopReturn;\n this.duration = 0;\n this.totalDuration = 0;\n this.repeat = 0;\n this.playState = \"idle\";\n this.finished = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n easing = easing || defaults.easing;\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n initialDuration = custom.duration || initialDuration;\n }\n this.repeat = repeat;\n this.easing = isEasingList(easing) ? noopReturn : getEasingFunction(easing);\n this.updateDuration(initialDuration);\n const interpolate$1 = interpolate(keyframes, offset, isEasingList(easing) ? easing.map(getEasingFunction) : noopReturn);\n this.tick = (timestamp) => {\n var _a;\n // TODO: Temporary fix for OptionsResolver typing\n delay = delay;\n let t = 0;\n if (this.pauseTime !== undefined) {\n t = this.pauseTime;\n }\n else {\n t = (timestamp - this.startTime) * this.rate;\n }\n this.t = t;\n // Convert to seconds\n t /= 1000;\n // Rebase on delay\n t = Math.max(t - delay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (this.playState === \"finished\" && this.pauseTime === undefined) {\n t = this.totalDuration;\n }\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = t / this.duration;\n // TODO progress += iterationStart\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n iterationProgress === 1 && currentIteration--;\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const iterationIsOdd = currentIteration % 2;\n if (direction === \"reverse\" ||\n (direction === \"alternate\" && iterationIsOdd) ||\n (direction === \"alternate-reverse\" && !iterationIsOdd)) {\n iterationProgress = 1 - iterationProgress;\n }\n const p = t >= this.totalDuration ? 1 : Math.min(iterationProgress, 1);\n const latest = interpolate$1(this.easing(p));\n output(latest);\n const isAnimationFinished = this.pauseTime === undefined &&\n (this.playState === \"finished\" || t >= this.totalDuration + endDelay);\n if (isAnimationFinished) {\n this.playState = \"finished\";\n (_a = this.resolve) === null || _a === void 0 ? void 0 : _a.call(this, latest);\n }\n else if (this.playState !== \"idle\") {\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n };\n if (autoplay)\n this.play();\n }\n play() {\n const now = performance.now();\n this.playState = \"running\";\n if (this.pauseTime !== undefined) {\n this.startTime = now - this.pauseTime;\n }\n else if (!this.startTime) {\n this.startTime = now;\n }\n this.cancelTimestamp = this.startTime;\n this.pauseTime = undefined;\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n pause() {\n this.playState = \"paused\";\n this.pauseTime = this.t;\n }\n finish() {\n this.playState = \"finished\";\n this.tick(0);\n }\n stop() {\n var _a;\n this.playState = \"idle\";\n if (this.frameRequestId !== undefined) {\n cancelAnimationFrame(this.frameRequestId);\n }\n (_a = this.reject) === null || _a === void 0 ? void 0 : _a.call(this, false);\n }\n cancel() {\n this.stop();\n this.tick(this.cancelTimestamp);\n }\n reverse() {\n this.rate *= -1;\n }\n commitStyles() { }\n updateDuration(duration) {\n this.duration = duration;\n this.totalDuration = duration * (this.repeat + 1);\n }\n get currentTime() {\n return this.t;\n }\n set currentTime(t) {\n if (this.pauseTime !== undefined || this.rate === 0) {\n this.pauseTime = t;\n }\n else {\n this.startTime = performance.now() - t / this.rate;\n }\n }\n get playbackRate() {\n return this.rate;\n }\n set playbackRate(rate) {\n this.rate = rate;\n }\n}\n\nexport { Animation };\n","/**\n * The MotionValue tracks the state of a single animatable\n * value. Currently, updatedAt and current are unused. The\n * long term idea is to use this to minimise the number\n * of DOM reads, and to abstract the DOM interactions here.\n */\nclass MotionValue {\n setAnimation(animation) {\n this.animation = animation;\n animation === null || animation === void 0 ? void 0 : animation.finished.then(() => this.clearAnimation()).catch(() => { });\n }\n clearAnimation() {\n this.animation = this.generator = undefined;\n }\n}\n\nexport { MotionValue };\n","import { MotionValue } from '@motionone/types';\n\nconst data = new WeakMap();\nfunction getAnimationData(element) {\n if (!data.has(element)) {\n data.set(element, {\n transforms: [],\n values: new Map(),\n });\n }\n return data.get(element);\n}\nfunction getMotionValue(motionValues, name) {\n if (!motionValues.has(name)) {\n motionValues.set(name, new MotionValue());\n }\n return motionValues.get(name);\n}\n\nexport { getAnimationData, getMotionValue };\n","import { noopReturn, addUniqueItem } from '@motionone/utils';\nimport { getAnimationData } from '../data.es.js';\n\n/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nconst axes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nconst order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\nconst transformAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n};\nconst rotation = {\n syntax: \"\",\n initialValue: \"0deg\",\n toDefaultUnit: (v) => v + \"deg\",\n};\nconst baseTransformProperties = {\n translate: {\n syntax: \"\",\n initialValue: \"0px\",\n toDefaultUnit: (v) => v + \"px\",\n },\n rotate: rotation,\n scale: {\n syntax: \"\",\n initialValue: 1,\n toDefaultUnit: noopReturn,\n },\n skew: rotation,\n};\nconst transformDefinitions = new Map();\nconst asTransformCssVar = (name) => `--motion-${name}`;\n/**\n * Generate a list of every possible transform key\n */\nconst transforms = [\"x\", \"y\", \"z\"];\norder.forEach((name) => {\n axes.forEach((axis) => {\n transforms.push(name + axis);\n transformDefinitions.set(asTransformCssVar(name + axis), baseTransformProperties[name]);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst compareTransformOrder = (a, b) => transforms.indexOf(a) - transforms.indexOf(b);\n/**\n * Provide a quick way to check if a string is the name of a transform\n */\nconst transformLookup = new Set(transforms);\nconst isTransform = (name) => transformLookup.has(name);\nconst addTransformToElement = (element, name) => {\n // Map x to translateX etc\n if (transformAlias[name])\n name = transformAlias[name];\n const { transforms } = getAnimationData(element);\n addUniqueItem(transforms, name);\n /**\n * TODO: An optimisation here could be to cache the transform in element data\n * and only update if this has changed.\n */\n element.style.transform = buildTransformTemplate(transforms);\n};\nconst buildTransformTemplate = (transforms) => transforms\n .sort(compareTransformOrder)\n .reduce(transformListToString, \"\")\n .trim();\nconst transformListToString = (template, name) => `${template} ${name}(var(${asTransformCssVar(name)}))`;\n\nexport { addTransformToElement, asTransformCssVar, axes, buildTransformTemplate, compareTransformOrder, isTransform, transformAlias, transformDefinitions };\n","import { transformDefinitions } from './transforms.es.js';\n\nconst isCssVar = (name) => name.startsWith(\"--\");\nconst registeredProperties = new Set();\nfunction registerCssVariable(name) {\n if (registeredProperties.has(name))\n return;\n registeredProperties.add(name);\n try {\n const { syntax, initialValue } = transformDefinitions.has(name)\n ? transformDefinitions.get(name)\n : {};\n CSS.registerProperty({\n name,\n inherits: false,\n syntax,\n initialValue,\n });\n }\n catch (e) { }\n}\n\nexport { isCssVar, registerCssVariable, registeredProperties };\n","const testAnimation = (keyframes, options) => document.createElement(\"div\").animate(keyframes, options);\nconst featureTests = {\n cssRegisterProperty: () => typeof CSS !== \"undefined\" &&\n Object.hasOwnProperty.call(CSS, \"registerProperty\"),\n waapi: () => Object.hasOwnProperty.call(Element.prototype, \"animate\"),\n partialKeyframes: () => {\n try {\n testAnimation({ opacity: [1] });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n finished: () => Boolean(testAnimation({ opacity: [0, 1] }, { duration: 0.001 }).finished),\n linearEasing: () => {\n try {\n testAnimation({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n};\nconst results = {};\nconst supports = {};\nfor (const key in featureTests) {\n supports[key] = () => {\n if (results[key] === undefined)\n results[key] = featureTests[key]();\n return results[key];\n };\n}\n\nexport { supports };\n","import { isFunction, defaults, isCubicBezier, progress } from '@motionone/utils';\nimport { supports } from './feature-detection.es.js';\n\n// Create a linear easing point for every x second\nconst resolution = 0.015;\nconst generateLinearEasingPoints = (easing, duration) => {\n let points = \"\";\n const numPoints = Math.round(duration / resolution);\n for (let i = 0; i < numPoints; i++) {\n points += easing(progress(0, numPoints - 1, i)) + \", \";\n }\n return points.substring(0, points.length - 2);\n};\nconst convertEasing = (easing, duration) => {\n if (isFunction(easing)) {\n return supports.linearEasing()\n ? `linear(${generateLinearEasingPoints(easing, duration)})`\n : defaults.easing;\n }\n else {\n return isCubicBezier(easing) ? cubicBezierAsString(easing) : easing;\n }\n};\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\nexport { convertEasing, cubicBezierAsString, generateLinearEasingPoints };\n","import { isTransform, asTransformCssVar, transformAlias } from './transforms.es.js';\n\nfunction getStyleName(key) {\n if (transformAlias[key])\n key = transformAlias[key];\n return isTransform(key) ? asTransformCssVar(key) : key;\n}\n\nexport { getStyleName };\n","import { isCssVar } from './utils/css-var.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { transformDefinitions } from './utils/transforms.es.js';\n\nconst style = {\n get: (element, name) => {\n name = getStyleName(name);\n let value = isCssVar(name)\n ? element.style.getPropertyValue(name)\n : getComputedStyle(element)[name];\n if (!value && value !== 0) {\n const definition = transformDefinitions.get(name);\n if (definition)\n value = definition.initialValue;\n }\n return value;\n },\n set: (element, name, value) => {\n name = getStyleName(name);\n if (isCssVar(name)) {\n element.style.setProperty(name, value);\n }\n else {\n element.style[name] = value;\n }\n },\n};\n\nexport { style };\n","import { getAnimationData, getMotionValue } from './data.es.js';\nimport { isCssVar, registerCssVariable } from './utils/css-var.es.js';\nimport { defaults, isEasingGenerator, isFunction, isEasingList, isNumber, time, noop } from '@motionone/utils';\nimport { isTransform, addTransformToElement, transformDefinitions } from './utils/transforms.es.js';\nimport { convertEasing } from './utils/easing.es.js';\nimport { supports } from './utils/feature-detection.es.js';\nimport { hydrateKeyframes, keyframesList } from './utils/keyframes.es.js';\nimport { style } from './style.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { stopAnimation } from './utils/stop-animation.es.js';\nimport { getUnitConverter } from './utils/get-unit.es.js';\n\nfunction getDevToolsRecord() {\n return window.__MOTION_DEV_TOOLS_RECORD;\n}\nfunction animateStyle(element, key, keyframesDefinition, options = {}, AnimationPolyfill) {\n const record = getDevToolsRecord();\n const isRecording = options.record !== false && record;\n let animation;\n let { duration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, easing = defaults.easing, persist = false, direction, offset, allowWebkitAcceleration = false, autoplay = true, } = options;\n const data = getAnimationData(element);\n const valueIsTransform = isTransform(key);\n let canAnimateNatively = supports.waapi();\n /**\n * If this is an individual transform, we need to map its\n * key to a CSS variable and update the element's transform style\n */\n valueIsTransform && addTransformToElement(element, key);\n const name = getStyleName(key);\n const motionValue = getMotionValue(data.values, name);\n /**\n * Get definition of value, this will be used to convert numerical\n * keyframes into the default value type.\n */\n const definition = transformDefinitions.get(name);\n /**\n * Stop the current animation, if any. Because this will trigger\n * commitStyles (DOM writes) and we might later trigger DOM reads,\n * this is fired now and we return a factory function to create\n * the actual animation that can get called in batch,\n */\n stopAnimation(motionValue.animation, !(isEasingGenerator(easing) && motionValue.generator) &&\n options.record !== false);\n /**\n * Batchable factory function containing all DOM reads.\n */\n return () => {\n const readInitialValue = () => { var _a, _b; return (_b = (_a = style.get(element, name)) !== null && _a !== void 0 ? _a : definition === null || definition === void 0 ? void 0 : definition.initialValue) !== null && _b !== void 0 ? _b : 0; };\n /**\n * Replace null values with the previous keyframe value, or read\n * it from the DOM if it's the first keyframe.\n */\n let keyframes = hydrateKeyframes(keyframesList(keyframesDefinition), readInitialValue);\n /**\n * Detect unit type of keyframes.\n */\n const toUnit = getUnitConverter(keyframes, definition);\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes, key !== \"opacity\", readInitialValue, name, motionValue);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n duration = custom.duration || duration;\n }\n /**\n * If this is a CSS variable we need to register it with the browser\n * before it can be animated natively. We also set it with setProperty\n * rather than directly onto the element.style object.\n */\n if (isCssVar(name)) {\n if (supports.cssRegisterProperty()) {\n registerCssVariable(name);\n }\n else {\n canAnimateNatively = false;\n }\n }\n /**\n * If we've been passed a custom easing function, and this browser\n * does **not** support linear() easing, and the value is a transform\n * (and thus a pure number) we can still support the custom easing\n * by falling back to the animation polyfill.\n */\n if (valueIsTransform &&\n !supports.linearEasing() &&\n (isFunction(easing) || (isEasingList(easing) && easing.some(isFunction)))) {\n canAnimateNatively = false;\n }\n /**\n * If we can animate this value with WAAPI, do so.\n */\n if (canAnimateNatively) {\n /**\n * Convert numbers to default value types. Currently this only supports\n * transforms but it could also support other value types.\n */\n if (definition) {\n keyframes = keyframes.map((value) => isNumber(value) ? definition.toDefaultUnit(value) : value);\n }\n /**\n * If this browser doesn't support partial/implicit keyframes we need to\n * explicitly provide one.\n */\n if (keyframes.length === 1 &&\n (!supports.partialKeyframes() || isRecording)) {\n keyframes.unshift(readInitialValue());\n }\n const animationOptions = {\n delay: time.ms(delay),\n duration: time.ms(duration),\n endDelay: time.ms(endDelay),\n easing: !isEasingList(easing)\n ? convertEasing(easing, duration)\n : undefined,\n direction,\n iterations: repeat + 1,\n fill: \"both\",\n };\n animation = element.animate({\n [name]: keyframes,\n offset,\n easing: isEasingList(easing)\n ? easing.map((thisEasing) => convertEasing(thisEasing, duration))\n : undefined,\n }, animationOptions);\n /**\n * Polyfill finished Promise in browsers that don't support it\n */\n if (!animation.finished) {\n animation.finished = new Promise((resolve, reject) => {\n animation.onfinish = resolve;\n animation.oncancel = reject;\n });\n }\n const target = keyframes[keyframes.length - 1];\n animation.finished\n .then(() => {\n if (persist)\n return;\n // Apply styles to target\n style.set(element, name, target);\n // Ensure fill modes don't persist\n animation.cancel();\n })\n .catch(noop);\n /**\n * This forces Webkit to run animations on the main thread by exploiting\n * this condition:\n * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp?rev=281238#L1099\n *\n * This fixes Webkit's timing bugs, like accelerated animations falling\n * out of sync with main thread animations and massive delays in starting\n * accelerated animations in WKWebView.\n */\n if (!allowWebkitAcceleration)\n animation.playbackRate = 1.000001;\n /**\n * If we can't animate the value natively then we can fallback to the numbers-only\n * polyfill for transforms.\n */\n }\n else if (AnimationPolyfill && valueIsTransform) {\n /**\n * If any keyframe is a string (because we measured it from the DOM), we need to convert\n * it into a number before passing to the Animation polyfill.\n */\n keyframes = keyframes.map((value) => typeof value === \"string\" ? parseFloat(value) : value);\n /**\n * If we only have a single keyframe, we need to create an initial keyframe by reading\n * the current value from the DOM.\n */\n if (keyframes.length === 1) {\n keyframes.unshift(parseFloat(readInitialValue()));\n }\n animation = new AnimationPolyfill((latest) => {\n style.set(element, name, toUnit ? toUnit(latest) : latest);\n }, keyframes, Object.assign(Object.assign({}, options), { duration,\n easing }));\n }\n else {\n const target = keyframes[keyframes.length - 1];\n style.set(element, name, definition && isNumber(target)\n ? definition.toDefaultUnit(target)\n : target);\n }\n if (isRecording) {\n record(element, key, keyframes, {\n duration,\n delay: delay,\n easing,\n repeat,\n offset,\n }, \"motion-one\");\n }\n motionValue.setAnimation(animation);\n if (animation && !autoplay)\n animation.pause();\n return animation;\n };\n}\n\nexport { animateStyle };\n","function addUniqueItem(array, item) {\n array.indexOf(item) === -1 && array.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };\n","function hydrateKeyframes(keyframes, readInitialValue) {\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] === null) {\n keyframes[i] = i ? keyframes[i - 1] : readInitialValue();\n }\n }\n return keyframes;\n}\nconst keyframesList = (keyframes) => Array.isArray(keyframes) ? keyframes : [keyframes];\n\nexport { hydrateKeyframes, keyframesList };\n","import { noopReturn, isString } from '@motionone/utils';\n\nfunction getUnitConverter(keyframes, definition) {\n var _a;\n let toUnit = (definition === null || definition === void 0 ? void 0 : definition.toDefaultUnit) || noopReturn;\n const finalKeyframe = keyframes[keyframes.length - 1];\n if (isString(finalKeyframe)) {\n const unit = ((_a = finalKeyframe.match(/(-?[\\d.]+)([a-z%]*)/)) === null || _a === void 0 ? void 0 : _a[2]) || \"\";\n if (unit)\n toUnit = (value) => value + unit;\n }\n return toUnit;\n}\n\nexport { getUnitConverter };\n","const isString = (value) => typeof value === \"string\";\n\nexport { isString };\n","const getOptions = (options, key) => \n/**\n * TODO: Make test for this\n * Always return a new object otherwise delay is overwritten by results of stagger\n * and this results in no stagger\n */\noptions[key] ? Object.assign(Object.assign({}, options), options[key]) : Object.assign({}, options);\n\nexport { getOptions };\n","import { isNumber, isFunction } from '@motionone/utils';\nimport { getEasingFunction } from '@motionone/animation';\n\nfunction stagger(duration = 0.1, { start = 0, from = 0, easing } = {}) {\n return (i, total) => {\n const fromIndex = isNumber(from) ? from : getFromIndex(from, total);\n const distance = Math.abs(fromIndex - i);\n let delay = duration * distance;\n if (easing) {\n const maxDelay = total * duration;\n const easingFunction = getEasingFunction(easing);\n delay = easingFunction(delay / maxDelay) * maxDelay;\n }\n return start + delay;\n };\n}\nfunction getFromIndex(from, total) {\n if (from === \"first\") {\n return 0;\n }\n else {\n const lastIndex = total - 1;\n return from === \"last\" ? lastIndex : lastIndex / 2;\n }\n}\nfunction resolveOption(option, i, total) {\n return isFunction(option) ? option(i, total) : option;\n}\n\nexport { getFromIndex, resolveOption, stagger };\n","import { Animation } from '@motionone/animation';\nimport { createAnimate } from './create-animate.es.js';\n\nconst animate = createAnimate(Animation);\n\nexport { animate };\n","import { invariant } from 'hey-listen';\nimport { animateStyle } from './animate-style.es.js';\nimport { getOptions } from './utils/options.es.js';\nimport { resolveElements } from '../utils/resolve-elements.es.js';\nimport { withControls } from './utils/controls.es.js';\nimport { resolveOption } from '../utils/stagger.es.js';\n\nfunction createAnimate(AnimatePolyfill) {\n return function animate(elements, keyframes, options = {}) {\n elements = resolveElements(elements);\n const numElements = elements.length;\n invariant(Boolean(numElements), \"No valid element provided.\");\n invariant(Boolean(keyframes), \"No keyframes defined.\");\n /**\n * Create and start new animations\n */\n const animationFactories = [];\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n for (const key in keyframes) {\n const valueOptions = getOptions(options, key);\n valueOptions.delay = resolveOption(valueOptions.delay, i, numElements);\n const animation = animateStyle(element, key, keyframes[key], valueOptions, AnimatePolyfill);\n animationFactories.push(animation);\n }\n }\n return withControls(animationFactories, options, \n /**\n * TODO:\n * If easing is set to spring or glide, duration will be dynamically\n * generated. Ideally we would dynamically generate this from\n * animation.effect.getComputedTiming().duration but this isn't\n * supported in iOS13 or our number polyfill. Perhaps it's possible\n * to Proxy animations returned from animateStyle that has duration\n * as a getter.\n */\n options.duration);\n };\n}\n\nexport { createAnimate };\n","import { animate as animate$1, withControls } from '@motionone/dom';\nimport { isFunction } from '@motionone/utils';\nimport { Animation } from '@motionone/animation';\n\nfunction animateProgress(target, options = {}) {\n return withControls([\n () => {\n const animation = new Animation(target, [0, 1], options);\n animation.finished.catch(() => { });\n return animation;\n },\n ], options, options.duration);\n}\nfunction animate(target, keyframesOrOptions, options) {\n const factory = isFunction(target) ? animateProgress : animate$1;\n return factory(target, keyframesOrOptions, options);\n}\n\nexport { animate, animateProgress };\n","interface Options {\n\telement?: string;\n\tclass?: string;\n\tcallback?: (() => void) | null;\n}\n\nconst breakElementLines = (options: Options = {}) => {\n\tconst defaults = {\n\t\telement: '.has-heading-highlight-color',\n\t\tclass: 'underline',\n\t\tcallback: null,\n\t};\n\n\toptions = Object.assign({}, defaults, options);\n\tif (!options.element) {\n\t\treturn;\n\t}\n\tconst elements = Array.from(document.querySelectorAll(options.element));\n\n\telements.forEach((element) => {\n\t\tif (element.textContent) {\n\t\t\tconst parentNode = element.parentNode;\n\t\t\tif (parentNode && options.element) {\n\t\t\t\tlet parent = parentNode as HTMLElement;\n\t\t\t\tconst parentTag = parent.tagName.toLowerCase();\n\t\t\t\tif ('mark' === parentTag || 'em' === parentTag) {\n\t\t\t\t\tparent = parent.parentNode as HTMLElement;\n\t\t\t\t}\n\t\t\t\tparent.classList.add('parent--' + options.element.split('.').join(''));\n\t\t\t}\n\n\t\t\tif (element.querySelector('a')) {\n\t\t\t\telement = element.querySelector('a') as HTMLElement;\n\t\t\t}\n\n\t\t\tconst textContent = element.textContent ?? '';\n\t\t\tconst text = textContent.split(' ');\n\t\t\telement.innerHTML = '' + text.join(' ') + '';\n\t\t\tlet spanOffset: boolean | number = false;\n\t\t\tlet newlineContent = '';\n\t\t\tconst lines = [];\n\n\t\t\tconst spans = Array.from(element.querySelectorAll('span'));\n\t\t\tspans.forEach((span) => {\n\t\t\t\tconst currentSpanOffset = span.offsetTop;\n\t\t\t\tif (spanOffset === false) spanOffset = currentSpanOffset;\n\n\t\t\t\tif (currentSpanOffset !== spanOffset && newlineContent) {\n\t\t\t\t\tlines.push(newlineContent.trim());\n\t\t\t\t\tnewlineContent = '';\n\t\t\t\t\tspanOffset = currentSpanOffset;\n\t\t\t\t}\n\n\t\t\t\tnewlineContent += span.textContent + ' ';\n\t\t\t});\n\n\t\t\tlines.push(newlineContent.trim());\n\t\t\telement.innerHTML =\n\t\t\t\t'' +\n\t\t\t\tlines.join(' ') +\n\t\t\t\t'';\n\t\t}\n\t});\n\n\tif (options.callback) options.callback();\n};\nexport default breakElementLines;\n","import { animate, inView } from 'motion';\nimport breakElementLines from './BreakElementLines';\nclass Animations {\n\tconstructor() {\n\t\tthis.animateHighlights = this.animateHighlights.bind(this); // Binding the method to the class instance\n\t}\n\tinit() {\n\t\tlet initialAnimation = true;\n\t\tlet width = window.innerWidth;\n\t\tlet resizeDebouncer: ReturnType;\n\t\tconst delay = 200; // set your desired delay here\n\n\t\twindow.addEventListener('resize', () => {\n\t\t\tif (initialAnimation || window.innerWidth !== width) {\n\t\t\t\tclearTimeout(resizeDebouncer);\n\t\t\t\tresizeDebouncer = setTimeout(this.animateHighlights, delay);\n\t\t\t\tinitialAnimation = false;\n\t\t\t\twidth = window.innerWidth;\n\t\t\t}\n\t\t});\n\t\twindow.dispatchEvent(new Event('resize'));\n\t}\n\n\tanimateHighlights() {\n\t\tbreakElementLines({ element: '.has-heading-highlight-color', class: 'underline' });\n\t\tconst highlights = document.querySelectorAll('.underline');\n\t\tif (highlights) {\n\t\t\thighlights.forEach((highlight) => {\n\t\t\t\thighlight.innerHTML +=\n\t\t\t\t\t'';\n\t\t\t});\n\n\t\t\tinView('.underline', ({ target }) => {\n\t\t\t\tanimate(\n\t\t\t\t\ttarget.querySelector('svg') as Element,\n\t\t\t\t\t{ clipPath: 'inset(0 0 0 0)' },\n\t\t\t\t\t{ delay: 0.2, duration: 0.9, easing: [0.17, 0.55, 0.55, 1] }\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\tbreakElementLines({ element: '.has-heading-script-color', class: 'italic-underline' });\n\t\tconst italicHighlights = document.querySelectorAll('.italic-underline');\n\t\tif (italicHighlights) {\n\t\t\titalicHighlights.forEach((highlight) => {\n\t\t\t\thighlight.innerHTML +=\n\t\t\t\t\t'';\n\t\t\t});\n\n\t\t\tinView('.italic-underline', ({ target }) => {\n\t\t\t\tanimate(\n\t\t\t\t\ttarget.querySelector('svg') as Element,\n\t\t\t\t\t{ clipPath: 'inset(0 0 0 0)' },\n\t\t\t\t\t{ delay: 0.2, duration: 0.9, easing: [0.17, 0.55, 0.55, 1] }\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\tbreakElementLines({ element: '.has-heading-underline-color', class: 'heading-underline' });\n\t\tconst headingCopyUnderline = document.querySelectorAll('.heading-underline');\n\t\tif (headingCopyUnderline) {\n\t\t\theadingCopyUnderline.forEach((highlight) => {\n\t\t\t\thighlight.innerHTML +=\n\t\t\t\t\t'';\n\t\t\t});\n\n\t\t\tinView('.heading-underline', ({ target }) => {\n\t\t\t\tanimate(\n\t\t\t\t\ttarget.querySelector('svg') as Element,\n\t\t\t\t\t{ clipPath: 'inset(0 0 0 0)' },\n\t\t\t\t\t{ delay: 0.2, duration: 0.9, easing: [0.17, 0.55, 0.55, 1] }\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\tbreakElementLines({ element: '.has-body-underline-color', class: 'body-underline' });\n\t\tconst bodyCopyUnderline = document.querySelectorAll('.body-underline');\n\t\tif (bodyCopyUnderline) {\n\t\t\tbodyCopyUnderline.forEach((highlight) => {\n\t\t\t\thighlight.innerHTML +=\n\t\t\t\t\t'';\n\t\t\t});\n\n\t\t\tinView('.body-underline', ({ target }) => {\n\t\t\t\tanimate(\n\t\t\t\t\ttarget.querySelector('svg') as Element,\n\t\t\t\t\t{ clipPath: 'inset(0 0 0 0)' },\n\t\t\t\t\t{ delay: 0.2, duration: 0.9, easing: [0.17, 0.55, 0.55, 1] }\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport default new Animations();\n","class MobileNav {\n\tinit() {\n\t\t$('[data-toggle-menu]').on('click', this.toggleMobileMenu);\n\t\t$('[data-submenu-toggle]').on('click', this.toggleMobileSubMenu);\n\t\twindow.addEventListener('scroll', this.addHeaderClass);\n\t\t$(document).on('load', () => {\n\t\t\tthis.vhMobileHeight();\n\t\t});\n\t}\n\n\t// Resize vh for mobile menu height\n\tvhMobileHeight() {\n\t\tconst vh = window.innerHeight * 0.01;\n\t\tdocument.documentElement.style.setProperty('--vh', `${vh}px`);\n\t}\n\n\taddHeaderClass() {\n\t\tconst header = document.querySelector('.header__wrapper');\n\t\tconst scrollPosition = window.scrollY;\n\n\t\tif (header && scrollPosition > 20) {\n\t\t\theader.classList.add('header-small');\n\t\t} else if (header) {\n\t\t\theader.classList.remove('header-small');\n\t\t}\n\t}\n\n\t// Toggle mobile menu\n\ttoggleMobileMenu(e: { preventDefault: () => void }) {\n\t\te.preventDefault();\n\t\tif ($('body').is('.open-nav')) {\n\t\t\t$('body').removeClass('open-nav');\n\t\t\t$(this).attr('aria-expanded', 'false');\n\t\t\t$(this).attr('title', 'Open main menu');\n\t\t\t$(this).removeClass('header__hamburger-menu--close');\n\t\t\tthis.vhMobileHeight();\n\t\t} else {\n\t\t\t$('body').addClass('open-nav');\n\t\t\t$(this).attr('aria-expanded', 'true');\n\t\t\t$(this).attr('title', 'Close main menu');\n\t\t\t$(this).addClass('header__hamburger-menu--close');\n\t\t}\n\t}\n\n\t// Toggle submenus within mobile menu\n\ttoggleMobileSubMenu(e: { preventDefault: () => void }) {\n\t\te.preventDefault();\n\t\tconst parent = $(this).parent();\n\t\tif (parent.is('.open-submenu')) {\n\t\t\tparent.removeClass('open-submenu');\n\t\t\t$(this).attr('aria-expanded', 'false');\n\t\t} else {\n\t\t\tparent.addClass('open-submenu');\n\t\t\t$(this).attr('aria-expanded', 'true');\n\t\t}\n\t}\n}\n\nexport default new MobileNav();\n","import Animations from './components/Animations';\nimport MobileNav from './components/MobileNav';\n\n/**\n * Controller class.\n *\n * Standardizes how we hook into event listeners and create components.\n */\nclass Controller {\n\tconstructor() {\n\t\tthis.init();\n\n\t\twindow.addEventListener('resize', this.resized);\n\t\twindow.addEventListener('load', this.loaded);\n\t}\n\n\tinit() {\n\t\tMobileNav.init();\n\t\tAnimations.init();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tresized() {\n\t\tMobileNav.vhMobileHeight();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tloaded() {}\n}\n\n// Run controller.\nnew Controller();\n"],"names":["module","exports","jQuery","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","resolveElements","elements","selectorCache","_a","document","querySelectorAll","Element","Array","from","isFunction","value","thresholds","any","all","inView","elementOrSelector","onStart","root","margin","rootMargin","amount","IntersectionObserver","activeIntersections","WeakMap","observer","entries","forEach","entry","onEnd","get","target","isIntersecting","Boolean","newOnEnd","set","unobserve","delete","threshold","element","observe","disconnect","defaults","duration","delay","endDelay","repeat","easing","time","seconds","milliseconds","noop","noopReturn","v","stopAnimation","animation","needsCommit","playState","stop","commitStyles","cancel","e","createAnimation","factory","withControls","animationFactory","options","Proxy","animations","map","filter","controls","key","activeAnimation","finished","Promise","selectFinished","catch","callback","i","length","isEasingGenerator","isEasingList","isArray","mix","min","max","progress","fillOffset","offset","remaining","offsetProgress","push","clamp","Math","interpolate","output","input","defaultOffset","remainder","t","progressInRange","segmentEasing","rangeSize","wrap","getEasingForSegment","calcBezier","a1","a2","cubicBezier","mX1","mY1","mX2","mY2","getTForX","aX","x","lowerBound","upperBound","currentX","currentT","abs","binarySubdivide","isCubicBezier","namedEasings","ease","functionArgsRegex","definition","startsWith","args","exec","argsArray","split","steps","direction","expanded","rounded","floor","ceil","parseFloat","trim","Animation","constructor","keyframes","initialDuration","autoplay","this","startTime","rate","cancelTimestamp","totalDuration","resolve","reject","custom","updateDuration","interpolate$1","tick","timestamp","pauseTime","currentIteration","iterationProgress","iterationIsOdd","p","latest","call","frameRequestId","requestAnimationFrame","play","now","performance","pause","finish","cancelAnimationFrame","reverse","currentTime","playbackRate","MotionValue","setAnimation","then","clearAnimation","generator","data","getAnimationData","has","transforms","values","Map","axes","transformAlias","y","z","rotation","syntax","initialValue","toDefaultUnit","baseTransformProperties","translate","rotate","scale","skew","transformDefinitions","asTransformCssVar","name","axis","compareTransformOrder","a","b","indexOf","transformLookup","Set","isTransform","buildTransformTemplate","sort","reduce","transformListToString","template","isCssVar","registeredProperties","testAnimation","createElement","animate","featureTests","cssRegisterProperty","CSS","Object","hasOwnProperty","waapi","prototype","partialKeyframes","opacity","linearEasing","results","supports","convertEasing","points","numPoints","round","substring","generateLinearEasingPoints","cubicBezierAsString","c","d","getStyleName","style","getPropertyValue","getComputedStyle","setProperty","animateStyle","keyframesDefinition","AnimationPolyfill","record","window","__MOTION_DEV_TOOLS_RECORD","isRecording","persist","allowWebkitAcceleration","valueIsTransform","canAnimateNatively","array","item","transform","addTransformToElement","motionValue","motionValues","getMotionValue","readInitialValue","_b","hydrateKeyframes","keyframesList","toUnit","finalKeyframe","unit","match","getUnitConverter","add","registerProperty","inherits","registerCssVariable","some","unshift","animationOptions","iterations","fill","thisEasing","onfinish","oncancel","assign","getOptions","resolveOption","option","total","AnimatePolyfill","numElements","animationFactories","valueOptions","animateProgress","keyframesOrOptions","arguments","class","textContent","_element$textContent","parentNode","parent","parentTag","tagName","toLowerCase","classList","join","querySelector","text","innerHTML","spanOffset","newlineContent","lines","span","currentSpanOffset","offsetTop","Animations","_classCallCheck","animateHighlights","bind","resizeDebouncer","_this","initialAnimation","width","innerWidth","addEventListener","clearTimeout","setTimeout","dispatchEvent","Event","breakElementLines","highlights","highlight","_ref","clipPath","italicHighlights","_ref2","headingCopyUnderline","_ref3","bodyCopyUnderline","_ref4","MobileNav","$","on","toggleMobileMenu","toggleMobileSubMenu","addHeaderClass","vhMobileHeight","vh","innerHeight","documentElement","concat","header","scrollPosition","scrollY","remove","preventDefault","is","removeClass","attr","addClass","Controller","init","resized","loaded"],"sourceRoot":""}