{"version":3,"file":"static/chunks/9150.fd24e8132be8dab9.js","mappings":"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","sources":["webpack://_N_E/./node_modules/lodash.throttle/index.js","webpack://_N_E/./components/PhotoCred/PhotoCred.js","webpack://_N_E/./components/PhotoCred/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/value/use-will-change/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-in-view.mjs","webpack://_N_E/./hooks/useVisibilityPercentage.ts","webpack://_N_E/./components/VerticalScroller/VerticalScroller.js","webpack://_N_E/./components/VerticalScroller/index.js","webpack://_N_E/./hooks/useIntersectionObserver.js","webpack://_N_E/./hooks/useMediaQuery.ts","webpack://_N_E/./hooks/useIsoMorphicLayoutEffect.js","webpack://_N_E/./hooks/useScrollDirection.js","webpack://_N_E/./components/PhotoCred/PhotoCred.module.scss","webpack://_N_E/./components/VerticalScroller/VerticalScroller.module.scss","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://_N_E/"],"sourcesContent":["/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * 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\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","import React from 'react';\n\n// import { useTranslation } from 'next-i18next';\n// import PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport s from './PhotoCred.module.scss';\n\nconst PhotoCred = ({ credit, modifiers = [] }) => {\n if (!credit) return null;\n const classes = classNames(\n s.Root,\n modifiers.map((m) => s[m])\n );\n return Photo: {credit};\n};\n\nPhotoCred.propTypes = {};\n\nPhotoCred.defaultProps = {};\n\nexport default PhotoCred;\n","import PhotoCred from './PhotoCred';\n\nexport default PhotoCred;\n","import { isCSSVariableName } from '../../render/dom/utils/is-css-variable.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\nimport { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { MotionValue } from '../index.mjs';\nimport { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nclass WillChangeMotionValue extends MotionValue {\n constructor() {\n super(...arguments);\n this.members = [];\n this.transforms = new Set();\n }\n add(name) {\n let memberName;\n if (transformProps.has(name)) {\n this.transforms.add(name);\n memberName = \"transform\";\n }\n else if (!name.startsWith(\"origin\") &&\n !isCSSVariableName(name) &&\n name !== \"willChange\") {\n memberName = camelToDash(name);\n }\n if (memberName) {\n addUniqueItem(this.members, memberName);\n this.update();\n }\n }\n remove(name) {\n if (transformProps.has(name)) {\n this.transforms.delete(name);\n if (!this.transforms.size) {\n removeItem(this.members, \"transform\");\n }\n }\n else {\n removeItem(this.members, camelToDash(name));\n }\n this.update();\n }\n update() {\n this.set(this.members.length ? this.members.join(\", \") : \"auto\");\n }\n}\nfunction useWillChange() {\n return useConstant(() => new WillChangeMotionValue(\"auto\"));\n}\n\nexport { WillChangeMotionValue, useWillChange };\n","import { resolveElements } from '../utils/resolve-element.mjs';\n\nconst thresholds = {\n any: 0,\n all: 1,\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"any\" } = {}) {\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 (typeof newOnEnd === \"function\") {\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","import { useState, useEffect } from 'react';\nimport { inView } from '../render/dom/viewport/index.mjs';\n\nfunction useInView(ref, { root, margin, amount, once = false } = {}) {\n const [isInView, setInView] = useState(false);\n useEffect(() => {\n if (!ref.current || (once && isInView))\n return;\n const onEnter = () => {\n setInView(true);\n return once ? undefined : () => setInView(false);\n };\n const options = {\n root: (root && root.current) || undefined,\n margin,\n amount: amount === \"some\" ? \"any\" : amount,\n };\n return inView(ref.current, onEnter, options);\n }, [root, ref, margin, once]);\n return isInView;\n}\n\nexport { useInView };\n","import { useCallback, useLayoutEffect, useState } from 'react';\n// @ts-ignore\nimport loThrottle from 'lodash.throttle';\n\ntype Position = 'above' | 'top' | 'center' | 'bottom' | 'below';\ntype PercentageHook = (\n ref: React.RefObject,\n options?: { throttle?: number; offsetTop?: number; offsetBottom?: number }\n) => [number, Position];\n\nconst useVisibiltyPercentage: PercentageHook = (\n ref,\n { throttle = 16, offsetTop = 0, offsetBottom = 0 } = {}\n) => {\n const [percentageAndPosition, setPercentageAndPosition] = useState<\n [number, Position]\n >([0, 'center']);\n\n const scrollHandler = useCallback(\n loThrottle(() => {\n const [nextPercentage, nextPosition] = getPercentageAndPosition(\n ref,\n window,\n offsetTop,\n offsetBottom\n );\n const [currentPrecentage] = percentageAndPosition;\n //rerender only if percentage has changed\n if (nextPercentage !== currentPrecentage) {\n setPercentageAndPosition([nextPercentage, nextPosition]);\n }\n }, throttle),\n []\n );\n\n useLayoutEffect(() => {\n window.addEventListener('scroll', scrollHandler);\n return () => window.removeEventListener('scroll', scrollHandler);\n }, [scrollHandler]);\n\n return percentageAndPosition;\n};\n\nconst getPercentageAndPosition = (\n ref: React.RefObject,\n window: Window,\n offsetTop: number,\n offsetBottom: number\n): [number, Position] => {\n const windowHeight = window.innerHeight;\n let nearPercentage = 0;\n let position: Position = 'center';\n // @ts-ignore\n if (ref.current.getBoundingClientRect) {\n // @ts-ignore\n const { top, bottom } = ref.current.getBoundingClientRect();\n const height = Math.abs(top - bottom);\n const ratio = (bottom - offsetTop) / height;\n const bottomRatio = (windowHeight - top - offsetBottom) / height;\n if (bottom + offsetBottom > windowHeight) {\n nearPercentage = bottomRatio;\n position = 'bottom';\n } else {\n nearPercentage = ratio;\n position = 'top';\n }\n const percentage =\n nearPercentage > 1 ? 1 : nearPercentage < 0 ? 0 : nearPercentage;\n if (percentage === 0) {\n position = position === 'top' ? 'above' : 'below';\n } else if (percentage === 1) {\n position = 'center';\n }\n return [percentage, position];\n } else {\n return [0, position];\n }\n};\n\nexport default useVisibiltyPercentage;\n","import React, {\n useContext,\n useState,\n useRef,\n useLayoutEffect,\n useEffect,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useTranslation } from 'next-i18next';\nimport Image from 'next/image';\nimport Link from 'next/link';\n\nimport {\n motion,\n useScroll,\n useTransform,\n useInView,\n useWillChange,\n AnimatePresence,\n // useMotionValueEvent,\n // useVelocity,\n} from 'framer-motion';\n\nimport {\n GradientContext,\n BackgroundContext,\n ZoomLevelContext,\n} from '../../containers/BasePage';\nimport classNames from 'classnames';\nimport PhotoCred from '../PhotoCred';\n\nimport useIntersectionObserver from '../../hooks/useIntersectionObserver';\nimport useVisibiltyPercentage from '../../hooks/useVisibilityPercentage';\nimport useWindowWidth from '../../hooks/useWindowWidth';\nimport useMediaQuery from '../../hooks/useMediaQuery';\nimport { useScrollDirection } from '../../hooks/useScrollDirection';\n\nimport { trackReadMore } from '../../utils/dataLayer';\n\nimport s from './VerticalScroller.module.scss';\n\nconst SCROLL_DOWN = 0,\n SCROLL_UP = 1;\n\nconst VerticalScroller = ({\n titleTop,\n titleBottom,\n items = [],\n backgroundColor,\n anchorLink,\n scrollSpeed,\n}) => {\n const { t } = useTranslation();\n\n const gradient = useContext(GradientContext);\n const background = useContext(BackgroundContext) || {};\n\n const [ref, isVisible] = useIntersectionObserver(0, undefined, true);\n\n const { whiteBackground } = background || {};\n\n const windowWidth = useWindowWidth();\n const desktopMq = useMediaQuery('(min-width: 768px)');\n\n const [imageWrapHeight, setImageWrapHeight] = useState(0);\n const imageWrapRef = useRef(null);\n const lastCardRef = useRef(null);\n\n const [windowHeight, setWindowHeight] = useState(1000);\n useEffect(() => {\n if (typeof window === 'undefined') {\n return;\n }\n\n setWindowHeight(window.innerHeight);\n });\n\n useLayoutEffect(() => {\n const { height: imageWrapHeight } =\n imageWrapRef.current.getBoundingClientRect();\n setImageWrapHeight(imageWrapHeight);\n }, [windowWidth, windowHeight]);\n\n const [containerHeight, setContainerHeight] = useState(0);\n const cardContainerRef = useRef(null);\n\n useLayoutEffect(() => {\n const { height: containerHeight } =\n cardContainerRef.current.getBoundingClientRect();\n setContainerHeight(containerHeight);\n }, [windowWidth, windowHeight]);\n\n const scrollRef = useRef(null);\n const { scrollYProgress } = useScroll({\n target: scrollRef,\n offset: ['end end', 'start start'],\n });\n\n const scrollIndicatorHeight =\n typeof window !== 'undefined'\n ? parseInt(\n getComputedStyle(document.documentElement).getPropertyValue(\n '--vertScrollerIndicatorTrackHeight'\n )\n )\n : 100;\n\n const yScrollIndicator = useTransform(\n scrollYProgress,\n [0, 1],\n [`${windowHeight - scrollIndicatorHeight + 1}px`, '0px']\n );\n\n // const scrollIndicatorScale = useTransform(\n // useVelocity(scrollYProgress),\n // [-1, 0, 0, 1],\n // [1.5, 1, 1, 1.5]\n // );\n\n const scrollIndicatorWillChange = useWillChange();\n\n const yScroll = useTransform(\n scrollYProgress,\n [0, 1],\n [\n desktopMq\n ? -(\n containerHeight -\n (lastCardRef.current?.clientHeight || imageWrapHeight * 0.4)\n )\n : -(containerHeight - windowHeight),\n 0,\n ]\n );\n\n const scrollWillChange = useWillChange();\n\n // DEBUG\n\n // const [debugY, setDebugY] = useState(0);\n // useMotionValueEvent(scrollYProgress, \"change\", (latest) => {\n // setDebugY(latest);\n // })\n\n // const [debugYScroll, setDebugYScroll] = useState(0);\n // useMotionValueEvent(yScroll, \"change\", (latest) => {\n // setDebugYScroll(latest);\n // })\n\n // const [debugIndicatorScale, setDebugIndicatorScale] = useState(0);\n // useMotionValueEvent(useVelocity(scrollYProgress), \"change\", (latest) => {\n // setDebugIndicatorScale(latest);\n // })\n\n const [currentCardIdx, setCurrentCardIx] = useState(0);\n const [scrollDirection] = useScrollDirection();\n\n const [cardVisibilities, setCardVisibilities] = useState(\n items.map(() => ({\n active: false,\n percentage: 0,\n }))\n );\n\n const handleCardVisibilityChanged = (idx, visibility) => {\n setCardVisibilities((prev) => {\n const newVisibilities = [...prev];\n newVisibilities[idx] = {\n idx,\n active: false,\n percentage: parseFloat(visibility.toFixed(1)),\n };\n\n return newVisibilities;\n });\n };\n\n useEffect(() => {\n let fullyVisibleCards = cardVisibilities\n .filter((v) => v.percentage === 1)\n .sort((a, b) =>\n scrollDirection === SCROLL_DOWN ? b.idx - a.idx : a.idx - b.idx\n );\n\n if (fullyVisibleCards.length > 0) {\n setCurrentCardIx(fullyVisibleCards[0].idx);\n }\n }, [cardVisibilities, scrollDirection]);\n\n const imageInitialAnimProps = {\n opacity: 0,\n };\n\n const imageEnteredAnimProps = {\n opacity: 1,\n transition: {\n duration: 2,\n },\n };\n\n const imageExitAnimProps = {\n opacity: 0,\n transition: {\n duration: 0.15,\n },\n };\n\n const imageWillChange = useWillChange();\n\n const rootClasses = classNames(s.Root, s[gradient], {\n [s.White]: backgroundColor !== 'black' || whiteBackground,\n });\n\n const titleClasses = classNames(s.TitleContainer, 'grid', {\n [s.Visible]: isVisible,\n });\n\n return (\n <>\n {/* DEBUG */}\n {/*
\n scroll %: {debugY.toFixed(2) * 100}, scroll px: {debugYScroll.toFixed(2)},\n container height: {containerHeight}, no of els: {items.length},\n current el idx: {currentCardIdx + 1},\n raw indicator scale: {debugIndicatorScale.toFixed(2)},\n
*/}\n\n
\n

\n \n {titleTop}\n {titleBottom}\n \n

\n\n \n
\n
\n
\n
\n {currentCardIdx < 9 ? '0' : ''}\n {currentCardIdx + 1}\n
\n\n
\n \n
\n
\n\n
\n
\n \n {items.map((item, i) => {\n if (currentCardIdx !== i) {\n return null;\n }\n\n return (\n \n \n \n \n );\n })}\n \n
\n
\n\n \n {items.map((item, i) => {\n const isLastItem = i === items.length - 1;\n\n return (\n
\n \n
\n );\n })}\n \n
\n
\n
\n \n );\n};\n\nVerticalScroller.propTypes = {\n scrollSpeed: PropTypes.number,\n};\n\nVerticalScroller.defaultProps = {\n scrollSpeed: 1,\n};\n\nconst Card = forwardRef((props, wrapperRef) => {\n const {\n item,\n backgroundColor,\n i,\n isLastItem,\n scrollDirection,\n onVisibilityChanged,\n wrapperStyle,\n } = props;\n\n const [isAnimated, setIsAnimated] = useState();\n\n const background = useContext(BackgroundContext) || {};\n const browserZoomPercentage = useContext(ZoomLevelContext);\n const { whiteBackground } = background || {};\n const { t } = useTranslation();\n\n const itemsRef = useRef(null);\n const itemIsVisible = useInView(itemsRef, {\n amount: 0.5,\n });\n\n const isScrollingDown = scrollDirection === SCROLL_DOWN;\n\n const [visibilityPercentage] = useVisibiltyPercentage(itemsRef);\n useEffect(() => {\n onVisibilityChanged(i, visibilityPercentage);\n }, [visibilityPercentage]);\n\n const willChange = useWillChange();\n\n const itemTitleClasses = classNames(s.ItemTitleContainer, {\n [s.Visible]: itemIsVisible,\n });\n\n const itemClasses = classNames(s.Item, 'grid', {\n [s.Visible]: itemIsVisible,\n });\n\n const indexClasses = classNames(s.IndexWrapper, {\n [s.Active]: itemIsVisible,\n });\n\n const linkClasses = classNames(s.Link, {\n [s.Black]: backgroundColor === 'black' && !whiteBackground,\n });\n\n const variants = {\n full: {\n opacity: 1,\n y: '0px',\n scale: 1,\n },\n first: {\n opacity: 1,\n y: '0px',\n scale: 1,\n },\n partial: {\n opacity: 0.3,\n scale: 0.99,\n y: '15px',\n },\n initial: {\n opacity: 0.05,\n scale: 0.99,\n y: '15px',\n },\n };\n\n let zoomedVariants = {};\n\n if (browserZoomPercentage > 165) {\n zoomedVariants = { ...variants };\n zoomedVariants.partial.opacity = 1;\n zoomedVariants.initial.opacity = 1;\n }\n\n let initial;\n if (i === 0 && !isAnimated) {\n initial = 'initial';\n } else if (isLastItem && (isAnimated || isScrollingDown)) {\n initial = 'full';\n } else {\n initial = 'initial';\n }\n\n if (browserZoomPercentage > 165) {\n initial = 'initial';\n }\n\n const handleTrackReadMore = (e) => {\n e.preventDefault();\n\n trackReadMore(item?.title, 'Vertical scroller');\n\n setTimeout(() => {\n window.location.href = item?.href?.href;\n }, 200);\n };\n\n return (\n
\n 165 ? 'zoomed' : 'not-zoomed'}\n className={itemClasses}\n variants={browserZoomPercentage > 165 ? zoomedVariants : variants}\n initial={initial}\n whileInView={'full'}\n whileNotInView={browserZoomPercentage > 165 ? 'full' : 'partial'}\n transition={{\n duration: 0.5,\n ease: 'easeInOut',\n }}\n viewport={{\n threshold: 0.5,\n amount: 0.5,\n once: false,\n delay: 0.001,\n }}\n transformTemplate={(_, generatedStyles) => generatedStyles}\n onAnimationStart={(definition) => {\n setIsAnimated(true);\n }}\n style={{\n ...wrapperStyle,\n willChange,\n }}>\n
\n \n \n
\n\n
\n
\n \n {t('VerticalScroller.reason', { index: i + 1 })}\n \n
\n
\n

{item?.title}

\n
\n
\n

{item?.text}

\n
\n {!!item?.href?.href && (\n \n \n \n {t('Generic.readMore')}\n {' ' + item?.title}\n \n \n )}\n
\n \n
\n );\n});\n\nCard.displayName = 'Card';\n\nexport default VerticalScroller;\n","import VerticalScroller from './VerticalScroller';\n\nexport default VerticalScroller;\n","import { CONSOLE_LEVELS } from '@sentry/utils';\nimport { useEffect, useRef, useState } from 'react';\n\nexport default function useIntersectionObserver(\n threshold = 0,\n rootMargin = '',\n triggerOnce = true,\n initialVisibleValue = false\n) {\n const positionEnum = Object.freeze({\n below: 'BELOW',\n over: 'OVER',\n center: 'CENTER',\n });\n\n const ref = useRef(null);\n const [isVisible, setIsVisible] = useState(initialVisibleValue);\n const [position, setPosition] = useState(null);\n\n useEffect(() => {\n let element = ref.current;\n\n const cb = (entries) => {\n const [entry] = entries;\n\n if (entry.boundingClientRect.top > 0) {\n setPosition(positionEnum.below);\n setIsVisible(false);\n } else if (!entry.isIntersecting) {\n setPosition(positionEnum.over);\n setIsVisible(false);\n }\n\n if (entry.isIntersecting) {\n setIsVisible(true);\n setPosition(positionEnum.center);\n\n if (triggerOnce) {\n observer.unobserve(element);\n }\n }\n };\n\n const observer = new IntersectionObserver(cb, {\n threshold,\n rootMargin,\n });\n\n if (element) {\n observer.observe(element);\n }\n\n return () => {\n if (element) {\n observer.unobserve(element);\n }\n };\n }, [ref, threshold, rootMargin]);\n\n return [ref, isVisible, position];\n}\n","import { useEffect, useState } from 'react';\n\nfunction useMediaQuery(query: string): boolean {\n const getMatches = (query: string): boolean => {\n // Prevents SSR issues\n if (typeof window !== 'undefined' && window.matchMedia) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n };\n\n const [matches, setMatches] = useState(getMatches(query));\n\n function handleChange() {\n setMatches(getMatches(query));\n }\n\n useEffect(() => {\n const matchMedia = window.matchMedia(query);\n\n // Triggered at the first client-side load and if query changes\n handleChange();\n\n // Listen matchMedia\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener('change', handleChange);\n }\n\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener('change', handleChange);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [query]);\n\n return matches;\n}\n\nexport default useMediaQuery;\n","import { useEffect, useLayoutEffect } from 'react';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport default useIsomorphicLayoutEffect;\n","import react, { useState, useRef } from 'react';\nimport useIsomorphicLayoutEffect from './useIsoMorphicLayoutEffect';\nconst THRESHOLD = 0;\n\nconst useScrollDirection = () => {\n const scrollDirectionEnum = Object.freeze({\n Up: 0,\n Down: 1,\n // up: 0,\n // down: 1,\n });\n\n const [scrollDirection, setScrollDirection] = useState(null);\n\n const blocking = useRef(false);\n const prevScrollY = useRef(0);\n\n useIsomorphicLayoutEffect(() => {\n prevScrollY.current = window.pageYOffset;\n\n const updateScrollDirection = () => {\n const scrollY = window.pageYOffset;\n\n if (Math.abs(scrollY - prevScrollY.current) >= THRESHOLD) {\n const newScrollDirection =\n scrollY > prevScrollY.current\n ? scrollDirectionEnum.up\n : scrollDirectionEnum.down;\n\n setScrollDirection(newScrollDirection);\n\n prevScrollY.current = scrollY > 0 ? scrollY : 0;\n }\n\n blocking.current = false;\n };\n\n const onScroll = () => {\n if (!blocking.current) {\n blocking.current = true;\n window.requestAnimationFrame(updateScrollDirection);\n }\n };\n\n window.addEventListener('scroll', onScroll);\n\n return () => window.removeEventListener('scroll', onScroll);\n }, [scrollDirection]);\n\n return [scrollDirection, scrollDirectionEnum];\n};\n\nexport default useScrollDirection;\nexport { useScrollDirection };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Root\":\"PhotoCred_Root__1jZj4\",\"CardGlass\":\"PhotoCred_CardGlass__nujcX\",\"Reverse\":\"PhotoCred_Reverse__nguEH\",\"Testimonial\":\"PhotoCred_Testimonial__EK1O8\",\"Stories\":\"PhotoCred_Stories__gHiSQ\",\"VideoStory\":\"PhotoCred_VideoStory__1amnk\",\"BottomMargin\":\"PhotoCred_BottomMargin__Fal9b\",\"Dark\":\"PhotoCred_Dark__Czyk_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Root\":\"VerticalScroller_Root__aSdYF\",\"PinkOrange\":\"VerticalScroller_PinkOrange__D_AYS\",\"PinkBlue\":\"VerticalScroller_PinkBlue__Wm4ER\",\"PinkPurple\":\"VerticalScroller_PinkPurple__UlKXE\",\"BlueGreen\":\"VerticalScroller_BlueGreen__S4vvq\",\"White\":\"VerticalScroller_White__eGz_D\",\"Container\":\"VerticalScroller_Container__KAc0V\",\"StickyContainer\":\"VerticalScroller_StickyContainer__H_wI7\",\"ScrollIndicatorWrapper\":\"VerticalScroller_ScrollIndicatorWrapper__pkFqg\",\"ScrollIndicatorContainer\":\"VerticalScroller_ScrollIndicatorContainer__V1cvY\",\"ScrollIndexIndicator\":\"VerticalScroller_ScrollIndexIndicator__HKmmB\",\"ScrollIndicatorTrack\":\"VerticalScroller_ScrollIndicatorTrack__yLYrn\",\"ScrollIndicator\":\"VerticalScroller_ScrollIndicator__Mo1yJ\",\"FixedImageContainer\":\"VerticalScroller_FixedImageContainer__WokL5\",\"FixedImageWrap\":\"VerticalScroller_FixedImageWrap__L_Igo\",\"FixedImage\":\"VerticalScroller_FixedImage___8Q0R\",\"CardContainer\":\"VerticalScroller_CardContainer__b26dG\",\"Title\":\"VerticalScroller_Title__CJ0bS\",\"ItemWrap\":\"VerticalScroller_ItemWrap__6_Vjb\",\"Item\":\"VerticalScroller_Item__SnY4q\",\"ItemTitle\":\"VerticalScroller_ItemTitle__TCR3G\",\"Image\":\"VerticalScroller_Image__Pvcbo\",\"TextContainer\":\"VerticalScroller_TextContainer__2aB52\",\"IndexWrapper\":\"VerticalScroller_IndexWrapper__UDY5z\",\"Index\":\"VerticalScroller_Index__kR7p7\",\"TitleContainer\":\"VerticalScroller_TitleContainer__QKg5m\",\"TitleTop\":\"VerticalScroller_TitleTop__BPcwx\",\"Visible\":\"VerticalScroller_Visible__w2pxs\",\"TitleBottom\":\"VerticalScroller_TitleBottom__Rn5W_\",\"Text\":\"VerticalScroller_Text__AidS4\",\"Link\":\"VerticalScroller_Link__dEF7D\",\"Arrow\":\"VerticalScroller_Arrow___VMav\"};","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import { frame } from '../frameloop/index.mjs';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import * as React from 'react';\nimport { useId, useRef, useInsertionEffect } from 'react';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exiting = new Set();\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exiting.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exiting.forEach((key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n const onExit = () => {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n const removeIndex = presentChildren.current.findIndex((presentChild) => presentChild.key === key);\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (React.createElement(React.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n"],"names":["FUNC_ERROR_TEXT","NAN","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","__webpack_require__","g","Object","freeSelf","self","root","Function","objectToString","objectProto","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","value","type","toNumber","isObjectLike","call","other","valueOf","replace","isBinary","test","slice","module","exports","func","wait","options","leading","trailing","debounce","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timeSinceLastInvoke","timerExpired","trailingEdge","setTimeout","debounced","isInvoking","arguments","cancel","clearTimeout","flush","PhotoCred","param","credit","modifiers","classes","classNames","s","_param_modifiers","map","m","jsx_runtime","jsxs","span","className","propTypes","defaultProps","components_PhotoCred","WillChangeMotionValue","H","constructor","members","transforms","Set","add","name","memberName","transform","G","has","startsWith","is_css_variable","f9","camel_to_dash","D","array","y4","update","remove","delete","size","cl","set","length","join","useWillChange","use_constant","h","thresholds","any","all","getPercentageAndPosition","ref","window","offsetTop","offsetBottom","windowHeight","innerHeight","nearPercentage","position","current","getBoundingClientRect","top","bottom","height","abs","percentage","useVisibilityPercentage","_ref_throttle","_ref","throttle","_ref_offsetTop","_ref_offsetBottom","useState","percentageAndPosition","setPercentageAndPosition","scrollHandler","useCallback","loThrottle","nextPercentage","nextPosition","useLayoutEffect","addEventListener","removeEventListener","VerticalScroller","lastCardRef","titleTop","titleBottom","items","_param_items","backgroundColor","anchorLink","scrollSpeed","useTranslation","t","gradient","useContext","GradientContext","background","BackgroundContext","useIntersectionObserver","isVisible","whiteBackground","windowWidth","useWindowWidth","desktopMq","useMediaQuery","imageWrapHeight","setImageWrapHeight","imageWrapRef","useRef","setWindowHeight","useEffect","containerHeight","setContainerHeight","cardContainerRef","scrollRef","scrollYProgress","useScroll","target","offset","scrollIndicatorHeight","getComputedStyle","document","documentElement","getPropertyValue","yScrollIndicator","useTransform","concat","scrollIndicatorWillChange","yScroll","clientHeight","scrollWillChange","currentCardIdx","setCurrentCardIx","scrollDirection","useScrollDirection","active","cardVisibilities","setCardVisibilities","handleCardVisibilityChanged","idx","visibility","prev","newVisibilities","_to_consumable_array","Z","parseFloat","toFixed","fullyVisibleCards","filter","v","sort","a","b","imageInitialAnimProps","opacity","imageEnteredAnimProps","transition","duration","imageExitAnimProps","imageWillChange","rootClasses","_define_property","titleClasses","jsx","Fragment","section","id","h2","div","style","motion","willChange","AnimatePresence","item","i","initial","animate","exit","Image","src","image","url","alt","title","fill","y","isLastItem","Card","wrapperStyle","marginTop","onVisibilityChanged","PropTypes","forwardRef","props","wrapperRef","isAnimated","setIsAnimated","browserZoomPercentage","ZoomLevelContext","itemsRef","itemIsVisible","useInView","margin","amount","once","isInView","setInView","react","onEnter","inView","elementOrSelector","onStart","rootMargin","elements","resolve_element","I","activeIntersections","WeakMap","onIntersectionChange","entries","forEach","onEnd","get","entry","isIntersecting","Boolean","newOnEnd","observer","unobserve","IntersectionObserver","threshold","observe","element","disconnect","visibilityPercentage","useVisibiltyPercentage","itemTitleClasses","itemClasses","indexClasses","linkClasses","variants","full","scale","first","partial","zoomedVariants","_object_spread","isScrollingDown","whileInView","whileNotInView","ease","viewport","delay","transformTemplate","_","generatedStyles","onAnimationStart","definition","_object_spread_props","objectFit","index","h3","p","text","href","Link","legacyBehavior","onClick","e","preventDefault","trackReadMore","location","width","displayName","components_VerticalScroller","triggerOnce","initialVisibleValue","positionEnum","freeze","below","over","center","setIsVisible","setPosition","boundingClientRect","__webpack_exports__","query","handleChange","setMatches","getMatches","matchMedia","matches","addListener","removeListener","useIsomorphicLayoutEffect","scrollDirectionEnum","Up","Down","setScrollDirection","blocking","prevScrollY","pageYOffset","updateScrollDirection","scrollY","up","down","onScroll","requestAnimationFrame","useIsMounted","isMounted","use_isomorphic_effect","L","PopChildMeasure","Component","getSnapshotBeforeUpdate","prevProps","childRef","isPresent","sizeRef","offsetHeight","offsetWidth","left","offsetLeft","componentDidUpdate","render","children","PopChild","useId","useInsertionEffect","dataset","motionPopId","createElement","head","appendChild","sheet","insertRule","removeChild","cloneElement","PresenceChild","onExitComplete","custom","presenceAffectsLayout","mode","presenceChildren","newChildrenMap","context","useMemo","isComplete","childId","values","register","key","PresenceContext","O","Provider","Map","getChildKey","child","exitBeforeEnter","callback","errors","k","forceRender","LayoutGroupContext","useForceUpdate","forcedRenderCount","setForcedRenderCount","deferredForceRender","frameloop","Wi","postRender","filteredChildren","onlyElements","filtered","Children","isValidElement","push","childrenToRender","exiting","presentChildren","allChildren","isInitialRender","updateChildLookup","clear","presentKeys","targetKeys","numPresent","indexOf","insertionIndex","onExit","removeIndex","findIndex","presentChild","splice"],"sourceRoot":""}