{"version":3,"file":"static/chunks/4187-ae8a20ab32d1d9cf.js","mappings":"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","sources":["webpack://_N_E/./node_modules/bezier-easing/src/index.js","webpack://_N_E/./node_modules/next/dist/shared/lib/dynamic.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable.shared-runtime.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/parallax-controller/dist/parallax-controller.esm.js","webpack://_N_E/./node_modules/react-scroll-parallax/dist/react-scroll-parallax.esm.js","webpack://_N_E/"],"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;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\nfunction B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\nfunction C (aA1) { return 3.0 * aA1; }\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope (aT, aA1, aA2) { 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, currentT, 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}\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}\n\nfunction LinearEasing (x) {\n return x;\n}\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\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\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\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\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\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};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n noSSR: null,\n default: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n noSSR: function() {\n return noSSR;\n },\n default: function() {\n return dynamic;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _react = /*#__PURE__*/ _interop_require_default._(require(\"react\"));\nconst _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(require(\"./loadable.shared-runtime\"));\nconst isServerSide = typeof window === \"undefined\";\n// Normalize loader to return the module as form { default: Component } for `React.lazy`.\n// Also for backward compatible since next/dynamic allows to resolve a component directly with loader\n// Client component reference proxy need to be converted to a module.\nfunction convertModule(mod) {\n return {\n default: (mod == null ? void 0 : mod.default) || mod\n };\n}\nfunction noSSR(LoadableInitializer, loadableOptions) {\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack;\n delete loadableOptions.modules;\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions);\n }\n const Loading = loadableOptions.loading;\n // This will only be rendered on the server side\n return ()=>/*#__PURE__*/ _react.default.createElement(Loading, {\n error: null,\n isLoading: true,\n pastDelay: false,\n timedOut: false\n });\n}\nfunction dynamic(dynamicOptions, options) {\n let loadableFn = _loadablesharedruntime.default;\n let loadableOptions = {\n // A loading component is not required, so we default it\n loading: (param)=>{\n let { error, isLoading, pastDelay } = param;\n if (!pastDelay) return null;\n if (process.env.NODE_ENV !== \"production\") {\n if (isLoading) {\n return null;\n }\n if (error) {\n return /*#__PURE__*/ _react.default.createElement(\"p\", null, error.message, /*#__PURE__*/ _react.default.createElement(\"br\", null), error.stack);\n }\n }\n return null;\n }\n };\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = ()=>dynamicOptions;\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === \"function\") {\n loadableOptions.loader = dynamicOptions;\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === \"object\") {\n loadableOptions = {\n ...loadableOptions,\n ...dynamicOptions\n };\n }\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = {\n ...loadableOptions,\n ...options\n };\n const loaderFn = loadableOptions.loader;\n const loader = ()=>loaderFn != null ? loaderFn().then(convertModule) : Promise.resolve(convertModule(()=>null));\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated\n };\n delete loadableOptions.loadableGenerated;\n }\n // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).\n if (typeof loadableOptions.ssr === \"boolean\" && !loadableOptions.ssr) {\n delete loadableOptions.webpack;\n delete loadableOptions.modules;\n return noSSR(loadableFn, loadableOptions);\n }\n return loadableFn({\n ...loadableOptions,\n loader: loader\n });\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=dynamic.js.map","\"use client\";\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"LoadableContext\", {\n enumerable: true,\n get: function() {\n return LoadableContext;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _react = /*#__PURE__*/ _interop_require_default._(require(\"react\"));\nconst LoadableContext = _react.default.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LoadableContext.displayName = \"LoadableContext\";\n}\n\n//# sourceMappingURL=loadable-context.shared-runtime.js.map","// TODO: Remove use of `any` type.\n/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/ // https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _react = /*#__PURE__*/ _interop_require_default._(require(\"react\"));\nconst _loadablecontextsharedruntime = require(\"./loadable-context.shared-runtime\");\nfunction resolve(obj) {\n return obj && obj.default ? obj.default : obj;\n}\nconst ALL_INITIALIZERS = [];\nconst READY_INITIALIZERS = [];\nlet initialized = false;\nfunction load(loader) {\n let promise = loader();\n let state = {\n loading: true,\n loaded: null,\n error: null\n };\n state.promise = promise.then((loaded)=>{\n state.loading = false;\n state.loaded = loaded;\n return loaded;\n }).catch((err)=>{\n state.loading = false;\n state.error = err;\n throw err;\n });\n return state;\n}\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign({\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n webpack: null,\n modules: null\n }, options);\n /** @type LoadableSubscription */ let subscription = null;\n function init() {\n if (!subscription) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const sub = new LoadableSubscription(loadFn, opts);\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub)\n };\n }\n return subscription.promise();\n }\n // Server only\n if (typeof window === \"undefined\") {\n ALL_INITIALIZERS.push(init);\n }\n // Client only\n if (!initialized && typeof window !== \"undefined\") {\n // require.resolveWeak check is needed for environments that don't have it available like Jest\n const moduleIds = opts.webpack && typeof require.resolveWeak === \"function\" ? opts.webpack() : opts.modules;\n if (moduleIds) {\n READY_INITIALIZERS.push((ids)=>{\n for (const moduleId of moduleIds){\n if (ids.includes(moduleId)) {\n return init();\n }\n }\n });\n }\n }\n function useLoadableModule() {\n init();\n const context = _react.default.useContext(_loadablecontextsharedruntime.LoadableContext);\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName)=>{\n context(moduleName);\n });\n }\n }\n function LoadableComponent(props, ref) {\n useLoadableModule();\n const state = _react.default.useSyncExternalStore(subscription.subscribe, subscription.getCurrentValue, subscription.getCurrentValue);\n _react.default.useImperativeHandle(ref, ()=>({\n retry: subscription.retry\n }), []);\n return _react.default.useMemo(()=>{\n if (state.loading || state.error) {\n return /*#__PURE__*/ _react.default.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry\n });\n } else if (state.loaded) {\n return /*#__PURE__*/ _react.default.createElement(resolve(state.loaded), props);\n } else {\n return null;\n }\n }, [\n props,\n state\n ]);\n }\n LoadableComponent.preload = ()=>init();\n LoadableComponent.displayName = \"LoadableComponent\";\n return /*#__PURE__*/ _react.default.forwardRef(LoadableComponent);\n}\nclass LoadableSubscription {\n promise() {\n return this._res.promise;\n }\n retry() {\n this._clearTimeouts();\n this._res = this._loadFn(this._opts.loader);\n this._state = {\n pastDelay: false,\n timedOut: false\n };\n const { _res: res, _opts: opts } = this;\n if (res.loading) {\n if (typeof opts.delay === \"number\") {\n if (opts.delay === 0) {\n this._state.pastDelay = true;\n } else {\n this._delay = setTimeout(()=>{\n this._update({\n pastDelay: true\n });\n }, opts.delay);\n }\n }\n if (typeof opts.timeout === \"number\") {\n this._timeout = setTimeout(()=>{\n this._update({\n timedOut: true\n });\n }, opts.timeout);\n }\n }\n this._res.promise.then(()=>{\n this._update({});\n this._clearTimeouts();\n }).catch((_err)=>{\n this._update({});\n this._clearTimeouts();\n });\n this._update({});\n }\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial\n };\n this._callbacks.forEach((callback)=>callback());\n }\n _clearTimeouts() {\n clearTimeout(this._delay);\n clearTimeout(this._timeout);\n }\n getCurrentValue() {\n return this._state;\n }\n subscribe(callback) {\n this._callbacks.add(callback);\n return ()=>{\n this._callbacks.delete(callback);\n };\n }\n constructor(loadFn, opts){\n this._loadFn = loadFn;\n this._opts = opts;\n this._callbacks = new Set();\n this._delay = null;\n this._timeout = null;\n this.retry();\n }\n}\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts);\n}\nfunction flushInitializers(initializers, ids) {\n let promises = [];\n while(initializers.length){\n let init = initializers.pop();\n promises.push(init(ids));\n }\n return Promise.all(promises).then(()=>{\n if (initializers.length) {\n return flushInitializers(initializers, ids);\n }\n });\n}\nLoadable.preloadAll = ()=>{\n return new Promise((resolveInitializers, reject)=>{\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject);\n });\n};\nLoadable.preloadReady = (ids)=>{\n if (ids === void 0) ids = [];\n return new Promise((resolvePreload)=>{\n const res = ()=>{\n initialized = true;\n return resolvePreload();\n };\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res);\n });\n};\nif (typeof window !== \"undefined\") {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady;\n}\nconst _default = Loadable;\n\n//# sourceMappingURL=loadable.shared-runtime.js.map","module.exports = require('./dist/shared/lib/dynamic')\n","module.exports = require('./dist/shared/lib/head')\n","import bezier from 'bezier-easing';\n\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};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar ValidCSSEffects;\n\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 = {}));\n\nvar Units;\n\n(function (Units) {\n Units[\"px\"] = \"px\";\n Units[\"%\"] = \"%\";\n Units[\"vh\"] = \"vh\";\n Units[\"vw\"] = \"vw\";\n})(Units || (Units = {}));\n\nvar RotationUnits;\n\n(function (RotationUnits) {\n RotationUnits[\"deg\"] = \"deg\";\n RotationUnits[\"turn\"] = \"turn\";\n RotationUnits[\"rad\"] = \"rad\";\n})(RotationUnits || (RotationUnits = {}));\n\nvar ScaleUnits;\n\n(function (ScaleUnits) {\n ScaleUnits[\"\"] = \"\";\n})(ScaleUnits || (ScaleUnits = {}));\n\nvar ScrollAxis;\n\n(function (ScrollAxis) {\n ScrollAxis[\"vertical\"] = \"vertical\";\n ScrollAxis[\"horizontal\"] = \"horizontal\";\n})(ScrollAxis || (ScrollAxis = {}));\n\nvar EasingPreset;\n\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}\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\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\n if (options.rootMargin) {\n this._setRectWithRootMargin(options.rootMargin);\n }\n }\n /**\r\n * Apply root margin to all properties\r\n */\n\n\n var _proto = Rect.prototype;\n\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\n return Rect;\n}();\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\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\n if (!isValid) {\n throw new Error('Invalid value provided. Must provide a value as a string or number');\n }\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\n if (!isValidUnit) {\n throw new Error('Invalid unit provided.');\n }\n\n return out;\n}\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\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\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\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\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};\n\nfunction createEasingFunction(easing) {\n if (Array.isArray(easing)) {\n return bezier(easing[0], easing[1], easing[2], easing[3]);\n }\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\n return;\n}\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\n if (scrollAxis === ScrollAxis.horizontal) {\n parsedEffects.translateX = speedConfig;\n }\n } // The rest are standard effect being parsed\n\n\n if (Array.isArray(props == null ? void 0 : props[key])) {\n var _value = props == null ? void 0 : props[key];\n\n if (typeof _value[0] !== 'undefined' && typeof _value[1] !== 'undefined') {\n var _startParsed = parseValueAndUnit(_value == null ? void 0 : _value[0], defaultValue);\n\n var _endParsed = parseValueAndUnit(_value == null ? void 0 : _value[1], defaultValue);\n\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\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\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}\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\n if (typeof scaledOpacity === 'undefined' || typeof scaledOpacity.value === 'undefined' || typeof scaledOpacity.unit === 'undefined') {\n return '';\n }\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 = // @ts-expect-error\n effects[key] && scaleEffectByProgress(effects[key], progress);\n\n if (typeof scaledEffect === 'undefined' || typeof scaledEffect.value === 'undefined' || typeof scaledEffect.unit === 'undefined') {\n return acc;\n }\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}\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\n if (shouldAlwaysCompleteAnimation) {\n if (scroll.y + rect.top < view.height) {\n startY = 0;\n }\n\n if (scroll.x + rect.left < view.width) {\n startX = 0;\n }\n\n if (endY > view.scrollHeight - view.height) {\n endY = view.scrollHeight - view.height;\n }\n\n if (endX > view.scrollWidth - view.width) {\n endX = view.scrollWidth - view.width;\n }\n }\n\n var limits = new Limits({\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n return limits;\n}\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\n if (unit === '%') {\n var scale = elementSize / 100;\n start = start * scale;\n end = end * scale;\n }\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\n if (unit === 'vh') {\n var _startScale = start / 100;\n\n var _endScale = end / 100;\n\n start = window.innerHeight * _startScale;\n end = window.innerHeight * _endScale;\n }\n\n return {\n start: start,\n end: end\n };\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\n var _getStartEndValueInPx = getStartEndValueInPx(translateX, rect.width),\n startTranslateXPx = _getStartEndValueInPx.start,\n endTranslateXPx = _getStartEndValueInPx.end;\n\n var _getStartEndValueInPx2 = getStartEndValueInPx(translateY, rect.height),\n startTranslateYPx = _getStartEndValueInPx2.start,\n endTranslateYPx = _getStartEndValueInPx2.end; // default starting values\n\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\n if (scrollAxis === ScrollAxis.vertical) {\n startMultiplierY = getTranslateScalar(startTranslateYPx, endTranslateYPx, view.height + rect.height);\n endMultiplierY = startMultiplierY;\n }\n\n var startMultiplierX = 1;\n var endMultiplierX = 1;\n\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\n if (startTranslateYPx < 0) {\n startY = startY + startTranslateYPx * startMultiplierY;\n }\n\n if (endTranslateYPx > 0) {\n endY = endY + endTranslateYPx * endMultiplierY;\n }\n\n if (startTranslateXPx < 0) {\n startX = startX + startTranslateXPx * startMultiplierX;\n }\n\n if (endTranslateXPx > 0) {\n endX = endX + endTranslateXPx * endMultiplierX;\n } // add scroll\n\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\n if (topBeginsInView && bottomEndsInView) {\n startMultiplierY = 1;\n endMultiplierY = 1;\n startY = 0;\n endY = view.scrollHeight - view.height;\n }\n\n if (leftBeginsInView && rightEndsInView) {\n startMultiplierX = 1;\n endMultiplierX = 1;\n startX = 0;\n endX = view.scrollWidth - view.width;\n }\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\n if (startTranslateYPx < 0) {\n startY = startY + startTranslateYPx * startMultiplierY;\n }\n }\n\n if (!leftBeginsInView && rightEndsInView) {\n startX = rect.left - view.width + scroll.x;\n endX = view.scrollWidth - view.width;\n\n var _totalDist = endX - startX;\n\n startMultiplierX = getTranslateScalar(startTranslateXPx, endTranslateXPx, _totalDist);\n endMultiplierX = 1;\n\n if (startTranslateXPx < 0) {\n startX = startX + startTranslateXPx * startMultiplierX;\n }\n }\n\n if (topBeginsInView && !bottomEndsInView) {\n startY = 0;\n endY = rect.bottom + scroll.y;\n\n var _totalDist2 = endY - startY;\n\n startMultiplierY = 1;\n endMultiplierY = getTranslateScalar(startTranslateYPx, endTranslateYPx, _totalDist2);\n\n if (endTranslateYPx > 0) {\n endY = endY + endTranslateYPx * endMultiplierY;\n }\n }\n\n if (leftBeginsInView && !rightEndsInView) {\n startX = 0;\n endX = rect.right + scroll.x;\n\n var _totalDist3 = endX - startX;\n\n startMultiplierX = 1;\n endMultiplierX = getTranslateScalar(startTranslateXPx, endTranslateXPx, _totalDist3);\n\n if (endTranslateXPx > 0) {\n endX = endX + endTranslateXPx * endMultiplierX;\n }\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}\n\nfunction scaleTranslateEffectsForSlowerScroll(effects, limits) {\n var effectsCopy = _extends({}, effects);\n\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\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\n return effectsCopy;\n}\n\nfunction getShouldScaleTranslateEffects(props, effects, scrollAxis) {\n if (props.rootMargin || props.targetElement || props.shouldDisableScalingTranslations) {\n return false;\n }\n\n if (!!effects.translateX && scrollAxis === ScrollAxis.horizontal || !!effects.translateY && scrollAxis === ScrollAxis.vertical) {\n return true;\n }\n\n return false;\n}\n\nvar clamp = function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n};\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.disabledParallaxController = options.disabledParallaxController || false;\n this.id = createId();\n this.effects = parseElementTransitionEffects(this.props, this.scrollAxis);\n this.isInView = null;\n this.progress = 0;\n\n this._setElementEasing(options.props.easing);\n\n setWillChangeStyles(options.el, this.effects);\n }\n\n var _proto = Element.prototype;\n\n _proto.updateProps = function updateProps(nextProps) {\n this.props = _extends({}, this.props, nextProps);\n this.effects = parseElementTransitionEffects(nextProps, this.scrollAxis);\n\n this._setElementEasing(nextProps.easing);\n\n return this;\n };\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\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\n return this;\n }\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\n this._setElementStyles();\n\n return this;\n };\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\n if (nextIsInView !== this.isInView) {\n if (nextIsInView) {\n this.props.onEnter && this.props.onEnter(this);\n } else if (!isFirstChange) {\n this._setFinalProgress();\n\n this._setElementStyles();\n\n this.props.onExit && this.props.onExit(this);\n }\n }\n\n this.isInView = nextIsInView;\n };\n\n _proto._setFinalProgress = function _setFinalProgress() {\n var finalProgress = clamp(Math.round(this.progress), 0, 1);\n\n this._updateElementProgress(finalProgress);\n };\n\n _proto._setElementStyles = function _setElementStyles() {\n if (this.props.disabled || this.disabledParallaxController) return;\n var effects = this.scaledEffects || this.effects;\n setElementStyles(effects, this.progress, this.el);\n };\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\n _proto._setElementEasing = function _setElementEasing(easing) {\n this.easing = createEasingFunction(easing);\n };\n\n _proto.updateElementOptions = function updateElementOptions(options) {\n this.scrollAxis = options.scrollAxis;\n this.disabledParallaxController = options.disabledParallaxController || false;\n };\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\n this._updateElementIsInView(nextIsInView); // set the progress if in view or this is the first change\n\n\n if (nextIsInView) {\n var nextProgress = getProgressAmount(start, total, s, this.easing);\n\n this._updateElementProgress(nextProgress);\n\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\n this._setElementStyles();\n }\n\n return this;\n };\n\n return Element;\n}();\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\n var _proto = View.prototype;\n\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\n return false;\n };\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\n return View;\n}();\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\n var _proto = Scroll.prototype;\n\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\n return Scroll;\n}();\n\nfunction testForPassiveScroll() {\n var supportsPassiveOption = false;\n\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\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 _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled;\n this.disabled = disabled;\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\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(); // If this is initialized disabled, don't do anything below.\n\n\n if (this.disabled) return;\n\n this._addListeners(this.viewEl);\n\n this._addResizeObserver();\n\n this._setViewSize();\n }\n /**\r\n * Static method to instantiate the ParallaxController.\r\n * @returns {Class} ParallaxController\r\n */\n\n\n ParallaxController.init = function init(options) {\n var hasWindow = typeof window !== 'undefined';\n\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\n return new ParallaxController(options);\n };\n\n var _proto = ParallaxController.prototype;\n\n _proto._bindAllMethods = function _bindAllMethods() {\n var _this = this;\n\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\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\n _proto._removeListeners = function _removeListeners(el) {\n var _this$_resizeObserver;\n\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\n _proto._addResizeObserver = function _addResizeObserver() {\n var _this2 = this;\n\n try {\n var observedEl = this._hasScrollContainer ? this.viewEl : document.documentElement;\n this._resizeObserver = new ResizeObserver(function () {\n return _this2.update();\n });\n\n this._resizeObserver.observe(observedEl);\n } catch (e) {\n console.warn('Failed to create the resize observer in the ParallaxContoller');\n }\n };\n\n _proto._getScrollPosition = function _getScrollPosition() {\n // Save current scroll\n // Supports IE 9 and up.\n var nx = this._hasScrollContainer ? // @ts-expect-error\n this.viewEl.scrollLeft : window.pageXOffset;\n var ny = this._hasScrollContainer ? // @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\n _proto._handleScroll = function _handleScroll() {\n var _this$elements;\n\n var _this$_getScrollPosit2 = this._getScrollPosition(),\n nx = _this$_getScrollPosit2[0],\n ny = _this$_getScrollPosit2[1];\n\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 = this.elements) == null ? void 0 : _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\n _proto._handleUpdateCache = function _handleUpdateCache() {\n this._setViewSize();\n\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\n _proto._updateAllElements = function _updateAllElements(_temp) {\n var _this3 = this;\n\n var _ref2 = _temp === void 0 ? {} : _temp,\n updateCache = _ref2.updateCache;\n\n if (this.elements) {\n this.elements.forEach(function (element) {\n if (updateCache) {\n element.setCachedAttributes(_this3.view, _this3.scroll);\n }\n\n _this3._updateElementPosition(element);\n });\n } // reset ticking so more animations can be called\n\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\n _proto._updateElementPosition = function _updateElementPosition(element) {\n if (element.props.disabled || this.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\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\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\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\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\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\n _proto.createElement = function createElement(options) {\n var newElement = new Element(_extends({}, options, {\n scrollAxis: this.scrollAxis,\n disabledParallaxController: this.disabled\n }));\n newElement.setCachedAttributes(this.view, this.scroll);\n this.elements = this.elements ? [].concat(this.elements, [newElement]) : [newElement];\n\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\n if (this._checkIfViewHasChanged()) {\n this.update();\n }\n\n return newElement;\n }\n /**\r\n * Remove an element by id\r\n */\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\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\n return el;\n });\n }\n\n this.update();\n }\n /**\r\n * Remove a target elements parallax styles\r\n */\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\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\n this.scroll.setScroll(nx, ny);\n\n this._setViewSize();\n\n this._updateAllElements({\n updateCache: true\n });\n }\n /**\r\n * Updates the scroll container of the parallax controller\r\n */\n ;\n\n _proto.updateScrollContainer = function updateScrollContainer(el) {\n // remove existing listeners with current el first\n this._removeListeners(this.viewEl);\n\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\n this._setViewSize();\n\n this._addListeners(this.viewEl);\n\n this._updateAllElements({\n updateCache: true\n });\n };\n\n _proto.disableParallaxController = function disableParallaxController() {\n this.disabled = true; // remove listeners\n\n this._removeListeners(this.viewEl); // reset all styles\n\n\n if (this.elements) {\n this.elements.forEach(function (element) {\n return resetStyles(element);\n });\n }\n };\n\n _proto.enableParallaxController = function enableParallaxController() {\n var _this4 = this;\n\n this.disabled = false;\n\n if (this.elements) {\n this.elements.forEach(function (element) {\n return element.updateElementOptions({\n disabledParallaxController: false,\n scrollAxis: _this4.scrollAxis\n });\n });\n } // add back listeners\n\n\n this._addListeners(this.viewEl);\n\n this._addResizeObserver();\n\n this._setViewSize();\n }\n /**\r\n * Disable all parallax elements\r\n */\n ;\n\n _proto.disableAllElements = function disableAllElements() {\n console.warn('deprecated: use disableParallaxController() instead');\n\n if (this.elements) {\n this.elements = this.elements.map(function (el) {\n return el.updateProps({\n disabled: true\n });\n });\n }\n\n this.update();\n }\n /**\r\n * Enable all parallax elements\r\n */\n ;\n\n _proto.enableAllElements = function enableAllElements() {\n console.warn('deprecated: use enableParallaxController() instead');\n\n if (this.elements) {\n this.elements = this.elements.map(function (el) {\n return el.updateProps({\n disabled: false\n });\n });\n }\n\n this.update();\n }\n /**\r\n * Removes all listeners and resets all styles on managed elements.\r\n */\n ;\n\n _proto.destroy = function destroy() {\n this._removeListeners(this.viewEl);\n\n if (this.elements) {\n this.elements.forEach(function (element) {\n return resetStyles(element);\n });\n } // @ts-expect-error\n\n\n this.elements = undefined;\n };\n\n return ParallaxController;\n}();\n\nexport { EasingPreset, Element, Limits, ParallaxController, Rect, RotationUnits, ScaleUnits, Scroll, ScrollAxis, Units, ValidCSSEffects, View, createId, getProgressAmount, isElementInView, parseElementTransitionEffects, parseValueAndUnit, resetStyles, scaleBetween, scaleEffectByProgress, setElementStyles, testForPassiveScroll };\n//# sourceMappingURL=parallax-controller.esm.js.map\n","import { ParallaxController, parseValueAndUnit, ScrollAxis } from 'parallax-controller';\nexport { EasingPreset } from 'parallax-controller';\nimport React, { useEffect, useContext, useRef, useState } from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nfunction removeUndefinedObjectKeys(obj) {\n Object.keys(obj).forEach(function (key) {\n return obj[key] === undefined && delete obj[key];\n });\n return obj;\n}\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\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}\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 components in a .\");\n }\n }, [controller]);\n}\n\nvar ParallaxContext = /*#__PURE__*/React.createContext(null);\n\nfunction useParallaxController() {\n var parallaxController = useContext(ParallaxContext);\n var isServer = typeof window === 'undefined';\n\n if (isServer) {\n return null;\n }\n\n if (!parallaxController) {\n throw new Error('Could not find `react-scroll-parallax` context value. Please ensure the component is wrapped in a ');\n }\n\n return parallaxController;\n}\n\nfunction useParallax(props) {\n var controller = useParallaxController();\n var ref = useRef(null);\n\n var _getIsolatedParallaxP = getIsolatedParallaxProps(props),\n parallaxProps = _getIsolatedParallaxP.parallaxProps;\n\n useVerifyController(controller);\n\n var _useState = useState(),\n element = _useState[0],\n setElement = _useState[1]; // create element\n\n\n useEffect(function () {\n var newElement;\n\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\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}\n\nfunction Parallax(props) {\n var _getIsolatedParallaxP = getIsolatedParallaxProps(props),\n parallaxProps = _getIsolatedParallaxP.parallaxProps,\n rest = _getIsolatedParallaxP.rest;\n\n var _useParallax = useParallax(parallaxProps),\n ref = _useParallax.ref;\n\n return React.createElement(\"div\", Object.assign({\n ref: ref\n }, rest), props.children);\n}\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\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\n if (translateYStart.unit === '%' && translateYEnd.unit === '%') {\n var _layer$targetElement$, _layer$targetElement;\n\n var clientRect = (_layer$targetElement$ = (_layer$targetElement = layer.targetElement) == null ? void 0 : _layer$targetElement.getBoundingClientRect()) != null ? _layer$targetElement$ : 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\n if (layer.speed) {\n var speed = layer.speed || 0;\n var absSpeed = Math.abs(speed) * 10 * -1;\n return {\n top: absSpeed + \"px\",\n bottom: absSpeed + \"px\"\n };\n }\n\n return {};\n}\n\nfunction getImageStyle(layer) {\n return layer.image ? {\n backgroundImage: \"url(\" + layer.image + \")\",\n backgroundPosition: 'center',\n backgroundSize: 'cover'\n } : {};\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\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\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};\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\n var containerRef = useRef(null);\n useEffect(function () {\n setTargetElement(containerRef.current);\n }, []);\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\n function renderLayers() {\n if (targetElement) {\n var shouldUseLayers = layers && layers.length > 0;\n\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\n return null;\n }\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 == null ? void 0 : item.type) === ParallaxBannerLayer) {\n var clone = React.cloneElement(item, {\n targetElement: targetElement\n });\n return clone;\n }\n\n return child;\n });\n }\n\n return null;\n }\n\n return React.createElement(\"div\", Object.assign({\n ref: containerRef,\n style: _extends({}, containerStyle, rootStyle)\n }, rootRest), renderLayers(), renderChildren());\n};\n\nvar createController = function createController(options) {\n // Don't initialize on the server\n var isServer = typeof window === 'undefined';\n\n if (!isServer) {\n // Must not be the server so kick it off...\n return ParallaxController.init(options);\n }\n\n return null;\n};\n\nfunction ParallaxProvider(props) {\n var controller = useRef(null);\n\n if (!controller.current) {\n controller.current = createController({\n scrollAxis: props.scrollAxis || ScrollAxis.vertical,\n scrollContainer: props.scrollContainer,\n disabled: props.isDisabled\n });\n } // update scroll container\n\n\n useEffect(function () {\n if (props.scrollContainer && controller.current) {\n controller.current.updateScrollContainer(props.scrollContainer);\n }\n }, [props.scrollContainer, controller.current]); // disable/enable parallax\n\n useEffect(function () {\n if (props.isDisabled && controller.current) {\n controller.current.disableParallaxController();\n }\n\n if (!props.isDisabled && controller.current) {\n controller.current.enableParallaxController();\n }\n }, [props.isDisabled, controller.current]); // remove the controller when unmounting\n\n useEffect(function () {\n return function () {\n (controller == null ? void 0 : controller.current) && (controller == null ? void 0 : controller.current.destroy());\n };\n }, []);\n return React.createElement(ParallaxContext.Provider, {\n value: controller.current\n }, props.children);\n}\n\nexport { Parallax, ParallaxBanner, ParallaxBannerLayer, ParallaxContext, ParallaxProvider, useParallax, useParallaxController };\n//# sourceMappingURL=react-scroll-parallax.esm.js.map\n"],"names":["float32ArraySupported","Float32Array","calcBezier","aT","aA1","aA2","A","getSlope","LinearEasing","x","module","exports","mX1","mY1","mX2","mY2","sampleValues","i","getTForX","aX","intervalStart","currentSample","guessForT","dist","initialSlope","newtonRaphsonIterate","aGuessT","currentSlope","currentX","binarySubdivide","aA","aB","currentT","Math","abs","Object","value","_export","target","all","name","defineProperty","enumerable","get","noSSR","default","dynamic","_interop_require_default","require","_loadablesharedruntime","_","convertModule","mod","LoadableInitializer","loadableOptions","webpack","modules","dynamicOptions","options","loadableFn","loading","error","isLoading","pastDelay","param","Promise","loader","loaderFn","loadableGenerated","ssr","then","resolve","__esModule","assign","LoadableContext","_react","createContext","_default","_loadablecontextsharedruntime","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","promise","state","loaded","catch","err","LoadableSubscription","_res","retry","_clearTimeouts","_loadFn","_opts","_state","timedOut","res","opts","delay","_delay","setTimeout","_update","timeout","_timeout","partial","_callbacks","forEach","callback","clearTimeout","getCurrentValue","subscribe","add","delete","constructor","loadFn","Set","Loadable","createLoadableComponent","subscription","init","sub","bind","moduleIds","push","moduleId","ids","includes","LoadableComponent","props","ref","useLoadableModule","context","useContext","Array","isArray","moduleName","useSyncExternalStore","useImperativeHandle","useMemo","obj","createElement","preload","displayName","forwardRef","flushInitializers","initializers","promises","length","pop","preloadAll","resolveInitializers","reject","preloadReady","resolvePreload","window","__NEXT_PRELOADREADY","__webpack_require__","ValidCSSEffects","Units","RotationUnits","ScrollAxis","EasingPreset","ScaleUnits","Limits","properties","startX","startY","endX","endY","totalX","totalY","startMultiplierX","endMultiplierX","startMultiplierY","endMultiplierY","_extends","arguments","source","key","prototype","hasOwnProperty","call","apply","id","Rect","rect","el","getBoundingClientRect","view","scrollContainer","scrollRect","top","right","left","bottom","height","offsetHeight","width","offsetWidth","rootMargin","_setRectWithRootMargin","_proto","totalRootY","totalRootX","VALID_UNITS","px","deg","turn","rad","parallax_controller_esm_parseValueAndUnit","str","defaultUnit","out","unit","String","parseFloat","match","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","src_default","params","PARALLAX_EFFECTS","values","MAP_EFFECT_TO_DEFAULT_UNIT","speed","translateX","translateY","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","opacity","parseElementTransitionEffects","scrollAxis","parsedEffects","defaultValue","startParsed","endParsed","speedConfig","start","end","vertical","horizontal","_value","_startParsed","_endParsed","getProgressAmount","totalDist","currentScroll","amount","startAdjustedScroll","scaleEffectByProgress","effect","progress","newMin","newMax","oldMax","TRANSFORM_EFFECTS","filter","v","resetStyles","element","style","transform","getTranslateScalar","startTranslatePx","endTranslatePx","max","slow","getStartEndValueInPx","translate","elementSize","startScale","endScale","innerWidth","_startScale","_endScale","innerHeight","DEFAULT_VALUE","clamp","num","min","Element","hasOpacity","disabledParallaxController","effects","isInView","_setElementEasing","keys","willChange","updateProps","nextProps","setCachedAttributes","scroll","targetElement","limits","effectsCopy","shouldAlwaysCompleteAnimation","shouldScaleTranslateEffects","shouldDisableScalingTranslations","startScroll","endScroll","createLimitsWithTranslationsForRelativeElements","_getStartEndValueInPx","startTranslateXPx","endTranslateXPx","_getStartEndValueInPx2","startTranslateYPx","endTranslateYPx","y","topBeginsInView","leftBeginsInView","bottomEndsInView","scrollHeight","rightEndsInView","scrollWidth","scaledEffects","_setElementStyles","_updateElementIsInView","nextIsInView","isFirstChange","onEnter","_setFinalProgress","onExit","finalProgress","round","_updateElementProgress","disabled","setElementStyles","scaledOpacity","reduce","acc","scaledEffect","nextProgress","onProgressChange","onChange","updateElementOptions","updatePosition","isVertical","total","s","View","config","hasChanged","setSize","Scroll","dx","dy","setScroll","ParallaxController","_ref","_ref$scrollAxis","_ref$disabled","elements","_hasScrollContainer","viewEl","_this$_getScrollPosit","_getScrollPosition","undefined","_ticking","_supportsPassive","testForPassiveScroll","supportsPassiveOption","addEventListener","removeEventListener","e","_bindAllMethods","_addListeners","_addResizeObserver","_setViewSize","_this","method","_handleScroll","passive","_handleUpdateCache","_removeListeners","_this$_resizeObserver","_resizeObserver","disconnect","_this2","observedEl","document","documentElement","ResizeObserver","update","observe","console","warn","scrollLeft","pageXOffset","scrollTop","pageYOffset","_this$elements","_this$_getScrollPosit2","nx","ny","requestAnimationFrame","_updateAllElements","updateCache","_temp","_this3","_ref2","_updateElementPosition","_getViewParams","_width","_height","_scrollHeight","_scrollWidth","html","clientWidth","clientHeight","_checkIfViewHasChanged","getElements","newElement","concat","removeElementById","updateElementPropsById","map","resetElementStyles","_this$_getScrollPosit3","updateScrollContainer","disableParallaxController","enableParallaxController","_this4","disableAllElements","enableAllElements","destroy","_excluded","ParallaxContext","react","useParallax","rest","controller","useParallaxController","parallaxController","useRef","parallaxProps","_getIsolatedParallaxP","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","useEffect","isServer","isInstance","_useState","useState","setElement","current","HTMLElement","ParallaxProvider","isDisabled","Provider","children"],"sourceRoot":""}