{"version":3,"sources":["webpack:///./node_modules/react-swipeable/dist/react-swipeable.umd.js","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///./src/utils/useCarousel.js","webpack:///./src/components/Carousel.New.js","webpack:///./src/components/product/Experts.js"],"names":["exports","React","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","defaultProps","delta","preventDefaultTouchmoveEvent","rotationAngle","trackMouse","trackTouch","initialState","first","initial","start","swiping","xy","rotateXYByAngle","pos","angle","angleInRadians","Math","PI","cos","sin","DOWN","LEFT","RIGHT","UP","useSwipeable","options","transientState","useRef","transientProps","current","_React$useMemo","useMemo","set","handlerProps","onStart","event","touches","state","props","document","addEventListener","onMove","onUp","_ref","clientX","clientY","concat","timeStamp","_ref2","_rotateXYByAngle","x","y","deltaX","deltaY","absX","abs","absY","time","velocity","sqrt","vxvy","dir","getDirection","eventData","onSwiping","cancelablePageSwipe","onSwiped","cancelable","preventDefault","onEnd","onSwipedDir","onTap","cleanUpMouse","removeEventListener","e","attachTouch","el","passive","cleanup","tls","forEach","_ref3","h","_ref4","output","ref","addState","cleanUpTouch","undefined","onMouseDown","getHandlers","stateSetter","handlers","updateTransientState","factory","module","sign","$","stat","initialCarouselState","offset","desired","active","previous","carouselReducer","action","type","NaN","swiped","dispatch","container","clientWidth","useCarousel","interval","slidesPresented","totalWidth","max","min","useReducer","useState","setContainer","onSwipedLeft","onSwipedRight","firstElementChild","useEffect","id","setTimeout","clearTimeout","style","transform","width","left","dist","pref","shift","transition","isNaN","n","Wrapper","styled","div","CarouselContent","CarouselItem","Ol","ol","attrs","className","CarouselSlideMarker","li","p","index","Color","ritualBlue","white","ritualSecondaryDisabledBlue","CarouselControls","rem","responsive","sm","CarouselButton","button","media","mobile","CarouselContainer","children","showButtons","arrowButtons","disableCarousel","slides","toArray","setActive","CarouselChild","RenderEnabledCarousel","beforeIndices","afterIndices","map","slide","RenderDisabledCarousel","Buttons","_","onClick","ArrowButtons","disabled","aria-label","CaretLeft","CaretRight","ExpertsArea","section","tablet","ExpertContainer","Container","Header","h2","Font","circular","Subhead","dutch","ExpertColumn","ExpertCard","md","lg","QuoteImageWrapper","QuoteImage","Img","QuoteAuthor","h3","QuoteAuthorTitle","Experts","setVisibleSlides","atLeast","desktop","setState","componentDidMount","window","on","componentWillUnmount","off","render","expertsTitle","expertsSubhead","experts","name","image","title","firstClass","lastClass","borderRadius","overflow","alt","fluid","Component"],"mappings":"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","file":"f78d415170b0919798ae95600e714a34f928f3cd-55f4f55d550e7bfb6c2a.js","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : (global = global || self, factory(global.swipeable = {}, global.react));\n})(this, function (exports, React) {\n function _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\n var LEFT = \"Left\";\n var RIGHT = \"Right\";\n var UP = \"Up\";\n var DOWN = \"Down\";\n var defaultProps = {\n delta: 10,\n preventDefaultTouchmoveEvent: false,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true\n };\n var initialState = {\n first: true,\n initial: [0, 0],\n start: 0,\n swiping: false,\n xy: [0, 0]\n };\n var mouseMove = \"mousemove\";\n var mouseUp = \"mouseup\";\n var touchEnd = \"touchend\";\n var touchMove = \"touchmove\";\n var touchStart = \"touchstart\";\n\n function getDirection(absX, absY, deltaX, deltaY) {\n if (absX > absY) {\n if (deltaX > 0) {\n return RIGHT;\n }\n\n return LEFT;\n } else if (deltaY > 0) {\n return DOWN;\n }\n\n return UP;\n }\n\n function rotateXYByAngle(pos, angle) {\n if (angle === 0) return pos;\n var angleInRadians = Math.PI / 180 * angle;\n var x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n var y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n }\n\n function getHandlers(set, handlerProps) {\n var onStart = function onStart(event) {\n // if more than a single touch don't track, for now...\n if (event && \"touches\" in event && event.touches.length > 1) return;\n set(function (state, props) {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n\n var _ref = \"touches\" in event ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n var xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n return _extends({}, state, initialState, {\n initial: [].concat(xy),\n xy: xy,\n start: event.timeStamp || 0\n });\n });\n };\n\n var onMove = function onMove(event) {\n set(function (state, props) {\n // Discount a swipe if additional touches are present after\n // a swipe has started.\n if (\"touches\" in event && event.touches.length > 1) {\n return state;\n }\n\n var _ref2 = \"touches\" in event ? event.touches[0] : event,\n clientX = _ref2.clientX,\n clientY = _ref2.clientY;\n\n var _rotateXYByAngle = rotateXYByAngle([clientX, clientY], props.rotationAngle),\n x = _rotateXYByAngle[0],\n y = _rotateXYByAngle[1];\n\n var deltaX = x - state.xy[0];\n var deltaY = y - state.xy[1];\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n var time = (event.timeStamp || 0) - state.start;\n var velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1);\n var vxvy = [deltaX / (time || 1), deltaY / (time || 1)]; // if swipe is under delta and we have not started to track a swipe: skip update\n\n if (absX < props.delta && absY < props.delta && !state.swiping) return state;\n var dir = getDirection(absX, absY, deltaX, deltaY);\n var eventData = {\n absX: absX,\n absY: absY,\n deltaX: deltaX,\n deltaY: deltaY,\n dir: dir,\n event: event,\n first: state.first,\n initial: state.initial,\n velocity: velocity,\n vxvy: vxvy\n };\n props.onSwiping && props.onSwiping(eventData); // track if a swipe is cancelable(handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n\n var cancelablePageSwipe = false;\n\n if (props.onSwiping || props.onSwiped || \"onSwiped\" + dir in props) {\n cancelablePageSwipe = true;\n }\n\n if (cancelablePageSwipe && props.preventDefaultTouchmoveEvent && props.trackTouch && event.cancelable) event.preventDefault();\n return _extends({}, state, {\n // first is now always false\n first: false,\n eventData: eventData,\n swiping: true\n });\n });\n };\n\n var onEnd = function onEnd(event) {\n set(function (state, props) {\n var eventData;\n\n if (state.swiping && state.eventData) {\n eventData = _extends({}, state.eventData, {\n event: event\n });\n props.onSwiped && props.onSwiped(eventData);\n var onSwipedDir = \"onSwiped\" + eventData.dir;\n\n if (onSwipedDir in props) {\n props[onSwipedDir](eventData);\n }\n } else {\n props.onTap && props.onTap({\n event: event\n });\n }\n\n return _extends({}, state, initialState, {\n eventData: eventData\n });\n });\n };\n\n var cleanUpMouse = function cleanUpMouse() {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n\n var onUp = function onUp(e) {\n cleanUpMouse();\n onEnd(e);\n };\n /**\r\n * Switch of \"passive\" property for now.\r\n * When `preventDefaultTouchmoveEvent` is:\r\n * - true => { passive: false }\r\n * - false => { passive: true }\r\n *\r\n * Could take entire `addEventListener` options object as a param later?\r\n */\n\n\n var attachTouch = function attachTouch(el, passive) {\n var cleanup = function cleanup() {};\n\n if (el && el.addEventListener) {\n // attach touch event listeners and handlers\n var tls = [[touchStart, onStart], [touchMove, onMove], [touchEnd, onEnd]];\n tls.forEach(function (_ref3) {\n var e = _ref3[0],\n h = _ref3[1];\n return el.addEventListener(e, h, {\n passive: passive\n });\n }); // return properly scoped cleanup method for removing listeners, options not required\n\n cleanup = function cleanup() {\n return tls.forEach(function (_ref4) {\n var e = _ref4[0],\n h = _ref4[1];\n return el.removeEventListener(e, h);\n });\n };\n }\n\n return cleanup;\n };\n\n var onRef = function onRef(el) {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null) return;\n set(function (state, props) {\n // if the same DOM el as previous just return state\n if (state.el === el) return state;\n var addState = {}; // if new DOM el clean up old DOM and reset cleanUpTouch\n\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = undefined;\n } // only attach if we want to track touch\n\n\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el, !props.preventDefaultTouchmoveEvent);\n } // store event attached DOM el for comparison, clean up, and re-attachment\n\n\n return _extends({}, state, {\n el: el\n }, addState);\n });\n }; // set ref callback to attach touch event listeners\n\n\n var output = {\n ref: onRef\n }; // if track mouse attach mouse down listener\n\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n\n return [output, attachTouch];\n }\n\n function updateTransientState(state, props, attachTouch) {\n var addState = {}; // clean up touch handlers if no longer tracking touches\n\n if (!props.trackTouch && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = undefined;\n } else if (props.trackTouch && !state.cleanUpTouch) {\n // attach/re-attach touch handlers\n if (state.el) {\n addState.cleanUpTouch = attachTouch(state.el, !props.preventDefaultTouchmoveEvent);\n }\n }\n\n return _extends({}, state, addState);\n }\n\n function useSwipeable(options) {\n var trackMouse = options.trackMouse;\n var transientState = React.useRef(_extends({}, initialState));\n var transientProps = React.useRef(_extends({}, defaultProps));\n transientProps.current = _extends({}, defaultProps, options);\n\n var _React$useMemo = React.useMemo(function () {\n return getHandlers(function (stateSetter) {\n return transientState.current = stateSetter(transientState.current, transientProps.current);\n }, {\n trackMouse: trackMouse\n });\n }, [trackMouse]),\n handlers = _React$useMemo[0],\n attachTouch = _React$useMemo[1];\n\n transientState.current = updateTransientState(transientState.current, transientProps.current, attachTouch);\n return handlers;\n }\n\n exports.DOWN = DOWN;\n exports.LEFT = LEFT;\n exports.RIGHT = RIGHT;\n exports.UP = UP;\n exports.useSwipeable = useSwipeable;\n});","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.github.io/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","import { useReducer, useEffect, useState } from \"react\";\nimport { useSwipeable } from \"react-swipeable\";\n\n// defines the time for the animation between slides in milliseconds\nconst transitionTime = 400;\n// defines the threshold when to accept a swipe\nconst threshold = 0.3;\n// defines the limit for swiping (max. the next full and a bit)\nconst limit = 1.2;\n// animation to be used when bouncing back\nconst elastic = `transform ${transitionTime}ms cubic-bezier(0.68, -0.55, 0.265, 1.55)`;\n// animation to be used when automatically sliding\nconst smooth = `transform ${transitionTime}ms ease`;\n\nconst initialCarouselState = {\n offset: 0,\n desired: 0,\n active: 0,\n};\n\nfunction previous(length, current) {\n return (current - 1 + length) % length;\n}\n\nfunction next(length, current) {\n return (current + 1) % length;\n}\n\n// Reducer to handle different states as dispatched by drag and slide\n// transitions.\n\nfunction carouselReducer(state, action) {\n switch (action.type) {\n case \"jump\":\n return {\n ...state,\n desired: action.desired,\n };\n case \"next\":\n return {\n ...state,\n desired: next(action.length, state.active),\n };\n case \"prev\":\n return {\n ...state,\n desired: previous(action.length, state.active),\n };\n case \"done\":\n return {\n ...state,\n offset: NaN,\n active: state.desired,\n };\n case \"drag\":\n return {\n ...state,\n offset: action.offset,\n };\n default:\n return state;\n }\n}\n\n// Called in the react-swipeable hook useSwipeable below and handles\n// dispatching different states.\n\nfunction swiped(delta, dispatch, length, dir, container) {\n const t = container.clientWidth * threshold;\n const d = dir * delta;\n\n if (d >= t) {\n dispatch(dir < 0 ? { type: \"next\", length } : { type: \"prev\", length });\n } else {\n dispatch({\n type: \"drag\",\n offset: 0,\n });\n }\n}\n\nfunction swiping(delta, dispatch, container) {\n const sign = delta > 0 ? 1 : -1;\n const offset =\n sign * Math.min(Math.abs(delta), limit * container.clientWidth);\n\n dispatch({\n type: \"drag\",\n offset,\n });\n}\n\n// Hook utility which handles drag, dispatching, useEffect, and the style\n// object. Style object is responsible for css transitions, left, and width.\n\nexport function useCarousel(length, interval, options) {\n const { slidesPresented = 1 } = options;\n const n = Math.max(1, Math.min(slidesPresented, length));\n const totalWidth = 100 / n;\n\n const [state, dispatch] = useReducer(carouselReducer, initialCarouselState);\n const [container, setContainer] = useState(undefined);\n\n const { ref, onMouseDown } = useSwipeable({\n onSwiping(e) {\n swiping(e.deltaX, dispatch, container);\n },\n onSwipedLeft(e) {\n swiped(e.deltaX, dispatch, length, -1, container);\n },\n onSwipedRight(e) {\n swiped(e.deltaX, dispatch, length, 1, container);\n },\n trackMouse: true,\n trackTouch: true,\n });\n\n const handlers = {\n onMouseDown,\n ref(container) {\n setContainer(container && container.firstElementChild);\n return ref(container);\n },\n };\n\n useEffect(() => {\n if (interval) {\n const id = setTimeout(() => dispatch({ type: \"next\", length }), interval);\n return () => clearTimeout(id);\n }\n }, [state.offset, state.active]);\n\n useEffect(() => {\n const id = setTimeout(() => dispatch({ type: \"done\" }), transitionTime);\n return () => clearTimeout(id);\n }, [state.desired]);\n\n const style = {\n transform: \"translateX(0)\",\n width: `${totalWidth * length}%`,\n left: `-${state.active * totalWidth}%`,\n };\n\n // Handles calculations for transitioning from active slide to desired slide\n // by distance between the two (dist), offset, and the needed shift.\n // Function returns dispatch, the desired slide, drag handlers, and the style\n // object.\n\n if (state.desired !== state.active) {\n const dist = Math.abs(state.active - state.desired);\n const pref = Math.sign(state.offset || 0);\n const dir =\n (dist > length / 2 ? 1 : -1) * Math.sign(state.desired - state.active);\n const shift = ((totalWidth * (pref || dir)) / length) * slidesPresented;\n\n style.transition = smooth;\n style.transform = `translateX(${shift}%)`;\n } else if (!isNaN(state.offset)) {\n if (state.offset !== 0) {\n style.transform = `translateX(${state.offset}px)`;\n } else {\n style.transition = elastic;\n }\n }\n\n return [\n state.active,\n n => dispatch({ type: \"jump\", desired: n }),\n handlers,\n style,\n ];\n}\n","import * as React from \"react\";\nimport { useCarousel } from \"../utils/useCarousel\";\nimport styled from \"styled-components\";\nimport { Color, responsive, rem, media } from \"../utils/style\";\nimport { Icons } from \"../utils/svg\";\n\nconst Wrapper = styled.div`\n position: relative;\n overflow: hidden;\n`;\n\nconst CarouselContent = styled.div`\n display: flex;\n flex-wrap: nowrap;\n position: relative;\n`;\n\nconst CarouselItem = styled.div`\n width: 100%;\n margin: 0 auto;\n`;\n\nconst Ol = styled.ol.attrs({\n id: \"featured-articles_container_row-1_column_controls\",\n className: \"d-flex align-items-center justify-content-center\",\n})`\n z-index: 15;\n display: flex;\n justify-content: center;\n list-style: none;\n margin: 0 auto;\n padding-top: 32px;\n padding-left: 0;\n`;\n\nconst CarouselSlideMarker = styled.li.attrs(p => ({\n id: `featured-articles_container_row-1_column_controls_marker-${p.index}`,\n className: `CarouselNew__CarouselSlideMarker`,\n}))`\n display: block;\n width: 7px;\n height: 7px;\n border: 1px solid ${Color.ritualBlue};\n border-radius: 50%;\n margin-right: 16px;\n position: relative;\n flex: 0 1 auto;\n cursor: pointer;\n ${p =>\n p.active\n ? `\n background-color: ${Color.ritualBlue};\n border-color: ${Color.ritualBlue};\n `\n : `\n background-color: ${Color.white};\n border-color: ${Color.ritualSecondaryDisabledBlue};\n `} &:last-child {\n margin-right: 0;\n }\n`;\n\nconst CarouselControls = styled.div.attrs({\n id: \"experts_container_row_column_controls\",\n})`\n display: flex;\n align-items: center;\n justify-content: center;\n padding-top: ${rem(27)};\n padding-top: 27px;\n ${responsive.sm`\n padding-top: ${rem(43)}; \n `};\n`;\n\nconst CarouselButton = styled.button.attrs(p => ({\n id: `experts_container_row_column_controls_button-${p.index}`,\n}))`\n border: none;\n outline: none;\n margin: 0;\n padding: 0;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:first-child {\n margin-right: 80px;\n\n ${media.mobile`\n margin-right: 40px;\n `};\n }\n\n i {\n position: relative;\n display: block;\n cursor: pointer;\n width: 10px;\n height: 18px;\n\n ${media.mobile`\n width: 8px;\n height: 14px;\n `};\n svg {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n }\n\n &:focus {\n outline: none;\n }\n\n &:disabled {\n opacity: 0.56;\n }\n`;\n\n/* \n\n# Primary Carousel component, utilizing the `useCarousel` hook. \n\nThe only required prop is `children`. \n\nOptional props are `interval`, `showButtons`, `arrowButtons`, `disableCarousel`, and `slidesPresented`.\n`interval` can be specified by ms and will transition slides at that interval.\n`showButtons` will render circle buttons at the bottom of the carousel and can be clicked to transition slides.\n`arrowButtons` will render two left and right buttons as seen on the `productPage` in the `Experts` section.\n`disableCarousel` will remove the drag and carousel functionality and will instead show all slides in a grid.\n`slidesPresented` can be specified by int to display any number of slides desired instead of 1 child as is by default.\n\n# Usage\n\nImport `