{"version":3,"sources":["webpack:///src/presentation/components/common/Layer/Parallax.stylesheet.ts","webpack:///./presentation/components/common/Layer/Parallax.tsx","webpack:///src/presentation/components/common/Layer/Static.tsx","webpack:///src/presentation/components/common/Layer/Layer.stylesheet.ts","webpack:///./presentation/components/common/Layer/Layer.tsx","webpack:///./presentation/components/common/Layer/index.ts","webpack:///src/presentation/components/common/Background/Wash.stylesheet.ts","webpack:///./presentation/components/common/Background/Wash.tsx","webpack:///src/presentation/components/common/Background/Background.stylesheet.ts","webpack:///./presentation/components/common/Background/Background.tsx","webpack:///./presentation/components/common/Background/index.ts","webpack:///../node_modules/window-scroll-manager/index.js","webpack:///../node_modules/react-plx/lib/index.js","webpack:///../node_modules/react-plx/lib/Plx.js","webpack:///../node_modules/bezier-easing/src/index.js","webpack:///./domain/constants/alignment.ts","webpack:///./presentation/hocs/withLanguage.tsx","webpack:///./presentation/utils/urlLanguageParse.ts","webpack:///./presentation/utils/createImageAlt.ts","webpack:///../node_modules/linaria/esm/react/styled.js","webpack:///../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js"],"names":["classNames","Parallax","layer","currentLanguage","data","start","duration","properties","startValue","fx","type","endValue","property","getParallaxData","backgroundImage","urlLanguageParse","imageUrl","className","parallaxData","style","displayName","withLanguage","StaticBackground","Static","image","isChrome","test","navigator","role","PureLayer","Layer","aria-label","createImageAlt","LayerComponent","washColor","LIGHT","NEUTRAL","DARK","PRIMARY","PRIMARY_GRADIENT","HIGHLIGHT","Wash","colorway","layout","duoLayout","hasTiles","useWash","Alignment","root","cx","Colorway","getClassNames","PureBackground","background","hideGradient","activeBackground","findResponsiveItem","useBreakpoints","backgroundType","Array","isArray","loop","muted","autoPlay","playsInline","poster","fallback","url","onEnded","e","video","autoplay","load","showFallbackImage","currentTarget","src","mp4","webm","loading","alt","map","i","BackgroundComponent","instance","instancesCount","ticking","isWindowDefined","window","supportsPassiveEvents","addEventListener","passive","options","Object","defineProperty","get","noop","removeEventListener","detectPassiveEvents","supportsCustomEvents","CustomEvent","ScrollManager","this","handleScroll","bind","eventListenerOptions","prototype","removeListener","destroy","getScrollPosition","scrollPositionY","scrollY","document","documentElement","scrollTop","scrollPositionX","scrollX","scrollLeft","scrollPosition","event","detail","createEvent","initCustomEvent","dispatchEvent","requestAnimationFrame","module","exports","default","call","value","undefined","_windowScrollManager2","_interopRequireDefault","_Plx2","obj","__esModule","_extends","assign","target","arguments","length","source","key","hasOwnProperty","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_typeof","Symbol","iterator","constructor","_react","_react2","_propTypes2","_bezierEasing2","WINDOW_EXISTS","START_END_DURATION_REGEX","ANGLE_PROPERTIES","EASINGS","ease","easeIn","easeOut","easeInOut","easeInSine","easeOutSine","easeInOutSine","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","REGEX_0_255","HEX_REGEX","RegExp","RGB_REGEX","RGBA_REGEX","TRANSFORM_MAP","rotate","unit","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","skewZ","translateX","translateY","translateZ","ORDER_OF_TRANSFORMS","COLOR_PROPERTIES","FILTER_MAP","blur","brightness","contrast","grayscale","hueRotate","invert","opacityFilter","saturate","sepia","FILTER_PROPERTIES","PROPS_TO_OMIT","getElementTop","el","top","element","offsetTop","offsetParent","getUnit","propertyUnit","indexOf","getValueInPx","maxScroll","floatValue","parseFloat","match","vh","innerHeight","valueInPx","convertPropToPixels","propName","propValue","offset","propValueInPx","isElement","HTMLElement","keyCodes","ZERO","NINE","charCodeAt","console","warn","querySelector","offsetHeight","offsetInPx","hexToObject","hex","color","result","exec","r","parseInt","g","b","a","rgbToObject","rgb","isRgba","toLowerCase","replace","parallax","easing","min","max","percentage","easingPropType","Math","floor","colorParallax","startObject","endObject","applyProperty","propertyData","startPosition","transformMethod","filterMethod","newStyle","transform","_propertyUnit","filter","checkIfActive","classes","getNewState","state","animateWhenNotInViewport","disabled","freeze","showElement","plxStyle","plxStateClasses","rect","getBoundingClientRect","isTopAboveBottomEdge","isBottomBelowTopEdge","height","newState","appliedProperties","segments","isInSegment","lastSegmentScrolledBy","scrollHeight","body","_loop","_parallaxData$i","endOffset","startOffset","end","startInPx","durationInPx","endInPx","forEach","push","transformsOrdered","transformKey","join","WebkitTransform","filtersArray","filterKey","WebkitFilter","JSON","stringify","newPlxStateClasses","cssClasses","name","getClasses","keys","Plx","_Component","TypeError","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","handleScrollChange","handleResize","plxStartEnabled","onPlxStart","plxEndEnabled","onPlxEnd","subClass","superClass","create","setPrototypeOf","_inherits","scrollManager","update","prevProps","prevState","wasActive","isActive","clearTimeout","resizeDebounceTimeoutID","_this2","currentScrollPosition","setState","_this3","setTimeout","_this4","_props","children","tagName","_state","Tag","elementStyle","visibility","createElement","object","keysToOmit","omit","ref","Component","propertiesItemType","shape","oneOfType","string","number","isRequired","SafeHTMLElement","parallaxDataType","instanceOf","arrayOf","array","func","propTypes","bool","any","objectOf","defaultProps","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","LinearEasing","x","mX1","mY1","mX2","mY2","Error","sampleValues","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","abs","binarySubdivide","useCurrentLanguage","language","parsedLanguage","split","toUpperCase","hasImage","isNotNilOrEmpty","str","restOp","keysToExclude","prop","includes","reduce","acc","curr","warnIfInvalid","componentName","tag","render","as","component","class","rest","filteredProps","vars","variable","__linaria","Result","innerRef","extends","reactPropsRegex","index","fn","cache","arg"],"mappings":"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","file":"pex-static/90/8.00e213fcd40b0334c6a1.chunk.js","sourcesContent":["import { css } from 'linaria';\n\nexport const classNames = {\n image: css`\n width: 100%;\n height: 100%;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center center;\n `,\n plx: css`\n // We add on 400px here as a buffer space to work with parallaxing.\n // Whatever the amount to parallax is set to * 2.\n height: calc(100% + 400px);\n position: absolute;\n top: 0;\n width: 100%;\n `,\n};\n","import React, { ComponentType } from 'react';\nimport Plx from 'react-plx';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport withLanguage from 'presentation/hocs/withLanguage';\n\nimport { classNames } from './Parallax.stylesheet';\nimport { Layer } from './Layer';\n\ninterface OuterProps {\n layer: Layer;\n}\ninterface InnerProps extends OuterProps {\n currentLanguage: string;\n}\n\nconst getParallaxData = ({ layer }: { layer: Layer }) => {\n return [\n {\n start: 'self',\n // @TODO: this value will have to be determined by the ribbon's height.\n // We might have to use react-height here to help us.\n // ---\n // It is double the value of the viewheight to ensure that\n // it keeps performing the parallax scrolling past.\n // 200vh was an arbitary number. This will have to be tweaked with Matt's\n // consent.Make sure that when you tweak this number you also tweak\n // the height calc in the stylesheet\n duration: '200vh',\n properties: [\n {\n startValue: layer.fx.type === 'parallax' ? -400 : 0,\n endValue: 0,\n property: 'translateY',\n },\n ],\n },\n ];\n};\n\nexport const Parallax = ({ layer, currentLanguage }: InnerProps) => {\n const data = getParallaxData({ layer });\n const backgroundImage = urlLanguageParse(layer.imageUrl ?? '', currentLanguage);\n\n return (\n
\n \n
\n );\n};\n\nParallax.displayName = 'Parallax';\n\nexport default withLanguage(Parallax) as ComponentType;\n","import React, { ComponentType } from 'react';\nimport { styled } from 'linaria/react';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport withLanguage from 'presentation/hocs/withLanguage';\n\nimport { Layer } from './Layer';\n\ninterface OuterProps {\n layer: Layer;\n}\ninterface InnerProps extends OuterProps {\n currentLanguage: string;\n}\n\nconst StaticBackground = styled.div<{ layer: Layer; imageUrl: string }>`\n width: 100%;\n height: 100%;\n background-size: cover;\n background-position: ${({ layer }) => layer.focus ?? 'center center'};\n background-repeat: no-repeat;\n background-image: ${({ imageUrl }) => `url(${imageUrl})`};\n`;\n\nexport const Static = ({ layer, currentLanguage }: InnerProps) => {\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n const image = isChrome === true && layer.webpUrl != null ? layer.webpUrl : layer.imageUrl;\n const imageUrl = urlLanguageParse(image ?? '', currentLanguage);\n\n return ;\n};\n\nStatic.displayName = 'Static';\n\nexport default withLanguage(Static) as ComponentType;\n","import { css } from 'linaria';\n\nexport const classNames = {\n root: css`\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n `,\n};\n","import React from 'react';\nimport createImageAlt from 'presentation/utils/createImageAlt';\n\nimport Parallax from './Parallax';\nimport Static from './Static';\nimport { classNames } from './Layer.stylesheet';\n\nexport interface Layer {\n imageUrl?: string;\n focus: string;\n webpUrl?: string;\n fx: {\n type: string;\n };\n}\n\ninterface OuterProps {\n layer: Layer;\n}\n\nexport const PureLayer = ({ layer }: OuterProps) => {\n const isParallax = layer.fx.type === 'parallax';\n const Layer = isParallax ? Parallax : Static;\n\n return (\n
\n \n
\n );\n};\n\nPureLayer.displayName = 'Layer';\n\nexport default PureLayer;\n","import LayerComponent, { Layer } from './Layer';\nexport { Layer };\nexport default LayerComponent;\n","import { css, cx } from 'linaria';\nimport { cssTheme, hex2RgbString } from '@uds/theme-utils';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\nimport { Alignment } from 'domain/constants/alignment';\n\ninterface Props {\n colorway: Colorway;\n layout: Layout;\n duoLayout: boolean | undefined;\n hasTiles: boolean | undefined;\n}\n\nconst root = css`\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n\n background: rgba(var(--wash-color), var(--wash-opacity));\n\n ${cssTheme.breakpoints.md} {\n background: linear-gradient(\n to right,\n rgba(var(--wash-color), 0.9) 40%,\n rgba(var(--wash-color), 0.8) 50%,\n rgba(var(--wash-color), 0) 65%\n );\n }\n`;\n\nconst washOpacity = css`\n --wash-opacity: 0.75;\n`;\n\nconst lightWashOpacity = css`\n --wash-opacity: 0.9;\n`;\n\nconst wash = css`\n background: rgba(var(--wash-color), var(--wash-opacity));\n`;\n\nconst washColor: Record = {\n LIGHT: css`\n --wash-color: ${hex2RgbString('#fff')};\n `,\n NEUTRAL: css`\n --wash-color: ${cssTheme.palette.rgb.grey10};\n `,\n DARK: css`\n --wash-color: ${hex2RgbString('#000')};\n `,\n PRIMARY: css`\n --wash-color: ${cssTheme.palette.rgb.primary};\n `,\n PRIMARY_GRADIENT: css`\n --wash-color: ${cssTheme.palette.rgb.primary};\n `,\n HIGHLIGHT: css`\n --wash-color: ${cssTheme.palette.rgb.highlight};\n `,\n};\n\nexport const getClassNames = ({ colorway, layout, duoLayout, hasTiles }: Props) => {\n /*\n Creates a gradient or semi opaque wash.\n Use the wash on:\n - mobile\n - we're center aligned text\n - we're a duo layout\n - we have tiles\n Use gradient otherwise\n */\n const useWash = layout.alignment === Alignment.CENTER || duoLayout === true || hasTiles === true;\n\n return {\n root: cx(root, washColor[colorway], colorway === Colorway.LIGHT ? lightWashOpacity : washOpacity, useWash && wash),\n };\n};\n","import React from 'react';\nimport { Colorway } from 'domain/constants/colorway';\nimport { Layout } from 'domain/constants/layout';\n\nimport { getClassNames } from './Wash.stylesheet';\n\ninterface OuterProps {\n colorway: Colorway;\n layout: Layout;\n hasTiles: boolean | undefined;\n duoLayout: boolean | undefined;\n}\n\nexport const Wash = ({ colorway, layout, duoLayout, hasTiles }: OuterProps) => {\n const classNames = getClassNames({ colorway, layout, duoLayout, hasTiles });\n\n return
;\n};\n\nWash.displayName = 'Wash';\n\nexport default Wash;\n","import { css } from 'linaria';\n\nconst videoWrapper = css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n`;\n\nconst video = css`\n object-fit: cover;\n object-position: center center;\n width: 100%;\n height: 100%;\n`;\n\nconst fallbackVideoImage = css`\n min-height: 100%;\n min-width: 100%;\n position: absolute;\n top: 0;\n`;\n\nexport const classNames = {\n videoWrapper,\n video,\n fallbackVideoImage,\n};\n","import React, { ComponentType } from 'react';\nimport { useBreakpoints } from '@ux/responsive';\nimport Layer, { Layer as ImageLayer } from 'presentation/components/common/Layer';\nimport withLanguage from 'presentation/hocs/withLanguage';\nimport urlLanguageParse from 'presentation/utils/urlLanguageParse';\nimport findResponsiveItem from 'presentation/utils/findResponsiveItem';\nimport { Layout } from 'domain/constants/layout';\nimport { Colorway } from 'domain/constants/colorway';\nimport { ResponsiveSet } from 'core/ribbons/primitives';\n\nimport Wash from './Wash';\nimport { classNames } from './Background.stylesheet';\n\nexport interface Background {\n fallback: {\n url: string;\n };\n mp4?: string;\n webm?: string;\n loop?: boolean;\n}\nexport type BackgroundArray = ResponsiveSet;\n\ninterface OuterProps {\n layout: Layout;\n background: BackgroundArray;\n duoLayout?: boolean;\n hasTiles?: boolean;\n colorway: Colorway;\n hideGradient?: boolean;\n}\ninterface InnerProps extends OuterProps {\n currentLanguage: string;\n}\n\nconst showFallbackImage = (video: HTMLVideoElement) => {\n video.autoplay = false;\n video.load();\n};\n\nexport const PureBackground = ({\n layout,\n duoLayout,\n hasTiles,\n colorway,\n currentLanguage,\n background,\n hideGradient = false,\n}: InnerProps) => {\n const activeBackground = findResponsiveItem(useBreakpoints(), background);\n const backgroundType = Array.isArray(activeBackground) ? 'image' : 'video';\n\n if (activeBackground != null) {\n return (\n <>\n {backgroundType === 'video' && (\n
\n showFallbackImage(e.currentTarget)}\n >\n \n \n \n \n
\n )}\n {backgroundType === 'image' && (\n <>\n {activeBackground.map((layer: ImageLayer, i: number) => (\n // eslint-disable-next-line react/no-array-index-key\n \n ))}\n \n )}\n {!hideGradient && }\n \n );\n }\n\n return null;\n};\n\nPureBackground.displayName = 'Background';\n\nexport default withLanguage(PureBackground) as ComponentType;\n","import { default as BackgroundComponent, Background, BackgroundArray } from './Background';\n\nexport { Background, BackgroundArray };\n\nexport default BackgroundComponent;\n","'use strict';\n\n(function() {\n var instance = null;\n var instancesCount = 0;\n var ticking = false;\n\n var EVENT_NAME = 'window-scroll';\n\n var isWindowDefined = typeof window !== 'undefined';\n\n // ------------------------------------------------\n // Passive events support detection\n // ------------------------------------------------\n function detectPassiveEvents() {\n if (isWindowDefined && typeof window.addEventListener === 'function') {\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function() { passive = true; }\n });\n // note: have to set and remove a no-op listener instead of null\n // (which was used previously), because Edge v15 throws an error\n // when providing a null callback.\n // https://github.com/rafrex/detect-passive-events/pull/3\n var noop = function() {};\n window.addEventListener('TEST_PASSIVE_EVENT_SUPPORT', noop, options);\n window.removeEventListener('TEST_PASSIVE_EVENT_SUPPORT', noop, options);\n\n return passive;\n }\n\n return false;\n }\n\n var supportsPassiveEvents = detectPassiveEvents();\n\n // ------------------------------------------------\n // Custom Event detection\n // ------------------------------------------------\n var supportsCustomEvents = isWindowDefined && typeof window.CustomEvent === 'function';\n\n // ------------------------------------------------\n // Scroll manager\n // ------------------------------------------------\n function ScrollManager() {\n if (typeof window === 'undefined') {\n // Silently return null if it is used on server\n return null;\n }\n\n // Increase reference count\n instancesCount++;\n\n // If singleton instance exists, return it rather than creating a new one\n if (instance) {\n return instance;\n }\n\n // Save singleton instance\n instance = this;\n\n // Bind handlers\n this.handleScroll = this.handleScroll.bind(this);\n\n // Use passive listener when supported with fallback to capture option\n this.eventListenerOptions = supportsPassiveEvents ? { passive: true } : true;\n\n // Add scroll listener\n window.addEventListener('scroll', this.handleScroll, this.eventListenerOptions);\n }\n\n ScrollManager.prototype.removeListener = function() {\n instancesCount--;\n\n // There is not components listening to our event\n if (instancesCount === 0) {\n this.destroy();\n }\n };\n\n ScrollManager.prototype.destroy = function() {\n // Remove event listener\n window.removeEventListener('scroll', this.handleScroll, this.eventListenerOptions);\n\n // Clear singleton instance and count\n instance = null;\n instancesCount = 0;\n };\n\n ScrollManager.prototype.getScrollPosition = function() {\n // Get scroll position, with IE fallback\n var scrollPositionY = window.scrollY || document.documentElement.scrollTop;\n var scrollPositionX = window.scrollX || document.documentElement.scrollLeft;\n\n // Disable overscrolling in safari\n if (scrollPositionY < 0) {\n scrollPositionY = 0;\n }\n if (scrollPositionX < 0) {\n scrollPositionX = 0;\n }\n\n return {\n // Alias for scrollPositionY for backwards compatibility\n scrollPosition: scrollPositionY,\n scrollPositionY: scrollPositionY,\n scrollPositionX: scrollPositionX\n };\n };\n\n ScrollManager.prototype.handleScroll = function() {\n // Fire the event only once per requestAnimationFrame\n if (!ticking) {\n ticking = true;\n\n var event;\n\n if (supportsCustomEvents) {\n event = new CustomEvent(EVENT_NAME, {\n detail: this.getScrollPosition()\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(EVENT_NAME, false, false, this.getScrollPosition());\n }\n\n window.dispatchEvent(event);\n\n window.requestAnimationFrame(function() {\n ticking = false;\n });\n }\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n ScrollManager.default = ScrollManager;\n module.exports = ScrollManager;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) { // eslint-disable-line no-undef\n // register as 'window-scroll-manager', consistent with npm package name\n define('window-scroll-manager', [], function() { // eslint-disable-line no-undef\n return ScrollManager;\n });\n } else {\n window.ScrollManager = ScrollManager;\n }\n}).call(this);\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ScrollManager = undefined;\n\nvar _windowScrollManager = require('window-scroll-manager');\n\nvar _windowScrollManager2 = _interopRequireDefault(_windowScrollManager);\n\nvar _Plx = require('./Plx');\n\nvar _Plx2 = _interopRequireDefault(_Plx);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Plx2.default;\nexports.ScrollManager = _windowScrollManager2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _bezierEasing = require('bezier-easing');\n\nvar _bezierEasing2 = _interopRequireDefault(_bezierEasing);\n\nvar _windowScrollManager = require('window-scroll-manager');\n\nvar _windowScrollManager2 = _interopRequireDefault(_windowScrollManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Check if code is running in the browser (important for universal rendering)\nvar WINDOW_EXISTS = typeof window !== 'undefined';\n\n// Regex that checks for numbers in string\n// formatted as \"{number}{unit}\" where unit is \"px\", \"vh\", \"%\" or none\nvar START_END_DURATION_REGEX = /^-?\\d+(\\.\\d+)?(px|vh|%)?$/;\n\nvar DEFAULT_UNIT = 'px';\nvar DEFAULT_ANGLE_UNIT = 'deg';\nvar ANGLE_PROPERTIES = ['rotate', 'rotateX', 'rotateY', 'rotateZ', 'skew', 'skewX', 'skewY', 'skewZ', 'hueRotate'];\n\nvar EASINGS = {\n ease: [0.25, 0.1, 0.25, 1.0],\n easeIn: [0.42, 0.0, 1.00, 1.0],\n easeOut: [0.00, 0.0, 0.58, 1.0],\n easeInOut: [0.42, 0.0, 0.58, 1.0],\n easeInSine: [0.47, 0, 0.745, 0.715],\n easeOutSine: [0.39, 0.575, 0.565, 1],\n easeInOutSine: [0.445, 0.05, 0.55, 0.95],\n easeInQuad: [0.55, 0.085, 0.68, 0.53],\n easeOutQuad: [0.25, 0.46, 0.45, 0.94],\n easeInOutQuad: [0.455, 0.03, 0.515, 0.955],\n easeInCubic: [0.55, 0.055, 0.675, 0.19],\n easeOutCubic: [0.215, 0.61, 0.355, 1],\n easeInOutCubic: [0.645, 0.045, 0.355, 1],\n easeInQuart: [0.895, 0.03, 0.685, 0.22],\n easeOutQuart: [0.165, 0.84, 0.44, 1],\n easeInOutQuart: [0.77, 0, 0.175, 1],\n easeInQuint: [0.755, 0.05, 0.855, 0.06],\n easeOutQuint: [0.23, 1, 0.32, 1],\n easeInOutQuint: [0.86, 0, 0.07, 1],\n easeInExpo: [0.95, 0.05, 0.795, 0.035],\n easeOutExpo: [0.19, 1, 0.22, 1],\n easeInOutExpo: [1, 0, 0, 1],\n easeInCirc: [0.6, 0.04, 0.98, 0.335],\n easeOutCirc: [0.075, 0.82, 0.165, 1],\n easeInOutCirc: [0.785, 0.135, 0.15, 0.86]\n};\n\n// Color regexes\n\n// 0 - 199 | 200 - 249 | 250 - 255\nvar REGEX_0_255 = '(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])';\n// 0.0 - 1.9999...\nvar REGEX_0_1 = '([01](\\\\.\\\\d+)?)';\n// 00 - FF\nvar REGEX_TWO_HEX_DIGITS = '([a-f\\\\d]{2})';\n\nvar HEX_REGEX = new RegExp('^#' + REGEX_TWO_HEX_DIGITS + REGEX_TWO_HEX_DIGITS + REGEX_TWO_HEX_DIGITS + '$', 'i');\nvar RGB_REGEX = new RegExp('^rgb\\\\(' + REGEX_0_255 + ',' + REGEX_0_255 + ',' + REGEX_0_255 + '\\\\)$', 'i');\nvar RGBA_REGEX = new RegExp('^rgba\\\\(' + REGEX_0_255 + ',' + REGEX_0_255 + ',' + REGEX_0_255 + ',' + REGEX_0_1 + '\\\\)$', 'i');\n\nvar SCROLL_OFFSET = 50;\n\nvar RESIZE_DEBOUNCE_TIMEOUT = 150;\n\n// CSS transform map\nvar TRANSFORM_MAP = {\n rotate: function rotate(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_ANGLE_UNIT;\n return 'rotate(' + value + unit + ')';\n },\n rotateX: function rotateX(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_ANGLE_UNIT;\n return 'rotateX(' + value + unit + ')';\n },\n rotateY: function rotateY(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_ANGLE_UNIT;\n return 'rotateY(' + value + unit + ')';\n },\n rotateZ: function rotateZ(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_ANGLE_UNIT;\n return 'rotateZ(' + value + unit + ')';\n },\n scale: function scale(value) {\n return 'scale(' + value + ')';\n },\n scaleX: function scaleX(value) {\n return 'scaleX(' + value + ')';\n },\n scaleY: function scaleY(value) {\n return 'scaleY(' + value + ')';\n },\n scaleZ: function scaleZ(value) {\n return 'scaleZ(' + value + ')';\n },\n skew: function skew(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'skew(' + value + unit + ')';\n },\n skewX: function skewX(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'skewX(' + value + unit + ')';\n },\n skewY: function skewY(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'skewY(' + value + unit + ')';\n },\n skewZ: function skewZ(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'skewZ(' + value + unit + ')';\n },\n translateX: function translateX(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'translateX(' + value + unit + ')';\n },\n translateY: function translateY(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'translateY(' + value + unit + ')';\n },\n translateZ: function translateZ(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'translateZ(' + value + unit + ')';\n }\n};\n\n// Order of CSS transforms matters\nvar ORDER_OF_TRANSFORMS = ['translateX', 'translateY', 'translateZ', 'skew', 'skewX', 'skewY', 'skewZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ'];\n\n// CSS properties that use color values\nvar COLOR_PROPERTIES = ['backgroundColor', 'borderBottomColor', 'borderColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'fill', 'stroke'];\n\n// CSS filter map\n// blur()\n// brightness()\n// contrast()\n// grayscale()\n// hue-rotate()\n// invert()\n// opacity() // use opacityFilter\n// saturate()\n// sepia()\n\n// Not supported\n// drop-shadow()\n// url()\nvar FILTER_MAP = {\n blur: function blur(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_UNIT;\n return 'blur(' + value + unit + ')';\n },\n brightness: function brightness(value) {\n return 'brightness(' + value + ')';\n },\n contrast: function contrast(value) {\n return 'contrast(' + value + ')';\n },\n grayscale: function grayscale(value) {\n return 'grayscale(' + value + ')';\n },\n hueRotate: function hueRotate(value) {\n var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_ANGLE_UNIT;\n return 'hue-rotate(' + value + unit + ')';\n },\n invert: function invert(value) {\n return 'invert(' + value + ')';\n },\n opacityFilter: function opacityFilter(value) {\n return 'opacity(' + value + ')';\n },\n saturate: function saturate(value) {\n return 'saturate(' + value + ')';\n },\n sepia: function sepia(value) {\n return 'sepia(' + value + ')';\n }\n};\n\nvar FILTER_PROPERTIES = ['blur', 'brightness', 'contrast', 'grayscale', 'hueRotate', 'invert', 'opacityFilter', 'saturate', 'sepia'];\n\n// Props to be removed from passing directly to the component element\nvar PROPS_TO_OMIT = ['animateWhenNotInViewport', 'children', 'className', 'freeze', 'parallaxData', 'style', 'tagName', 'onPlxStart', 'onPlxEnd'];\n\n// Get element's top offset\nfunction getElementTop(el) {\n var top = 0;\n var element = el;\n\n do {\n top += element.offsetTop || 0;\n element = element.offsetParent;\n } while (element);\n\n return top;\n}\n\n// Returns CSS unit\nfunction getUnit(property, unit) {\n var propertyUnit = unit || DEFAULT_UNIT;\n\n if (ANGLE_PROPERTIES.indexOf(property) >= 0) {\n propertyUnit = unit || DEFAULT_ANGLE_UNIT;\n }\n\n return propertyUnit;\n}\n\n// Takes string value (in px/vh/%) and returns number\nfunction getValueInPx(value, maxScroll) {\n var floatValue = parseFloat(value);\n var unit = value.match(START_END_DURATION_REGEX)[2] || null;\n var vh = window.innerHeight / 100;\n var valueInPx = value;\n\n switch (unit) {\n case 'vh':\n valueInPx = vh * floatValue;\n break;\n case '%':\n valueInPx = maxScroll * floatValue / 100;\n break;\n default:\n valueInPx = floatValue;\n }\n\n return valueInPx;\n}\n\n// Takes start/end/duration props\n// and return number (in pixels) based on prop type (number, string, dom element)\nfunction convertPropToPixels(propName, propValue, maxScroll) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n var propValueInPx = propValue;\n var isElement = propValue instanceof HTMLElement;\n var keyCodes = {\n ZERO: 48,\n NINE: 57\n };\n\n if (typeof propValue === 'number') {\n propValueInPx = propValue;\n } else if (START_END_DURATION_REGEX.test(propValue)) {\n propValueInPx = getValueInPx(propValue, maxScroll);\n } else if (isElement || typeof propValue === 'string' && (propValue.charCodeAt(0) < keyCodes.ZERO || propValue.charCodeAt(0) > keyCodes.NINE)) {\n var element = isElement ? propValue : document.querySelector(propValue);\n\n if (!element) {\n console.warn('Plx, ERROR: ' + propName + ' selector matches no elements: \"' + propValue + '\"'); // eslint-disable-line\n return null;\n }\n\n if (propName === 'start' || propName === 'end') {\n // START or END\n // Element enters the viewport\n propValueInPx = getElementTop(element) - window.innerHeight;\n } else if (propName === 'duration') {\n // DURATION\n // Height of the element\n propValueInPx = element.offsetHeight;\n }\n } else {\n console.warn('Plx, ERROR: \"' + propValue + '\" is not a valid ' + propName + ' value, check documenation'); // eslint-disable-line\n return null;\n }\n\n // Transform offset to px\n var offsetInPx = 0;\n\n if (typeof offset === 'number') {\n offsetInPx = offset;\n } else if (START_END_DURATION_REGEX.test(offset)) {\n offsetInPx = getValueInPx(offset, maxScroll);\n }\n // Add offset\n propValueInPx += offsetInPx;\n\n if (propValueInPx < 0) {\n propValueInPx = 0;\n }\n\n return propValueInPx;\n}\n\n// Convers color in hex format into object { r, g, b, a }\nfunction hexToObject(hex) {\n // Convert #abc to #aabbcc\n var color = hex.length === 4 ? '#' + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3] : hex;\n var result = HEX_REGEX.exec(color);\n\n // Safety check, if color is in the wrong format\n if (!result) {\n console.warn('Plx, ERROR: hex color is not in the right format: \"' + hex + '\"'); // eslint-disable-line no-console\n return null;\n }\n\n // All color functions are returning { r, g, b, a } object\n return {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n a: 1\n };\n}\n\n// Convers color in rgb format into object { r, g, b, a }\nfunction rgbToObject(rgb) {\n var isRgba = rgb.toLowerCase().indexOf('rgba') === 0;\n var color = rgb.replace(/ /g, '');\n var result = isRgba ? RGBA_REGEX.exec(color) : RGB_REGEX.exec(color);\n\n // Safety check, if color is in the wrong format\n if (!result) {\n console.warn('Plx, ERROR: rgb or rgba color is not in the right format: \"' + rgb + '\"'); // eslint-disable-line\n return null;\n }\n\n // All color functions are returning { r, g, b, a } object\n return {\n r: parseInt(result[1], 10),\n g: parseInt(result[2], 10),\n b: parseInt(result[3], 10),\n a: isRgba ? parseFloat(result[4]) : 1\n };\n}\n\n// Calculates the current value for parallaxing property\nfunction parallax(scrollPosition, start, duration, startValue, endValue, easing) {\n var min = startValue;\n var max = endValue;\n var invert = startValue > endValue;\n\n // Safety check, if \"startValue\" is in the wrong format\n if (typeof startValue !== 'number') {\n console.warn('Plx, ERROR: startValue is not a number (type: \"' + (typeof endValue === 'undefined' ? 'undefined' : _typeof(endValue)) + '\", value: \"' + endValue + '\")'); // eslint-disable-line\n return null;\n }\n\n // Safety check, if \"endValue\" is in the wrong format\n if (typeof endValue !== 'number') {\n console.warn('Plx, ERROR: endValue is not a number (type: \"' + (typeof endValue === 'undefined' ? 'undefined' : _typeof(endValue)) + '\", value: \"' + endValue + '\")'); // eslint-disable-line\n return null;\n }\n\n // Safety check, if \"duration\" is in the wrong format\n if (typeof duration !== 'number' || duration === 0) {\n console.warn('Plx, ERROR: duration is zero or not a number (type: \"' + (typeof duration === 'undefined' ? 'undefined' : _typeof(duration)) + '\", value: \"' + duration + '\")'); // eslint-disable-line\n return null;\n }\n\n if (invert) {\n min = endValue;\n max = startValue;\n }\n\n var percentage = (scrollPosition - start) / duration;\n\n if (percentage > 1) {\n percentage = 1;\n } else if (percentage < 0) {\n percentage = 0;\n }\n\n // Apply easing\n if (easing) {\n var easingPropType = typeof easing === 'undefined' ? 'undefined' : _typeof(easing);\n if (easingPropType === 'object' && easing.length === 4) {\n percentage = (0, _bezierEasing2.default)(easing[0], easing[1], easing[2], easing[3])(percentage);\n } else if (easingPropType === 'string' && EASINGS[easing]) {\n percentage = (0, _bezierEasing2.default)(EASINGS[easing][0], EASINGS[easing][1], EASINGS[easing][2], EASINGS[easing][3])(percentage);\n } else if (easingPropType === 'function') {\n percentage = easing(percentage);\n }\n }\n\n var value = percentage * (max - min);\n\n if (invert) {\n value = max - value;\n } else {\n value += min;\n }\n\n return Math.floor(value * 100) / 100;\n}\n\n// Calculates current value for color parallax\nfunction colorParallax(scrollPosition, start, duration, startValue, endValue, easing) {\n var startObject = null;\n var endObject = null;\n\n if (startValue[0].toLowerCase() === 'r') {\n startObject = rgbToObject(startValue);\n } else {\n startObject = hexToObject(startValue);\n }\n\n if (endValue[0].toLowerCase() === 'r') {\n endObject = rgbToObject(endValue);\n } else {\n endObject = hexToObject(endValue);\n }\n\n if (startObject && endObject) {\n var r = parallax(scrollPosition, start, duration, startObject.r, endObject.r, easing);\n var g = parallax(scrollPosition, start, duration, startObject.g, endObject.g, easing);\n var b = parallax(scrollPosition, start, duration, startObject.b, endObject.b, easing);\n var a = parallax(scrollPosition, start, duration, startObject.a, endObject.a, easing);\n\n return 'rgba(' + parseInt(r, 10) + ', ' + parseInt(g, 10) + ', ' + parseInt(b, 10) + ', ' + a + ')';\n }\n\n return null;\n}\n\n// Applies property parallax to the style object\nfunction applyProperty(scrollPosition, propertyData, startPosition, duration, style, easing) {\n var startValue = propertyData.startValue,\n endValue = propertyData.endValue,\n property = propertyData.property,\n unit = propertyData.unit;\n\n // If property is one of the color properties\n // Use it's parallax method\n\n var isColor = COLOR_PROPERTIES.indexOf(property) > -1;\n var parallaxMethod = isColor ? colorParallax : parallax;\n\n // Get new CSS value\n var value = parallaxMethod(scrollPosition, startPosition, duration, startValue, endValue, easing);\n\n // Get transform function\n var transformMethod = TRANSFORM_MAP[property];\n var filterMethod = FILTER_MAP[property];\n var newStyle = style;\n\n if (transformMethod) {\n // Get CSS unit\n var propertyUnit = getUnit(property, unit);\n // Transforms, apply value to transform function\n newStyle.transform[property] = transformMethod(value, propertyUnit);\n } else if (filterMethod) {\n // Get CSS unit\n var _propertyUnit = getUnit(property, unit);\n // Filters, apply value to filter function\n newStyle.filter[property] = filterMethod(value, _propertyUnit);\n } else {\n // All other properties\n newStyle[property] = value;\n\n // Add unit if it is passed\n if (unit) {\n newStyle[property] += unit;\n }\n }\n\n return newStyle;\n}\n\n// Returns CSS classes based on animation state\nfunction getClasses(lastSegmentScrolledBy, isInSegment, parallaxData) {\n var cssClasses = null;\n\n if (lastSegmentScrolledBy === null) {\n cssClasses = 'Plx--above';\n } else if (lastSegmentScrolledBy === parallaxData.length - 1 && !isInSegment) {\n cssClasses = 'Plx--below';\n } else if (lastSegmentScrolledBy !== null && isInSegment) {\n var segmentName = parallaxData[lastSegmentScrolledBy].name || lastSegmentScrolledBy;\n\n cssClasses = 'Plx--active Plx--in Plx--in-' + segmentName;\n } else if (lastSegmentScrolledBy !== null && !isInSegment) {\n var _segmentName = parallaxData[lastSegmentScrolledBy].name || lastSegmentScrolledBy;\n var nextSegmentName = parallaxData[lastSegmentScrolledBy + 1].name || lastSegmentScrolledBy + 1;\n\n cssClasses = 'Plx--active Plx--between Plx--between-' + _segmentName + '-and-' + nextSegmentName;\n }\n\n return cssClasses;\n}\n\n// Checks if class contains 'active'\nfunction checkIfActive(classes) {\n return classes.indexOf('Plx--active') > -1;\n}\n\n// Omits \"keysToOmit\" from \"object\"\nfunction omit(object, keysToOmit) {\n var result = {};\n\n Object.keys(object).forEach(function (key) {\n if (keysToOmit.indexOf(key) === -1) {\n result[key] = object[key];\n }\n });\n\n return result;\n}\n\n// Main update function\n// Returns new state object based on props and scroll position\nfunction getNewState(scrollPosition, props, state, element) {\n var animateWhenNotInViewport = props.animateWhenNotInViewport,\n disabled = props.disabled,\n freeze = props.freeze,\n parallaxData = props.parallaxData;\n var showElement = state.showElement,\n plxStyle = state.plxStyle,\n plxStateClasses = state.plxStateClasses;\n\n // Do nothing if animation is disabled, frozen\n // or if element is not rendered yet\n\n if (freeze && showElement || !element || disabled) {\n return null;\n }\n\n // Check if element is in viewport\n // Small offset is added to prevent page jumping\n if (!animateWhenNotInViewport) {\n var rect = element.getBoundingClientRect();\n var isTopAboveBottomEdge = rect.top < window.innerHeight + SCROLL_OFFSET;\n var isBottomBelowTopEdge = rect.top + rect.height > -SCROLL_OFFSET;\n\n if (!isTopAboveBottomEdge || !isBottomBelowTopEdge) {\n return null;\n }\n }\n\n var newState = {};\n\n // Style to be applied to our element\n var newStyle = {\n transform: {},\n filter: {}\n };\n\n // This means \"componentDidMount\" did happen and that we should show our element\n if (!showElement) {\n newState.showElement = true;\n }\n\n var appliedProperties = [];\n var segments = [];\n var isInSegment = false;\n var lastSegmentScrolledBy = null;\n var bodyHeight = document.documentElement.scrollHeight || document.body.scrollHeight;\n var maxScroll = bodyHeight - window.innerHeight;\n\n var _loop = function _loop(i) {\n var _parallaxData$i = parallaxData[i],\n duration = _parallaxData$i.duration,\n easing = _parallaxData$i.easing,\n endOffset = _parallaxData$i.endOffset,\n properties = _parallaxData$i.properties,\n startOffset = _parallaxData$i.startOffset;\n\n\n var start = parallaxData[i].start === 'self' ? element : parallaxData[i].start;\n var end = parallaxData[i].end === 'self' ? element : parallaxData[i].end;\n\n var startInPx = convertPropToPixels('start', start, maxScroll, startOffset);\n var durationInPx = null;\n var endInPx = null;\n\n // End has higher priority than duration\n if (typeof end !== 'undefined') {\n endInPx = convertPropToPixels('end', end, maxScroll, endOffset);\n durationInPx = endInPx - startInPx;\n } else {\n durationInPx = convertPropToPixels('duration', duration, maxScroll);\n endInPx = startInPx + durationInPx;\n }\n\n // If segment is below scroll position skip it\n if (scrollPosition < startInPx) {\n return 'break';\n }\n\n var isScrolledByStart = scrollPosition >= startInPx;\n\n if (isScrolledByStart) {\n lastSegmentScrolledBy = i;\n }\n\n // If active segment exists, apply his properties\n if (scrollPosition >= startInPx && scrollPosition <= endInPx) {\n isInSegment = true;\n\n properties.forEach(function (propertyData) {\n // eslint-disable-line no-loop-func\n var property = propertyData.property;\n\n // Save which properties are applied to the active segment\n // So they are not re-applied for other segments\n\n appliedProperties.push(property);\n\n // Apply property style\n newStyle = applyProperty(scrollPosition, propertyData, startInPx, durationInPx, newStyle, easing);\n });\n } else {\n // Push non active segments above the scroll position to separate array\n // This way \"durationInPx\" and \"startInPx\" are not calculated again\n // and segments below scroll position are skipped in the next step\n segments.push({\n easing: easing,\n durationInPx: durationInPx,\n properties: properties,\n startInPx: startInPx\n });\n }\n };\n\n for (var i = 0; i < parallaxData.length; i++) {\n var _ret = _loop(i);\n\n if (_ret === 'break') break;\n }\n\n // These are only segments that are completly above scroll position\n segments.forEach(function (data) {\n var easing = data.easing,\n durationInPx = data.durationInPx,\n properties = data.properties,\n startInPx = data.startInPx;\n\n\n properties.forEach(function (propertyData) {\n var property = propertyData.property;\n\n // Skip propery that was changed for active segment\n\n if (appliedProperties.indexOf(property) > -1) {\n return;\n }\n\n // These styles that are the ones changed by segments\n // that are above active segment\n newStyle = applyProperty(scrollPosition, propertyData, startInPx, durationInPx, newStyle, easing);\n });\n });\n\n // Sort transforms by ORDER_OF_TRANSFORMS\n // as order of CSS transforms matters\n var transformsOrdered = [];\n\n ORDER_OF_TRANSFORMS.forEach(function (transformKey) {\n if (newStyle.transform[transformKey]) {\n transformsOrdered.push(newStyle.transform[transformKey]);\n }\n });\n\n // Concat transforms and add webkit prefix\n newStyle.transform = transformsOrdered.join(' ');\n newStyle.WebkitTransform = newStyle.transform;\n\n var filtersArray = [];\n FILTER_PROPERTIES.forEach(function (filterKey) {\n if (newStyle.filter[filterKey]) {\n filtersArray.push(newStyle.filter[filterKey]);\n }\n });\n\n // Concat filters and add webkit prefix\n newStyle.filter = filtersArray.join(' ');\n newStyle.WebkitFilter = newStyle.filter;\n\n // \"Stupid\" check if style should be updated\n if (JSON.stringify(plxStyle) !== JSON.stringify(newStyle)) {\n newState.plxStyle = newStyle;\n }\n\n // Adding state class\n var newPlxStateClasses = getClasses(lastSegmentScrolledBy, isInSegment, parallaxData);\n\n if (newPlxStateClasses !== plxStateClasses) {\n newState.plxStateClasses = newPlxStateClasses;\n }\n\n if (Object.keys(newState).length) {\n return newState;\n }\n\n return null;\n}\n\nvar Plx = function (_Component) {\n _inherits(Plx, _Component);\n\n function Plx(props) {\n _classCallCheck(this, Plx);\n\n // Binding handlers\n var _this = _possibleConstructorReturn(this, (Plx.__proto__ || Object.getPrototypeOf(Plx)).call(this, props));\n\n _this.handleScrollChange = _this.handleScrollChange.bind(_this);\n _this.handleResize = _this.handleResize.bind(_this);\n\n _this.state = {\n element: null,\n showElement: false,\n plxStateClasses: '',\n plxStyle: {}\n };\n\n // Skipping type checking as PropTypes will give a warning if the props aren't functions\n _this.plxStartEnabled = _this.props.onPlxStart !== null;\n _this.plxEndEnabled = _this.props.onPlxEnd !== null;\n return _this;\n }\n\n _createClass(Plx, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // Get scroll manager singleton\n this.scrollManager = new _windowScrollManager2.default();\n // Add listeners\n window.addEventListener('window-scroll', this.handleScrollChange);\n window.addEventListener('resize', this.handleResize);\n\n this.update();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var wasActive = checkIfActive(prevState.plxStateClasses);\n var isActive = checkIfActive(this.state.plxStateClasses);\n if (prevProps !== this.props) {\n this.update();\n }\n if ((this.plxStartEnabled || this.plxEndEnabled) && prevState.plxStateClasses !== this.state.plxStateClasses) {\n if (this.plxStartEnabled && !wasActive && isActive) {\n this.props.onPlxStart();\n } else if (this.plxEndEnabled && wasActive && !isActive) {\n this.props.onPlxEnd();\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('window-scroll', this.handleScrollChange);\n window.removeEventListener('resize', this.handleResize);\n\n clearTimeout(this.resizeDebounceTimeoutID);\n this.resizeDebounceTimeoutID = null;\n\n if (this.scrollManager) {\n this.scrollManager.removeListener();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var _this2 = this;\n\n var scrollPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n var currentScrollPosition = scrollPosition === null ? this.scrollManager.getScrollPosition().scrollPositionY : scrollPosition;\n\n var newState = getNewState(currentScrollPosition, this.props, this.state, this.element);\n\n if (newState) {\n requestAnimationFrame(function () {\n return _this2.setState(newState);\n });\n }\n }\n }, {\n key: 'handleResize',\n value: function handleResize() {\n var _this3 = this;\n\n clearTimeout(this.resizeDebounceTimeoutID);\n this.resizeDebounceTimeoutID = setTimeout(function () {\n _this3.update();\n }, RESIZE_DEBOUNCE_TIMEOUT);\n }\n }, {\n key: 'handleScrollChange',\n value: function handleScrollChange(e) {\n this.update(e.detail.scrollPositionY);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disabled = _props.disabled,\n style = _props.style,\n tagName = _props.tagName;\n var _state = this.state,\n showElement = _state.showElement,\n plxStyle = _state.plxStyle,\n plxStateClasses = _state.plxStateClasses;\n\n\n var Tag = tagName;\n\n var elementStyle = style;\n\n if (!disabled) {\n elementStyle = _extends({}, style, plxStyle, {\n // Hide element before until it is rendered\n // This prevents jumps if page is scrolled and then refreshed\n visibility: showElement ? null : 'hidden'\n });\n }\n\n return _react2.default.createElement(\n Tag,\n _extends({}, omit(this.props, PROPS_TO_OMIT), {\n className: 'Plx ' + plxStateClasses + ' ' + className,\n style: elementStyle,\n ref: function ref(el) {\n return _this4.element = el;\n }\n }),\n children\n );\n }\n }]);\n\n return Plx;\n}(_react.Component);\n\nexports.default = Plx;\n\n\nvar propertiesItemType = _propTypes2.default.shape({\n startValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]).isRequired,\n endValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]).isRequired,\n property: _propTypes2.default.string.isRequired,\n unit: _propTypes2.default.string\n});\n\n// Check for the universal rendering\n// HTMLElement in the proptypes breaks on server\n// https://github.com/Stanko/react-plx/issues/25\nvar SafeHTMLElement = WINDOW_EXISTS ? window.HTMLElement : {};\n\nvar parallaxDataType = _propTypes2.default.shape({\n start: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.instanceOf(SafeHTMLElement)]).isRequired,\n startOffset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n duration: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.instanceOf(SafeHTMLElement)]),\n end: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.instanceOf(SafeHTMLElement)]),\n endOffset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n properties: _propTypes2.default.arrayOf(propertiesItemType).isRequired,\n easing: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array, _propTypes2.default.func]),\n name: _propTypes2.default.string\n});\n\nPlx.propTypes = {\n animateWhenNotInViewport: _propTypes2.default.bool,\n children: _propTypes2.default.any,\n className: _propTypes2.default.string,\n disabled: _propTypes2.default.bool,\n freeze: _propTypes2.default.bool,\n parallaxData: _propTypes2.default.arrayOf(parallaxDataType),\n style: _propTypes2.default.objectOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object])),\n tagName: _propTypes2.default.string,\n onPlxStart: _propTypes2.default.func,\n onPlxEnd: _propTypes2.default.func\n};\n\nPlx.defaultProps = {\n animateWhenNotInViewport: false,\n children: null,\n className: '',\n disabled: false,\n freeze: false,\n parallaxData: [],\n style: {},\n tagName: 'div',\n onPlxStart: null,\n onPlxEnd: null\n};","/**\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","export enum Alignment {\n STARTING = 'STARTING',\n CENTER = 'CENTER',\n}\n\nexport default null;\n","import React from 'react';\nimport { useCurrentLanguage } from 'domain/selectors/page';\n\nexport default (Component: any) => {\n return function EnhancedComponent(props: any) {\n const currentLanguage = useCurrentLanguage();\n return ;\n };\n};\n","export default (url: string, language?: string) => {\n if (url && url.length && language) {\n let parsedLanguage;\n if (language.split('-').length === 2) {\n parsedLanguage = [language.split('-')[0], language.split('-')[1].toUpperCase()].join('-');\n } else {\n parsedLanguage = language;\n }\n return url.replace('{{language}}', parsedLanguage);\n }\n return url;\n};\n","/*\n createImageAlt({\n illustration: ?String,\n imageUrl: String,\n });\n\n Returns a relevant alt tag text from the URL path\n*/\n\nimport { isNotNilOrEmpty } from '@team-griffin/capra';\nimport * as r from 'ramda';\n\nconst hasImage = r.propSatisfies(isNotNilOrEmpty, 'imageUrl');\n\n/*\n getImageName\n From a URL like https://img1.wsimg.com/cdn/Image/All/Website/2/en-GB/ad586f1e-81a0-4a9d-a675-e266e25e965f/Christian_Jaroljmek.jpg\n return the text between the final slash and dot (Christian_Jaroljmek)\n\n If no regex match, return the string as is (this will capture illustrations)\n*/\nconst getImageName = (str: string) => {\n if (typeof str !== 'string') {\n return '';\n }\n\n const image = str.match(/\\/([^/]+?)\\.[a-zA-Z0-9]+$/);\n\n if (image && image[1]) {\n return image[1];\n }\n\n return str;\n};\n\n/*\n formatName\n Replace any underscores and hyphens with whitespace\n*/\nconst formatName = (str: string) => str.replace(/[-_]/g, ' ');\n\n// eslint-disable-next-line no-underscore-dangle\nexport const __test__ = {\n getImageName,\n formatName,\n};\n\nexport default r.ifElse(hasImage, r.pipe(r.prop('imageUrl'), getImageName, formatName), r.always(''));\n","/**\n * This file contains an runtime version of `styled` component. Responsibilities of the component are:\n * - returns ReactElement based on HTML tag used with `styled` or custom React Component\n * - injects classNames for the returned component\n * - injects CSS variables used to define dynamic styles based on props\n */\nimport * as React from 'react'; // eslint-disable-line import/no-extraneous-dependencies\n\nimport validAttr from '@emotion/is-prop-valid';\nimport { cx } from '../index';\n\n// Workaround for rest operator\nconst restOp = (obj, keysToExclude) => Object.keys(obj).filter(prop => !keysToExclude.includes(prop)).reduce((acc, curr) => Object.assign(acc, {\n [curr]: obj[curr]\n}), {}); // rest operator workaround\n\n\nconst warnIfInvalid = (value, componentName) => {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof value === 'string' || // eslint-disable-next-line no-self-compare\n typeof value === 'number' && isFinite(value)) {\n return;\n }\n\n const stringified = typeof value === 'object' ? JSON.stringify(value) : String(value); // eslint-disable-next-line no-console\n\n console.warn(`An interpolation evaluated to '${stringified}' in the component '${componentName}', which is probably a mistake. You should explicitly cast or transform the value to a string.`);\n }\n}; // If styled wraps custom component, that component should have className property\n\n\nfunction styled(tag) {\n return options => {\n if (process.env.NODE_ENV !== 'production') {\n if (Array.isArray(options)) {\n // We received a strings array since it's used as a tag\n throw new Error('Using the \"styled\" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly. See https://github.com/callstack/linaria#setup');\n }\n }\n\n const render = (props, ref) => {\n const {\n as: component = tag,\n class: className\n } = props;\n const rest = restOp(props, ['as', 'class']);\n let filteredProps; // Check if it's an HTML tag and not a custom element\n\n if (typeof component === 'string' && component.indexOf('-') === -1) {\n filteredProps = {}; // eslint-disable-next-line guard-for-in\n\n for (const key in rest) {\n if (key === 'as' || validAttr(key)) {\n // Don't pass through invalid attributes to HTML elements\n filteredProps[key] = rest[key];\n }\n }\n } else {\n filteredProps = rest;\n }\n\n filteredProps.ref = ref;\n filteredProps.className = cx(filteredProps.className || className, options.class);\n const {\n vars\n } = options;\n\n if (vars) {\n const style = {}; // eslint-disable-next-line guard-for-in\n\n for (const name in vars) {\n const variable = vars[name];\n const result = variable[0];\n const unit = variable[1] || '';\n const value = typeof result === 'function' ? result(props) : result;\n warnIfInvalid(value, options.name);\n style[`--${name}`] = `${value}${unit}`;\n }\n\n filteredProps.style = Object.assign(style, filteredProps.style);\n }\n\n if (tag.__linaria && tag !== component) {\n // If the underlying tag is a styled component, forward the `as` prop\n // Otherwise the styles from the underlying component will be ignored\n filteredProps.as = component;\n return /*#__PURE__*/React.createElement(tag, filteredProps);\n }\n\n return /*#__PURE__*/React.createElement(component, filteredProps);\n };\n\n const Result = React.forwardRef ? /*#__PURE__*/React.forwardRef(render) : // React.forwardRef won't available on older React versions and in Preact\n // Fallback to a innerRef prop in that case\n props => {\n const rest = restOp(props, ['innerRef']);\n return render(rest, props.innerRef);\n };\n Result.displayName = options.name; // These properties will be read by the babel plugin for interpolation\n\n Result.__linaria = {\n className: options.class,\n extends: tag\n };\n return Result;\n };\n}\n\nexport default process.env.NODE_ENV !== 'production' ? new Proxy(styled, {\n get(o, prop) {\n return o(prop);\n }\n\n}) : styled;\n//# sourceMappingURL=styled.js.map","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n"],"sourceRoot":""}