{"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":""}