{"version":3,"file":"0bad5d1290cdfc291cde696e9beb5724f931cb0e-2f573c59e92a5108d83e.js","mappings":"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","sources":["webpack://gatsby-tasting-kitchen/./node_modules/bezier-easing/src/index.js","webpack://gatsby-tasting-kitchen/./node_modules/parallax-controller/dist/parallax-controller.esm.js","webpack://gatsby-tasting-kitchen/./node_modules/react-scroll-parallax/dist/react-scroll-parallax.esm.js","webpack://gatsby-tasting-kitchen/./src/components/head-defaults.js"],"sourcesContent":["/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nfunction LinearEasing(x) {\n return x;\n}\nmodule.exports = function bezier(mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return function BezierEasing(x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};","import bezier from 'bezier-easing';\nvar Limits = function Limits(properties) {\n this.startX = properties.startX;\n this.startY = properties.startY;\n this.endX = properties.endX;\n this.endY = properties.endY; // Used to calculate the progress of the element\n\n this.totalX = this.endX - this.startX;\n this.totalY = this.endY - this.startY; // Used to scale translate effects\n\n this.startMultiplierX = properties.startMultiplierX || 1;\n this.endMultiplierX = properties.endMultiplierX || 1;\n this.startMultiplierY = properties.startMultiplierY || 1;\n this.endMultiplierY = properties.endMultiplierY || 1;\n};\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nvar ValidCSSEffects;\n(function (ValidCSSEffects) {\n ValidCSSEffects[\"speed\"] = \"speed\";\n ValidCSSEffects[\"translateX\"] = \"translateX\";\n ValidCSSEffects[\"translateY\"] = \"translateY\";\n ValidCSSEffects[\"rotate\"] = \"rotate\";\n ValidCSSEffects[\"rotateX\"] = \"rotateX\";\n ValidCSSEffects[\"rotateY\"] = \"rotateY\";\n ValidCSSEffects[\"rotateZ\"] = \"rotateZ\";\n ValidCSSEffects[\"scale\"] = \"scale\";\n ValidCSSEffects[\"scaleX\"] = \"scaleX\";\n ValidCSSEffects[\"scaleY\"] = \"scaleY\";\n ValidCSSEffects[\"scaleZ\"] = \"scaleZ\";\n ValidCSSEffects[\"opacity\"] = \"opacity\";\n})(ValidCSSEffects || (ValidCSSEffects = {}));\nvar Units;\n(function (Units) {\n Units[\"px\"] = \"px\";\n Units[\"%\"] = \"%\";\n Units[\"vh\"] = \"vh\";\n Units[\"vw\"] = \"vw\";\n})(Units || (Units = {}));\nvar RotationUnits;\n(function (RotationUnits) {\n RotationUnits[\"deg\"] = \"deg\";\n RotationUnits[\"turn\"] = \"turn\";\n RotationUnits[\"rad\"] = \"rad\";\n})(RotationUnits || (RotationUnits = {}));\nvar ScaleUnits;\n(function (ScaleUnits) {\n ScaleUnits[\"\"] = \"\";\n})(ScaleUnits || (ScaleUnits = {}));\nvar ScrollAxis;\n(function (ScrollAxis) {\n ScrollAxis[\"vertical\"] = \"vertical\";\n ScrollAxis[\"horizontal\"] = \"horizontal\";\n})(ScrollAxis || (ScrollAxis = {}));\nvar EasingPreset;\n(function (EasingPreset) {\n EasingPreset[\"ease\"] = \"ease\";\n EasingPreset[\"easeIn\"] = \"easeIn\";\n EasingPreset[\"easeOut\"] = \"easeOut\";\n EasingPreset[\"easeInOut\"] = \"easeInOut\";\n EasingPreset[\"easeInQuad\"] = \"easeInQuad\";\n EasingPreset[\"easeInCubic\"] = \"easeInCubic\";\n EasingPreset[\"easeInQuart\"] = \"easeInQuart\";\n EasingPreset[\"easeInQuint\"] = \"easeInQuint\";\n EasingPreset[\"easeInSine\"] = \"easeInSine\";\n EasingPreset[\"easeInExpo\"] = \"easeInExpo\";\n EasingPreset[\"easeInCirc\"] = \"easeInCirc\";\n EasingPreset[\"easeOutQuad\"] = \"easeOutQuad\";\n EasingPreset[\"easeOutCubic\"] = \"easeOutCubic\";\n EasingPreset[\"easeOutQuart\"] = \"easeOutQuart\";\n EasingPreset[\"easeOutQuint\"] = \"easeOutQuint\";\n EasingPreset[\"easeOutSine\"] = \"easeOutSine\";\n EasingPreset[\"easeOutExpo\"] = \"easeOutExpo\";\n EasingPreset[\"easeOutCirc\"] = \"easeOutCirc\";\n EasingPreset[\"easeInOutQuad\"] = \"easeInOutQuad\";\n EasingPreset[\"easeInOutCubic\"] = \"easeInOutCubic\";\n EasingPreset[\"easeInOutQuart\"] = \"easeInOutQuart\";\n EasingPreset[\"easeInOutQuint\"] = \"easeInOutQuint\";\n EasingPreset[\"easeInOutSine\"] = \"easeInOutSine\";\n EasingPreset[\"easeInOutExpo\"] = \"easeInOutExpo\";\n EasingPreset[\"easeInOutCirc\"] = \"easeInOutCirc\";\n EasingPreset[\"easeInBack\"] = \"easeInBack\";\n EasingPreset[\"easeOutBack\"] = \"easeOutBack\";\n EasingPreset[\"easeInOutBack\"] = \"easeInOutBack\";\n})(EasingPreset || (EasingPreset = {}));\n\n/**\r\n * Creates a unique id to distinguish parallax elements.\r\n */\nvar id = 0;\nfunction createId() {\n ++id;\n return id;\n}\nvar Rect = /*#__PURE__*/function () {\n function Rect(options) {\n var rect = options.el.getBoundingClientRect(); // rect is based on viewport -- must adjust for relative scroll container\n\n if (options.view.scrollContainer) {\n var scrollRect = options.view.scrollContainer.getBoundingClientRect();\n rect = _extends({}, rect, {\n top: rect.top - scrollRect.top,\n right: rect.right - scrollRect.left,\n bottom: rect.bottom - scrollRect.top,\n left: rect.left - scrollRect.left\n });\n }\n this.height = options.el.offsetHeight;\n this.width = options.el.offsetWidth;\n this.left = rect.left;\n this.right = rect.right;\n this.top = rect.top;\n this.bottom = rect.bottom;\n if (options.rootMargin) {\n this._setRectWithRootMargin(options.rootMargin);\n }\n }\n /**\r\n * Apply root margin to all properties\r\n */\n\n var _proto = Rect.prototype;\n _proto._setRectWithRootMargin = function _setRectWithRootMargin(rootMargin) {\n var totalRootY = rootMargin.top + rootMargin.bottom;\n var totalRootX = rootMargin.left + rootMargin.right;\n this.top -= rootMargin.top;\n this.right += rootMargin.right;\n this.bottom += rootMargin.bottom;\n this.left -= rootMargin.left;\n this.height += totalRootY;\n this.width += totalRootX;\n };\n return Rect;\n}();\nvar VALID_UNITS = [ScaleUnits[''], Units.px, Units['%'], Units['vh'], Units['vw'], RotationUnits.deg, RotationUnits.turn, RotationUnits.rad];\n/**\r\n * Determines the unit of a string and parses the value\r\n */\n\nfunction parseValueAndUnit(str, defaultUnit) {\n if (defaultUnit === void 0) {\n defaultUnit = Units['%'];\n }\n var out = {\n value: 0,\n unit: defaultUnit\n };\n if (typeof str === 'undefined') return out;\n var isValid = typeof str === 'number' || typeof str === 'string';\n if (!isValid) {\n throw new Error('Invalid value provided. Must provide a value as a string or number');\n }\n str = String(str);\n out.value = parseFloat(str); // @ts-ignore\n\n out.unit = str.match(/[\\d.\\-+]*\\s*(.*)/)[1] || defaultUnit; // @ts-expect-error\n\n var isValidUnit = VALID_UNITS.includes(out.unit);\n if (!isValidUnit) {\n throw new Error('Invalid unit provided.');\n }\n return out;\n}\nvar easingPresets = {\n ease: [0.25, 0.1, 0.25, 1.0],\n easeIn: [0.42, 0.0, 1.0, 1.0],\n easeOut: [0.0, 0.0, 0.58, 1.0],\n easeInOut: [0.42, 0.0, 0.58, 1.0],\n /* Ease IN curves */\n easeInQuad: [0.55, 0.085, 0.68, 0.53],\n easeInCubic: [0.55, 0.055, 0.675, 0.19],\n easeInQuart: [0.895, 0.03, 0.685, 0.22],\n easeInQuint: [0.755, 0.05, 0.855, 0.06],\n easeInSine: [0.47, 0.0, 0.745, 0.715],\n easeInExpo: [0.95, 0.05, 0.795, 0.035],\n easeInCirc: [0.6, 0.04, 0.98, 0.335],\n /* Ease Out Curves */\n easeOutQuad: [0.25, 0.46, 0.45, 0.94],\n easeOutCubic: [0.215, 0.61, 0.355, 1.0],\n easeOutQuart: [0.165, 0.84, 0.44, 1.0],\n easeOutQuint: [0.23, 1.0, 0.32, 1.0],\n easeOutSine: [0.39, 0.575, 0.565, 1.0],\n easeOutExpo: [0.19, 1.0, 0.22, 1.0],\n easeOutCirc: [0.075, 0.82, 0.165, 1.0],\n /* Ease IN Out Curves */\n easeInOutQuad: [0.455, 0.03, 0.515, 0.955],\n easeInOutCubic: [0.645, 0.045, 0.355, 1.0],\n easeInOutQuart: [0.77, 0.0, 0.175, 1.0],\n easeInOutQuint: [0.86, 0.0, 0.07, 1.0],\n easeInOutSine: [0.445, 0.05, 0.55, 0.95],\n easeInOutExpo: [1.0, 0.0, 0.0, 1.0],\n easeInOutCirc: [0.785, 0.135, 0.15, 0.86],\n /* Ease Bounce Curves */\n easeInBack: [0.6, -0.28, 0.735, 0.045],\n easeOutBack: [0.175, 0.885, 0.32, 1.275],\n easeInOutBack: [0.68, -0.55, 0.265, 1.55]\n};\nfunction createEasingFunction(easing) {\n if (Array.isArray(easing)) {\n return bezier(easing[0], easing[1], easing[2], easing[3]);\n }\n if (typeof easing === 'string' && typeof easingPresets[easing] !== 'undefined') {\n var params = easingPresets[easing];\n return bezier(params[0], params[1], params[2], params[3]);\n }\n return;\n}\nvar PARALLAX_EFFECTS = /*#__PURE__*/Object.values(ValidCSSEffects);\nvar MAP_EFFECT_TO_DEFAULT_UNIT = {\n speed: 'px',\n translateX: '%',\n translateY: '%',\n rotate: 'deg',\n rotateX: 'deg',\n rotateY: 'deg',\n rotateZ: 'deg',\n scale: '',\n scaleX: '',\n scaleY: '',\n scaleZ: '',\n opacity: ''\n};\n/**\r\n * Takes a parallax element effects and parses the properties to get the start and end values and units.\r\n */\n\nfunction parseElementTransitionEffects(props, scrollAxis) {\n var parsedEffects = {};\n PARALLAX_EFFECTS.forEach(function (key) {\n var defaultValue = MAP_EFFECT_TO_DEFAULT_UNIT[key]; // If the provided type is a number, this must be the speed prop\n // in which case we need to construct the proper translate config\n\n if (typeof (props == null ? void 0 : props[key]) === 'number') {\n var value = props == null ? void 0 : props[key];\n var startSpeed = (value || 0) * 10 + \"px\";\n var endSpeed = (value || 0) * -10 + \"px\";\n var startParsed = parseValueAndUnit(startSpeed);\n var endParsed = parseValueAndUnit(endSpeed);\n var speedConfig = {\n start: startParsed.value,\n end: endParsed.value,\n unit: startParsed.unit\n }; // Manually set translate y value\n\n if (scrollAxis === ScrollAxis.vertical) {\n parsedEffects.translateY = speedConfig;\n } // Manually set translate y value\n\n if (scrollAxis === ScrollAxis.horizontal) {\n parsedEffects.translateX = speedConfig;\n }\n } // The rest are standard effect being parsed\n\n if (Array.isArray(props == null ? void 0 : props[key])) {\n var _value = props == null ? void 0 : props[key];\n if (typeof _value[0] !== 'undefined' && typeof _value[1] !== 'undefined') {\n var _startParsed = parseValueAndUnit(_value == null ? void 0 : _value[0], defaultValue);\n var _endParsed = parseValueAndUnit(_value == null ? void 0 : _value[1], defaultValue);\n var easing = createEasingFunction(_value == null ? void 0 : _value[2]);\n parsedEffects[key] = {\n start: _startParsed.value,\n end: _endParsed.value,\n unit: _startParsed.unit,\n easing: easing\n };\n if (_startParsed.unit !== _endParsed.unit) {\n throw new Error('Must provide matching units for the min and max offset values of each axis.');\n }\n }\n }\n });\n return parsedEffects;\n}\n\n/**\r\n * Returns the percent (0 - 100) moved based on position in the viewport\r\n */\nfunction getProgressAmount(\n/*\r\n * The start value from cache\r\n */\nstart,\n/*\r\n * total dist the element has to move to be 100% complete (view width/height + element width/height)\r\n */\ntotalDist,\n/*\r\n * Current scroll value\r\n */\ncurrentScroll,\n/*\r\n * an optional easing function to apply\r\n */\neasing) {\n // adjust cached value\n var startAdjustedScroll = currentScroll - start; // Amount the element has moved based on current and total distance to move\n\n var amount = startAdjustedScroll / totalDist; // Apply bezier easing if provided\n\n if (easing) {\n amount = easing(amount);\n }\n return amount;\n}\n\n/**\r\n * Takes two values (start, end) and returns whether the current scroll is within range\r\n * @param {number} start - start of scroll (x/y)\r\n * @param {number} end - end of scroll (x/y)\r\n * @param {number} scroll - current scroll (x/y)\r\n * @return {boolean} isInView\r\n */\nfunction isElementInView(start, end, scroll) {\n var isInView = scroll >= start && scroll <= end;\n return isInView;\n}\n\n// Scale between AKA normalize\nfunction scaleBetween(value, newMin, newMax, oldMin, oldMax) {\n return (newMax - newMin) * (value - oldMin) / (oldMax - oldMin) + newMin;\n}\n\n/**\r\n * Scales a start and end value of an effect based on percent moved and easing function\r\n */\n\nfunction scaleEffectByProgress(effect, progress) {\n var value = scaleBetween(typeof effect.easing === 'function' ? effect.easing(progress) : progress, (effect == null ? void 0 : effect.start) || 0, (effect == null ? void 0 : effect.end) || 0, 0, 1);\n return {\n value: value,\n unit: effect == null ? void 0 : effect.unit\n };\n}\nvar TRANSFORM_EFFECTS = /*#__PURE__*/Object.values(ValidCSSEffects).filter(function (v) {\n return v !== 'opacity';\n});\nfunction setWillChangeStyles(el, effects) {\n var keys = Object.keys(effects);\n var hasOpacity = keys.includes('opacity');\n var willChange = \"transform\" + (hasOpacity ? ',opacity' : '');\n el.style.willChange = willChange;\n}\nfunction setElementStyles(effects, progress, el) {\n if (!el) return;\n var transform = getTransformStyles(effects, progress);\n var opacity = getOpacityStyles(effects, progress);\n el.style.transform = transform;\n el.style.opacity = opacity;\n}\nfunction getOpacityStyles(effects, progress) {\n var scaledOpacity = effects['opacity'] && scaleEffectByProgress(effects['opacity'], progress);\n if (typeof scaledOpacity === 'undefined' || typeof scaledOpacity.value === 'undefined' || typeof scaledOpacity.unit === 'undefined') {\n return '';\n }\n var styleStr = \"\" + scaledOpacity.value;\n return styleStr;\n}\nfunction getTransformStyles(effects, progress) {\n var transform = TRANSFORM_EFFECTS.reduce(function (acc, key) {\n var scaledEffect =\n // @ts-expect-error\n effects[key] && scaleEffectByProgress(effects[key], progress);\n if (typeof scaledEffect === 'undefined' || typeof scaledEffect.value === 'undefined' || typeof scaledEffect.unit === 'undefined') {\n return acc;\n }\n var styleStr = key + \"(\" + scaledEffect.value + scaledEffect.unit + \")\";\n return acc + styleStr;\n }, '');\n return transform;\n}\n/**\r\n * Takes a parallax element and removes parallax offset styles.\r\n * @param {object} element\r\n */\n\nfunction resetStyles(element) {\n var el = element.el;\n if (!el) return;\n el.style.transform = '';\n el.style.opacity = '';\n}\nfunction createLimitsForRelativeElements(rect, view, scroll, shouldAlwaysCompleteAnimation) {\n var startY = rect.top - view.height;\n var startX = rect.left - view.width;\n var endY = rect.bottom;\n var endX = rect.right; // add scroll\n\n startX += scroll.x;\n endX += scroll.x;\n startY += scroll.y;\n endY += scroll.y;\n if (shouldAlwaysCompleteAnimation) {\n if (scroll.y + rect.top < view.height) {\n startY = 0;\n }\n if (scroll.x + rect.left < view.width) {\n startX = 0;\n }\n if (endY > view.scrollHeight - view.height) {\n endY = view.scrollHeight - view.height;\n }\n if (endX > view.scrollWidth - view.width) {\n endX = view.scrollWidth - view.width;\n }\n }\n var limits = new Limits({\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n return limits;\n}\nfunction getTranslateScalar(startTranslatePx, endTranslatePx, totalDist) {\n var slow = endTranslatePx > startTranslatePx; // calculating necessary scale to increase translations\n\n var totalAbsOff = (Math.abs(startTranslatePx) + Math.abs(endTranslatePx)) * (slow ? -1 : 1);\n var totalDistTrue = totalDist + totalAbsOff; // Determine multiple to scale by, only values greater than 1\n\n var scale = Math.max(totalDist / totalDistTrue, 1);\n return scale;\n}\n\n/**\r\n * Return the start and end pixel values for an elements translations\r\n */\nfunction getStartEndValueInPx(translate, elementSize) {\n var start = translate.start,\n end = translate.end,\n unit = translate.unit;\n if (unit === '%') {\n var scale = elementSize / 100;\n start = start * scale;\n end = end * scale;\n }\n if (unit === 'vw') {\n var startScale = start / 100;\n var endScale = end / 100;\n start = window.innerWidth * startScale;\n end = window.innerWidth * endScale;\n }\n if (unit === 'vh') {\n var _startScale = start / 100;\n var _endScale = end / 100;\n start = window.innerHeight * _startScale;\n end = window.innerHeight * _endScale;\n }\n return {\n start: start,\n end: end\n };\n}\nvar DEFAULT_VALUE = {\n start: 0,\n end: 0,\n unit: ''\n};\nfunction createLimitsWithTranslationsForRelativeElements(rect, view, effects, scroll, scrollAxis, shouldAlwaysCompleteAnimation) {\n // get start and end accounting for percent effects\n var translateX = effects.translateX || DEFAULT_VALUE;\n var translateY = effects.translateY || DEFAULT_VALUE;\n var _getStartEndValueInPx = getStartEndValueInPx(translateX, rect.width),\n startTranslateXPx = _getStartEndValueInPx.start,\n endTranslateXPx = _getStartEndValueInPx.end;\n var _getStartEndValueInPx2 = getStartEndValueInPx(translateY, rect.height),\n startTranslateYPx = _getStartEndValueInPx2.start,\n endTranslateYPx = _getStartEndValueInPx2.end; // default starting values\n\n var startY = rect.top - view.height;\n var startX = rect.left - view.width;\n var endY = rect.bottom;\n var endX = rect.right;\n var startMultiplierY = 1;\n var endMultiplierY = 1;\n if (scrollAxis === ScrollAxis.vertical) {\n startMultiplierY = getTranslateScalar(startTranslateYPx, endTranslateYPx, view.height + rect.height);\n endMultiplierY = startMultiplierY;\n }\n var startMultiplierX = 1;\n var endMultiplierX = 1;\n if (scrollAxis === ScrollAxis.horizontal) {\n startMultiplierX = getTranslateScalar(startTranslateXPx, endTranslateXPx, view.width + rect.width);\n endMultiplierX = startMultiplierX;\n } // Apply the scale to initial values\n\n if (startTranslateYPx < 0) {\n startY = startY + startTranslateYPx * startMultiplierY;\n }\n if (endTranslateYPx > 0) {\n endY = endY + endTranslateYPx * endMultiplierY;\n }\n if (startTranslateXPx < 0) {\n startX = startX + startTranslateXPx * startMultiplierX;\n }\n if (endTranslateXPx > 0) {\n endX = endX + endTranslateXPx * endMultiplierX;\n } // add scroll\n\n startX += scroll.x;\n endX += scroll.x;\n startY += scroll.y;\n endY += scroll.y; // NOTE: please refactor and isolate this :(\n\n if (shouldAlwaysCompleteAnimation) {\n var topBeginsInView = scroll.y + rect.top < view.height;\n var leftBeginsInView = scroll.x + rect.left < view.width;\n var bottomEndsInView = scroll.y + rect.bottom > view.scrollHeight - view.height;\n var rightEndsInView = scroll.x + rect.right > view.scrollWidth - view.height;\n if (topBeginsInView && bottomEndsInView) {\n startMultiplierY = 1;\n endMultiplierY = 1;\n startY = 0;\n endY = view.scrollHeight - view.height;\n }\n if (leftBeginsInView && rightEndsInView) {\n startMultiplierX = 1;\n endMultiplierX = 1;\n startX = 0;\n endX = view.scrollWidth - view.width;\n }\n if (!topBeginsInView && bottomEndsInView) {\n startY = rect.top - view.height + scroll.y;\n endY = view.scrollHeight - view.height;\n var totalDist = endY - startY;\n startMultiplierY = getTranslateScalar(startTranslateYPx, endTranslateYPx, totalDist);\n endMultiplierY = 1;\n if (startTranslateYPx < 0) {\n startY = startY + startTranslateYPx * startMultiplierY;\n }\n }\n if (!leftBeginsInView && rightEndsInView) {\n startX = rect.left - view.width + scroll.x;\n endX = view.scrollWidth - view.width;\n var _totalDist = endX - startX;\n startMultiplierX = getTranslateScalar(startTranslateXPx, endTranslateXPx, _totalDist);\n endMultiplierX = 1;\n if (startTranslateXPx < 0) {\n startX = startX + startTranslateXPx * startMultiplierX;\n }\n }\n if (topBeginsInView && !bottomEndsInView) {\n startY = 0;\n endY = rect.bottom + scroll.y;\n var _totalDist2 = endY - startY;\n startMultiplierY = 1;\n endMultiplierY = getTranslateScalar(startTranslateYPx, endTranslateYPx, _totalDist2);\n if (endTranslateYPx > 0) {\n endY = endY + endTranslateYPx * endMultiplierY;\n }\n }\n if (leftBeginsInView && !rightEndsInView) {\n startX = 0;\n endX = rect.right + scroll.x;\n var _totalDist3 = endX - startX;\n startMultiplierX = 1;\n endMultiplierX = getTranslateScalar(startTranslateXPx, endTranslateXPx, _totalDist3);\n if (endTranslateXPx > 0) {\n endX = endX + endTranslateXPx * endMultiplierX;\n }\n }\n }\n var limits = new Limits({\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY,\n startMultiplierX: startMultiplierX,\n endMultiplierX: endMultiplierX,\n startMultiplierY: startMultiplierY,\n endMultiplierY: endMultiplierY\n });\n return limits;\n}\nfunction scaleTranslateEffectsForSlowerScroll(effects, limits) {\n var effectsCopy = _extends({}, effects);\n if (effectsCopy.translateX) {\n effectsCopy.translateX = _extends({}, effects.translateX, {\n start: effectsCopy.translateX.start * limits.startMultiplierX,\n end: effectsCopy.translateX.end * limits.endMultiplierX\n });\n }\n if (effectsCopy.translateY) {\n effectsCopy.translateY = _extends({}, effects.translateY, {\n start: effectsCopy.translateY.start * limits.startMultiplierY,\n end: effectsCopy.translateY.end * limits.endMultiplierY\n });\n }\n return effectsCopy;\n}\nfunction getShouldScaleTranslateEffects(props, effects, scrollAxis) {\n if (props.rootMargin || props.targetElement || props.shouldDisableScalingTranslations) {\n return false;\n }\n if (!!effects.translateX && scrollAxis === ScrollAxis.horizontal || !!effects.translateY && scrollAxis === ScrollAxis.vertical) {\n return true;\n }\n return false;\n}\nvar clamp = function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n};\nvar Element = /*#__PURE__*/function () {\n function Element(options) {\n this.el = options.el;\n this.props = options.props;\n this.scrollAxis = options.scrollAxis;\n this.id = createId();\n this.effects = parseElementTransitionEffects(this.props, this.scrollAxis);\n this.isInView = null;\n this.progress = 0;\n this._setElementEasing(options.props.easing);\n setWillChangeStyles(options.el, this.effects);\n }\n var _proto = Element.prototype;\n _proto.updateProps = function updateProps(nextProps) {\n this.props = _extends({}, this.props, nextProps);\n this.effects = parseElementTransitionEffects(nextProps, this.scrollAxis);\n this._setElementEasing(nextProps.easing);\n return this;\n };\n _proto.setCachedAttributes = function setCachedAttributes(view, scroll) {\n // NOTE: Must reset styles before getting the rect, as it might impact the natural position\n resetStyles(this);\n this.rect = new Rect({\n el: this.props.targetElement || this.el,\n rootMargin: this.props.rootMargin,\n view: view\n });\n var shouldScaleTranslateEffects = getShouldScaleTranslateEffects(this.props, this.effects, this.scrollAxis);\n if (typeof this.props.startScroll === 'number' && typeof this.props.endScroll === 'number') {\n this.limits = new Limits({\n startX: this.props.startScroll,\n startY: this.props.startScroll,\n endX: this.props.endScroll,\n endY: this.props.endScroll\n }); // Undo the reset -- place it back at current position with styles\n\n this._setElementStyles();\n return this;\n }\n if (shouldScaleTranslateEffects) {\n this.limits = createLimitsWithTranslationsForRelativeElements(this.rect, view, this.effects, scroll, this.scrollAxis, this.props.shouldAlwaysCompleteAnimation);\n this.scaledEffects = scaleTranslateEffectsForSlowerScroll(this.effects, this.limits);\n } else {\n this.limits = createLimitsForRelativeElements(this.rect, view, scroll, this.props.shouldAlwaysCompleteAnimation);\n } // Undo the reset -- place it back at current position with styles\n\n this._setElementStyles();\n return this;\n };\n _proto._updateElementIsInView = function _updateElementIsInView(nextIsInView) {\n // NOTE: Check if this is the first change to make sure onExit isn't called\n var isFirstChange = this.isInView === null;\n if (nextIsInView !== this.isInView) {\n if (nextIsInView) {\n this.props.onEnter && this.props.onEnter(this);\n } else if (!isFirstChange) {\n this._setFinalProgress();\n this._setElementStyles();\n this.props.onExit && this.props.onExit(this);\n }\n }\n this.isInView = nextIsInView;\n };\n _proto._setFinalProgress = function _setFinalProgress() {\n var finalProgress = clamp(Math.round(this.progress), 0, 1);\n this._updateElementProgress(finalProgress);\n };\n _proto._setElementStyles = function _setElementStyles() {\n if (this.props.disabled) return;\n var effects = this.scaledEffects || this.effects;\n setElementStyles(effects, this.progress, this.el);\n };\n _proto._updateElementProgress = function _updateElementProgress(nextProgress) {\n this.progress = nextProgress;\n this.props.onProgressChange && this.props.onProgressChange(this.progress);\n this.props.onChange && this.props.onChange(this);\n };\n _proto._setElementEasing = function _setElementEasing(easing) {\n this.easing = createEasingFunction(easing);\n };\n _proto.updatePosition = function updatePosition(scroll) {\n if (!this.limits) return this;\n var isVertical = this.scrollAxis === ScrollAxis.vertical;\n var isFirstChange = this.isInView === null; // based on scroll axis\n\n var start = isVertical ? this.limits.startY : this.limits.startX;\n var end = isVertical ? this.limits.endY : this.limits.endX;\n var total = isVertical ? this.limits.totalY : this.limits.totalX;\n var s = isVertical ? scroll.y : scroll.x; // check if in view\n\n var nextIsInView = isElementInView(start, end, s);\n this._updateElementIsInView(nextIsInView); // set the progress if in view or this is the first change\n\n if (nextIsInView) {\n var nextProgress = getProgressAmount(start, total, s, this.easing);\n this._updateElementProgress(nextProgress);\n this._setElementStyles();\n } else if (isFirstChange) {\n // NOTE: this._updateElementProgress -- dont use this because it will trigger onChange\n this.progress = clamp(Math.round(getProgressAmount(start, total, s, this.easing)), 0, 1);\n this._setElementStyles();\n }\n return this;\n };\n return Element;\n}();\nvar View = /*#__PURE__*/function () {\n function View(config) {\n this.scrollContainer = config.scrollContainer;\n this.width = config.width;\n this.height = config.height;\n this.scrollHeight = config.scrollHeight;\n this.scrollWidth = config.scrollWidth;\n }\n var _proto = View.prototype;\n _proto.hasChanged = function hasChanged(params) {\n if (params.width !== this.width || params.height !== this.height || params.scrollWidth !== this.scrollWidth || params.scrollHeight !== this.scrollHeight) {\n return true;\n }\n return false;\n };\n _proto.setSize = function setSize(params) {\n this.width = params.width;\n this.height = params.height;\n this.scrollHeight = params.scrollHeight;\n this.scrollWidth = params.scrollWidth;\n return this;\n };\n return View;\n}();\nvar Scroll = /*#__PURE__*/function () {\n function Scroll(x, y) {\n this.x = x;\n this.y = y;\n this.dx = 0;\n this.dy = 0;\n }\n var _proto = Scroll.prototype;\n _proto.setScroll = function setScroll(x, y) {\n this.dx = x - this.x;\n this.dy = y - this.y;\n this.x = x;\n this.y = y;\n return this;\n };\n return Scroll;\n}();\nfunction testForPassiveScroll() {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n return true;\n }\n }); // @ts-expect-error\n\n window.addEventListener('test', null, opts); // @ts-expect-error\n\n window.removeEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n}\n\n/**\r\n * -------------------------------------------------------\r\n * Parallax Controller\r\n * -------------------------------------------------------\r\n *\r\n * The global controller for setting up and managing a scroll view of elements.\r\n *\r\n */\n\nvar ParallaxController = /*#__PURE__*/function () {\n function ParallaxController(_ref) {\n var _ref$scrollAxis = _ref.scrollAxis,\n scrollAxis = _ref$scrollAxis === void 0 ? ScrollAxis.vertical : _ref$scrollAxis,\n scrollContainer = _ref.scrollContainer;\n this.scrollAxis = scrollAxis; // All parallax elements to be updated\n\n this.elements = [];\n this._hasScrollContainer = !!scrollContainer;\n this.viewEl = scrollContainer != null ? scrollContainer : window; // Scroll and View\n\n var _this$_getScrollPosit = this._getScrollPosition(),\n x = _this$_getScrollPosit[0],\n y = _this$_getScrollPosit[1];\n this.scroll = new Scroll(x, y);\n this.view = new View({\n width: 0,\n height: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n scrollContainer: this._hasScrollContainer ? scrollContainer : undefined\n }); // Ticking\n\n this._ticking = false; // Passive support\n\n this._supportsPassive = testForPassiveScroll(); // Bind methods to class\n\n this._bindAllMethods();\n this._addListeners(this.viewEl);\n this._addResizeObserver();\n this._setViewSize();\n }\n /**\r\n * Static method to instantiate the ParallaxController.\r\n * @returns {Class} ParallaxController\r\n */\n\n ParallaxController.init = function init(options) {\n var hasWindow = typeof window !== 'undefined';\n if (!hasWindow) {\n throw new Error('Looks like ParallaxController.init() was called on the server. This method must be called on the client.');\n }\n return new ParallaxController(options);\n };\n var _proto = ParallaxController.prototype;\n _proto._bindAllMethods = function _bindAllMethods() {\n var _this = this;\n ['_addListeners', '_removeListeners', '_getScrollPosition', '_handleScroll', '_handleUpdateCache', '_updateAllElements', '_updateElementPosition', '_setViewSize', '_addResizeObserver', '_checkIfViewHasChanged', '_getViewParams', 'getElements', 'createElement', 'removeElementById', 'resetElementStyles', 'updateElementPropsById', 'update', 'updateScrollContainer', 'destroy'].forEach(function (method) {\n // @ts-expect-error\n _this[method] = _this[method].bind(_this);\n });\n };\n _proto._addListeners = function _addListeners(el) {\n el.addEventListener('scroll', this._handleScroll, this._supportsPassive ? {\n passive: true\n } : false);\n window.addEventListener('resize', this._handleUpdateCache, false);\n window.addEventListener('blur', this._handleUpdateCache, false);\n window.addEventListener('focus', this._handleUpdateCache, false);\n window.addEventListener('load', this._handleUpdateCache, false);\n };\n _proto._removeListeners = function _removeListeners(el) {\n var _this$_resizeObserver;\n el.removeEventListener('scroll', this._handleScroll, false);\n window.removeEventListener('resize', this._handleUpdateCache, false);\n window.removeEventListener('blur', this._handleUpdateCache, false);\n window.removeEventListener('focus', this._handleUpdateCache, false);\n window.removeEventListener('load', this._handleUpdateCache, false);\n (_this$_resizeObserver = this._resizeObserver) == null ? void 0 : _this$_resizeObserver.disconnect();\n };\n _proto._addResizeObserver = function _addResizeObserver() {\n var _this2 = this;\n try {\n var observedEl = this._hasScrollContainer ? this.viewEl : document.documentElement;\n this._resizeObserver = new ResizeObserver(function () {\n return _this2.update();\n });\n this._resizeObserver.observe(observedEl);\n } catch (e) {\n console.warn('Failed to create the resize observer in the ParallaxContoller');\n }\n };\n _proto._getScrollPosition = function _getScrollPosition() {\n // Save current scroll\n // Supports IE 9 and up.\n var nx = this._hasScrollContainer ?\n // @ts-expect-error\n this.viewEl.scrollLeft : window.pageXOffset;\n var ny = this._hasScrollContainer ?\n // @ts-expect-error\n this.viewEl.scrollTop : window.pageYOffset;\n return [nx, ny];\n }\n /**\r\n * Window scroll handler sets scroll position\r\n * and then calls '_updateAllElements()'.\r\n */;\n\n _proto._handleScroll = function _handleScroll() {\n var _this$_getScrollPosit2 = this._getScrollPosition(),\n nx = _this$_getScrollPosit2[0],\n ny = _this$_getScrollPosit2[1];\n this.scroll.setScroll(nx, ny); // Only called if the last animation request has been\n // completed and there are parallax elements to update\n\n if (!this._ticking && this.elements.length > 0) {\n this._ticking = true; // @ts-ignore\n\n window.requestAnimationFrame(this._updateAllElements);\n }\n }\n /**\r\n * Window resize handler. Sets the new window inner height\r\n * then updates parallax element attributes and positions.\r\n */;\n\n _proto._handleUpdateCache = function _handleUpdateCache() {\n this._setViewSize();\n this._updateAllElements({\n updateCache: true\n });\n }\n /**\r\n * Update element positions.\r\n * Determines if the element is in view based on the cached\r\n * attributes, if so set the elements parallax styles.\r\n */;\n\n _proto._updateAllElements = function _updateAllElements(_temp) {\n var _this3 = this;\n var _ref2 = _temp === void 0 ? {} : _temp,\n updateCache = _ref2.updateCache;\n if (this.elements) {\n this.elements.forEach(function (element) {\n if (updateCache) {\n element.setCachedAttributes(_this3.view, _this3.scroll);\n }\n _this3._updateElementPosition(element);\n });\n } // reset ticking so more animations can be called\n\n this._ticking = false;\n }\n /**\r\n * Update element positions.\r\n * Determines if the element is in view based on the cached\r\n * attributes, if so set the elements parallax styles.\r\n */;\n\n _proto._updateElementPosition = function _updateElementPosition(element) {\n if (element.props.disabled) return;\n element.updatePosition(this.scroll);\n }\n /**\r\n * Gets the params to set in the View from the scroll container or the window\r\n */;\n\n _proto._getViewParams = function _getViewParams() {\n if (this._hasScrollContainer) {\n // @ts-expect-error\n var _width = this.viewEl.offsetWidth; // @ts-expect-error\n\n var _height = this.viewEl.offsetHeight; // @ts-expect-error\n\n var _scrollHeight = this.viewEl.scrollHeight; // @ts-expect-error\n\n var _scrollWidth = this.viewEl.scrollWidth;\n return this.view.setSize({\n width: _width,\n height: _height,\n scrollHeight: _scrollHeight,\n scrollWidth: _scrollWidth\n });\n }\n var html = document.documentElement;\n var width = window.innerWidth || html.clientWidth;\n var height = window.innerHeight || html.clientHeight;\n var scrollHeight = html.scrollHeight;\n var scrollWidth = html.scrollWidth;\n return {\n width: width,\n height: height,\n scrollHeight: scrollHeight,\n scrollWidth: scrollWidth\n };\n }\n /**\r\n * Cache the view attributes\r\n */;\n\n _proto._setViewSize = function _setViewSize() {\n return this.view.setSize(this._getViewParams());\n }\n /**\r\n * Checks if any of the cached attributes of the view have changed.\r\n * @returns boolean\r\n */;\n\n _proto._checkIfViewHasChanged = function _checkIfViewHasChanged() {\n return this.view.hasChanged(this._getViewParams());\n }\n /**\r\n * -------------------------------------------------------\r\n * Public methods\r\n * -------------------------------------------------------\r\n */\n\n /**\r\n * Returns all the parallax elements in the controller\r\n */;\n\n _proto.getElements = function getElements() {\n return this.elements;\n }\n /**\r\n * Creates and returns new parallax element with provided options to be managed by the controller.\r\n */;\n\n _proto.createElement = function createElement(options) {\n var newElement = new Element(_extends({}, options, {\n scrollAxis: this.scrollAxis\n }));\n newElement.setCachedAttributes(this.view, this.scroll);\n this.elements = this.elements ? [].concat(this.elements, [newElement]) : [newElement];\n this._updateElementPosition(newElement); // NOTE: This checks if the view has changed then update the controller and all elements if it has\n // This shouldn't always be necessary with a resize observer watching the view element\n // but there seems to be cases where the resize observer does not catch and update.\n\n if (this._checkIfViewHasChanged()) {\n this.update();\n }\n return newElement;\n }\n /**\r\n * Remove an element by id\r\n */;\n\n _proto.removeElementById = function removeElementById(id) {\n if (!this.elements) return;\n this.elements = this.elements.filter(function (el) {\n return el.id !== id;\n });\n }\n /**\r\n * Updates an existing parallax element object with new options.\r\n */;\n\n _proto.updateElementPropsById = function updateElementPropsById(id, props) {\n if (this.elements) {\n this.elements = this.elements.map(function (el) {\n if (el.id === id) {\n return el.updateProps(props);\n }\n return el;\n });\n }\n this.update();\n }\n /**\r\n * Remove a target elements parallax styles\r\n */;\n\n _proto.resetElementStyles = function resetElementStyles(element) {\n resetStyles(element);\n }\n /**\r\n * Updates all cached attributes on parallax elements.\r\n */;\n\n _proto.update = function update() {\n // Save the latest scroll position because window.scroll\n // may be called and the handle scroll event may not be called.\n var _this$_getScrollPosit3 = this._getScrollPosition(),\n nx = _this$_getScrollPosit3[0],\n ny = _this$_getScrollPosit3[1];\n this.scroll.setScroll(nx, ny);\n this._setViewSize();\n this._updateAllElements({\n updateCache: true\n });\n }\n /**\r\n * Updates the scroll container of the parallax controller\r\n */;\n\n _proto.updateScrollContainer = function updateScrollContainer(el) {\n // remove existing listeners with current el first\n this._removeListeners(this.viewEl);\n this.viewEl = el;\n this._hasScrollContainer = !!el;\n this.view = new View({\n width: 0,\n height: 0,\n scrollWidth: 0,\n scrollHeight: 0,\n scrollContainer: el\n });\n this._setViewSize();\n this._addListeners(this.viewEl);\n this._updateAllElements({\n updateCache: true\n });\n }\n /**\r\n * Removes all listeners and resets all styles on managed elements.\r\n */;\n\n _proto.destroy = function destroy() {\n this._removeListeners(this.viewEl);\n if (this.elements) {\n this.elements.forEach(function (element) {\n return resetStyles(element);\n });\n } // @ts-expect-error\n\n this.elements = undefined;\n };\n return ParallaxController;\n}();\nexport { EasingPreset, Element, Limits, ParallaxController, Rect, RotationUnits, ScaleUnits, Scroll, ScrollAxis, Units, ValidCSSEffects, View, createId, getProgressAmount, isElementInView, parseElementTransitionEffects, parseValueAndUnit, resetStyles, scaleBetween, scaleEffectByProgress, setElementStyles, testForPassiveScroll };","import { ParallaxController, parseValueAndUnit, ScrollAxis } from 'parallax-controller';\nexport { EasingPreset } from 'parallax-controller';\nimport React, { useEffect, useContext, useRef, useState, Component } from 'react';\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction removeUndefinedObjectKeys(obj) {\n Object.keys(obj).forEach(function (key) {\n return obj[key] === undefined ? delete obj[key] : {};\n });\n return obj;\n}\nvar _excluded = [\"disabled\", \"easing\", \"endScroll\", \"onChange\", \"onEnter\", \"onExit\", \"onProgressChange\", \"opacity\", \"rootMargin\", \"rotate\", \"rotateX\", \"rotateY\", \"rotateZ\", \"scale\", \"scaleX\", \"scaleY\", \"scaleZ\", \"shouldAlwaysCompleteAnimation\", \"shouldDisableScalingTranslations\", \"speed\", \"startScroll\", \"targetElement\", \"translateX\", \"translateY\"];\nfunction getIsolatedParallaxProps(props) {\n var disabled = props.disabled,\n easing = props.easing,\n endScroll = props.endScroll,\n onChange = props.onChange,\n onEnter = props.onEnter,\n onExit = props.onExit,\n onProgressChange = props.onProgressChange,\n opacity = props.opacity,\n rootMargin = props.rootMargin,\n rotate = props.rotate,\n rotateX = props.rotateX,\n rotateY = props.rotateY,\n rotateZ = props.rotateZ,\n scale = props.scale,\n scaleX = props.scaleX,\n scaleY = props.scaleY,\n scaleZ = props.scaleZ,\n shouldAlwaysCompleteAnimation = props.shouldAlwaysCompleteAnimation,\n shouldDisableScalingTranslations = props.shouldDisableScalingTranslations,\n speed = props.speed,\n startScroll = props.startScroll,\n targetElement = props.targetElement,\n translateX = props.translateX,\n translateY = props.translateY,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var parallaxProps = removeUndefinedObjectKeys({\n disabled: disabled,\n easing: easing,\n endScroll: endScroll,\n onChange: onChange,\n onEnter: onEnter,\n onExit: onExit,\n onProgressChange: onProgressChange,\n opacity: opacity,\n rootMargin: rootMargin,\n rotate: rotate,\n rotateX: rotateX,\n rotateY: rotateY,\n rotateZ: rotateZ,\n scale: scale,\n scaleX: scaleX,\n scaleY: scaleY,\n scaleZ: scaleZ,\n shouldAlwaysCompleteAnimation: shouldAlwaysCompleteAnimation,\n shouldDisableScalingTranslations: shouldDisableScalingTranslations,\n speed: speed,\n startScroll: startScroll,\n targetElement: targetElement,\n translateX: translateX,\n translateY: translateY\n });\n return {\n parallaxProps: parallaxProps,\n rest: rest\n };\n}\nfunction useVerifyController(controller) {\n useEffect(function () {\n var isServer = typeof window === 'undefined'; // Make sure the provided controller is an instance of the Parallax Controller\n\n var isInstance = controller instanceof ParallaxController; // Throw if neither context or global is available\n\n if (!isServer && !controller && !isInstance) {\n throw new Error(\"Must wrap your application's <Parallax /> components in a <ParallaxProvider />.\");\n }\n }, [controller]);\n}\nvar ParallaxContext = /*#__PURE__*/React.createContext(null);\nfunction useParallaxController() {\n var parallaxController = useContext(ParallaxContext);\n var isServer = typeof window === 'undefined';\n if (isServer) {\n return null;\n }\n if (!parallaxController) {\n throw new Error('Could not find `react-scroll-parallax` context value. Please ensure the component is wrapped in a <ParallaxProvider>');\n }\n return parallaxController;\n}\nfunction useParallax(props) {\n var controller = useParallaxController();\n var ref = useRef(null);\n var _getIsolatedParallaxP = getIsolatedParallaxProps(props),\n parallaxProps = _getIsolatedParallaxP.parallaxProps;\n useVerifyController(controller);\n var _useState = useState(),\n element = _useState[0],\n setElement = _useState[1]; // create element\n\n useEffect(function () {\n var newElement;\n if (ref.current instanceof HTMLElement) {\n var options = {\n el: ref.current,\n props: parallaxProps\n };\n newElement = controller == null ? void 0 : controller.createElement(options);\n setElement(newElement);\n } else {\n throw new Error('You must assign the ref returned by the useParallax() hook to an HTML Element.');\n }\n return function () {\n if (newElement) {\n controller == null ? void 0 : controller.removeElementById(newElement.id);\n }\n };\n }, []); // update element\n\n useEffect(function () {\n if (element) {\n if (props.disabled) {\n controller == null ? void 0 : controller.resetElementStyles(element);\n controller == null ? void 0 : controller.updateElementPropsById(element.id, parallaxProps);\n } else {\n controller == null ? void 0 : controller.updateElementPropsById(element.id, parallaxProps);\n }\n }\n }, [props.disabled, props.easing, props.endScroll, props.onChange, props.onEnter, props.onExit, props.onProgressChange, props.opacity, props.rootMargin, props.rotate, props.rotateX, props.rotateY, props.rotateZ, props.scale, props.scaleX, props.scaleY, props.scaleZ, props.shouldAlwaysCompleteAnimation, props.shouldDisableScalingTranslations, props.speed, props.startScroll, props.targetElement, props.translateX, props.translateY]);\n return {\n ref: ref,\n controller: controller,\n element: element\n };\n}\nfunction Parallax(props) {\n var _getIsolatedParallaxP = getIsolatedParallaxProps(props),\n parallaxProps = _getIsolatedParallaxP.parallaxProps,\n rest = _getIsolatedParallaxP.rest;\n var _useParallax = useParallax(parallaxProps),\n ref = _useParallax.ref;\n return React.createElement(\"div\", Object.assign({\n ref: ref\n }, rest), props.children);\n}\nvar FALLBACK_RECT = {\n height: 0\n};\nfunction getExpandedStyle(layer) {\n if (Array.isArray(layer.translateY)) {\n var translateYStart = parseValueAndUnit(layer.translateY[0]);\n var translateYEnd = parseValueAndUnit(layer.translateY[1]);\n if (translateYStart.unit === 'px' && translateYEnd.unit === 'px') {\n return {\n top: Math.abs(translateYEnd.value) * -1 + \"px\",\n bottom: Math.abs(translateYStart.value) * -1 + \"px\"\n };\n }\n if (translateYStart.unit === '%' && translateYEnd.unit === '%') {\n var _layer$targetElement;\n var clientRect = ((_layer$targetElement = layer.targetElement) == null ? void 0 : _layer$targetElement.getBoundingClientRect()) || FALLBACK_RECT;\n var top = Math.abs(clientRect.height * 0.01 * translateYEnd.value) * -1;\n var bottom = Math.abs(clientRect.height * 0.01 * translateYStart.value) * -1;\n return {\n top: top + \"px\",\n bottom: bottom + \"px\"\n };\n }\n }\n if (layer.speed) {\n var speed = layer.speed || 0;\n return {\n top: Math.abs(speed) * 10 * -1 + 'px',\n bottom: Math.abs(speed) * 10 * -1 + 'px'\n };\n }\n return {};\n}\nfunction getImageStyle(layer) {\n return layer.image ? {\n backgroundImage: \"url(\" + layer.image + \")\",\n backgroundPosition: 'center',\n backgroundSize: 'cover'\n } : {};\n}\nvar _excluded$1 = [\"children\", \"disabled\", \"style\", \"expanded\", \"image\", \"testId\"];\nvar absoluteStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n};\nvar ParallaxBannerLayer = function ParallaxBannerLayer(props) {\n var _getIsolatedParallaxP = getIsolatedParallaxProps(props),\n parallaxProps = _getIsolatedParallaxP.parallaxProps,\n rest = _getIsolatedParallaxP.rest;\n var style = rest.style,\n _rest$expanded = rest.expanded,\n expanded = _rest$expanded === void 0 ? true : _rest$expanded,\n testId = rest.testId,\n divProps = _objectWithoutPropertiesLoose(rest, _excluded$1);\n var imageStyle = getImageStyle(props);\n var expandedStyle = expanded ? getExpandedStyle(props) : {};\n var parallax = useParallax(_extends({\n targetElement: props.targetElement,\n shouldDisableScalingTranslations: true\n }, parallaxProps));\n return React.createElement(\"div\", Object.assign({\n \"data-testid\": testId,\n ref: parallax.ref,\n style: _extends({}, imageStyle, absoluteStyle, expandedStyle, style)\n }, divProps), rest.children);\n};\nvar _excluded$2 = [\"disabled\", \"style\", \"layers\"];\nvar containerStyle = {\n position: 'relative',\n overflow: 'hidden',\n width: '100%'\n};\nvar ParallaxBanner = function ParallaxBanner(props) {\n var _useState = useState(null),\n targetElement = _useState[0],\n setTargetElement = _useState[1];\n var containerRef = useRef(null);\n useEffect(function () {\n setTargetElement(containerRef.current);\n }, []);\n var rootStyle = props.style,\n _props$layers = props.layers,\n layers = _props$layers === void 0 ? [] : _props$layers,\n rootRest = _objectWithoutPropertiesLoose(props, _excluded$2);\n function renderLayers() {\n if (targetElement) {\n var shouldUseLayers = layers && layers.length > 0;\n if (shouldUseLayers) {\n return layers.map(function (layer, i) {\n return React.createElement(ParallaxBannerLayer, Object.assign({}, layer, {\n targetElement: targetElement,\n key: \"layer-\" + i,\n testId: \"layer-\" + i\n }));\n });\n }\n }\n return null;\n }\n function renderChildren() {\n if (targetElement) {\n return React.Children.map(props.children, function (child) {\n var item = child; // adds the targetElement prop to any ParallaxBannerLayer components\n\n if (item.type === ParallaxBannerLayer) {\n var clone = React.cloneElement(item, {\n targetElement: targetElement\n });\n return clone;\n }\n return child;\n });\n }\n return null;\n }\n return React.createElement(\"div\", Object.assign({\n ref: containerRef,\n style: _extends({}, containerStyle, rootStyle)\n }, rootRest), renderLayers(), renderChildren());\n};\nvar createController = function createController(options) {\n // Don't initialize on the server\n var isServer = typeof window === 'undefined';\n if (!isServer) {\n // Must not be the server so kick it off...\n return ParallaxController.init(options);\n }\n return null;\n};\nvar ParallaxProvider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ParallaxProvider, _Component);\n function ParallaxProvider(props) {\n var _this;\n _this = _Component.call(this, props) || this;\n _this.controller = createController({\n scrollAxis: props.scrollAxis,\n scrollContainer: props.scrollContainer\n });\n return _this;\n }\n var _proto = ParallaxProvider.prototype;\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.scrollContainer !== this.props.scrollContainer) {\n // @ts-ignore\n this.controller.updateScrollContainer(this.props.scrollContainer);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n // @ts-ignore\n this.controller = this.controller.destroy();\n };\n _proto.render = function render() {\n var children = this.props.children;\n return (\n // @ts-ignore\n React.createElement(ParallaxContext.Provider, {\n value: this.controller\n }, children)\n );\n };\n return ParallaxProvider;\n}(Component);\nParallaxProvider.defaultProps = {\n scrollAxis: ScrollAxis.vertical\n};\nexport { Parallax, ParallaxBanner, ParallaxBannerLayer, ParallaxContext, ParallaxProvider, useParallax, useParallaxController };","import { Script } from \"gatsby\";\nimport React from \"react\";\n\nconst DefaultHead = () => {\n return (\n <>\n <link rel=\"preconnect\" href=\"https://cdn.tasting-kitchen.com\"></link>\n <link rel=\"dns-prefetch\" href=\"https://www.googletagmanager.com\"></link>\n <link rel=\"dns-prefetch\" href=\"https://analytics.google.com\"></link>\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"></link>\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossOrigin=\"anonymous\"></link>\n\n <script dangerouslySetInnerHTML={ { __html: `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});})(window,document,'script','dataLayer','GTM-WDP2Q7P')` }}></script>\n <Script src=\"https://www.googletagmanager.com/gtm.js?id=GTM-WDP2Q7P\" strategy=\"post-hydrate\"></Script>\n\n <Script src=\"https://cdn.auth0.com/js/auth0/9.19/auth0.min.js\" strategy=\"post-hydrate\"></Script>\n \n </>\n )\n}\n\nexport default DefaultHead;\n"],"names":["kSampleStepSize","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","LinearEasing","x","module","exports","mX1","mY1","mX2","mY2","Error","sampleValues","Array","i","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","Math","abs","binarySubdivide","ValidCSSEffects","Units","RotationUnits","ScaleUnits","ScrollAxis","EasingPreset","Limits","properties","this","startX","startY","endX","endY","totalX","totalY","startMultiplierX","endMultiplierX","startMultiplierY","endMultiplierY","_extends","Object","assign","target","arguments","length","source","key","prototype","hasOwnProperty","call","apply","id","Rect","options","rect","el","getBoundingClientRect","view","scrollContainer","scrollRect","top","right","left","bottom","height","offsetHeight","width","offsetWidth","rootMargin","_setRectWithRootMargin","totalRootY","totalRootX","VALID_UNITS","px","deg","turn","rad","str","defaultUnit","out","value","unit","String","parseFloat","match","includes","easingPresets","ease","easeIn","easeOut","easeInOut","easeInQuad","easeInCubic","easeInQuart","easeInQuint","easeInSine","easeInExpo","easeInCirc","easeOutQuad","easeOutCubic","easeOutQuart","easeOutQuint","easeOutSine","easeOutExpo","easeOutCirc","easeInOutQuad","easeInOutCubic","easeInOutQuart","easeInOutQuint","easeInOutSine","easeInOutExpo","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","createEasingFunction","easing","isArray","params","PARALLAX_EFFECTS","values","MAP_EFFECT_TO_DEFAULT_UNIT","speed","translateX","translateY","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","opacity","parseElementTransitionEffects","props","scrollAxis","parsedEffects","forEach","defaultValue","endSpeed","startParsed","endParsed","speedConfig","start","end","vertical","horizontal","_value","_startParsed","_endParsed","getProgressAmount","totalDist","currentScroll","amount","scaleEffectByProgress","effect","progress","newMin","newMax","oldMin","oldMax","scaleBetween","TRANSFORM_EFFECTS","filter","v","setElementStyles","effects","transform","reduce","acc","scaledEffect","getTransformStyles","scaledOpacity","getOpacityStyles","style","resetStyles","element","getTranslateScalar","startTranslatePx","endTranslatePx","slow","totalDistTrue","max","getStartEndValueInPx","translate","elementSize","startScale","endScale","window","innerWidth","_startScale","_endScale","innerHeight","DEFAULT_VALUE","clamp","num","min","Element","willChange","isInView","_setElementEasing","keys","_proto","updateProps","nextProps","setCachedAttributes","scroll","targetElement","shouldScaleTranslateEffects","shouldDisableScalingTranslations","startScroll","endScroll","limits","_setElementStyles","shouldAlwaysCompleteAnimation","_getStartEndValueInPx","startTranslateXPx","endTranslateXPx","_getStartEndValueInPx2","startTranslateYPx","endTranslateYPx","y","topBeginsInView","leftBeginsInView","bottomEndsInView","scrollHeight","rightEndsInView","scrollWidth","createLimitsWithTranslationsForRelativeElements","scaledEffects","effectsCopy","scaleTranslateEffectsForSlowerScroll","createLimitsForRelativeElements","_updateElementIsInView","nextIsInView","isFirstChange","onEnter","_setFinalProgress","onExit","finalProgress","round","_updateElementProgress","disabled","nextProgress","onProgressChange","onChange","updatePosition","isVertical","total","s","isElementInView","View","config","hasChanged","setSize","Scroll","dx","dy","setScroll","ParallaxController","_ref","_ref$scrollAxis","elements","_hasScrollContainer","viewEl","_this$_getScrollPosit","_getScrollPosition","undefined","_ticking","_supportsPassive","supportsPassiveOption","opts","defineProperty","get","addEventListener","removeEventListener","e","testForPassiveScroll","_bindAllMethods","_addListeners","_addResizeObserver","_setViewSize","init","_this","method","bind","_handleScroll","passive","_handleUpdateCache","_removeListeners","_this$_resizeObserver","_resizeObserver","disconnect","_this2","observedEl","document","documentElement","ResizeObserver","update","observe","console","warn","scrollLeft","pageXOffset","scrollTop","pageYOffset","_this$_getScrollPosit2","nx","ny","requestAnimationFrame","_updateAllElements","updateCache","_temp","_this3","_updateElementPosition","_getViewParams","_width","_height","_scrollHeight","_scrollWidth","html","clientWidth","clientHeight","_checkIfViewHasChanged","getElements","createElement","newElement","concat","removeElementById","updateElementPropsById","map","resetElementStyles","_this$_getScrollPosit3","updateScrollContainer","destroy","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","_excluded","getIsolatedParallaxProps","obj","rest","parallaxProps","ParallaxContext","useParallaxController","parallaxController","useContext","useParallax","controller","ref","useRef","useEffect","useVerifyController","_useState","useState","setElement","current","HTMLElement","Parallax","_getIsolatedParallaxP","children","ParallaxProvider","_Component","subClass","superClass","create","constructor","componentDidUpdate","prevProps","componentWillUnmount","render","Provider","Component","defaultProps","DefaultHead","React","rel","href","crossOrigin","dangerouslySetInnerHTML","__html","Script","src","strategy"],"sourceRoot":""}