{"version":3,"file":"static/js/765.c70115ea.chunk.js","mappings":"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","sources":["../node_modules/pure-react-carousel/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/pure-react-carousel/src/helpers/index.js","../node_modules/pure-react-carousel/node_modules/equals/index.js","../node_modules/pure-react-carousel/node_modules/deepmerge/dist/es.js","../node_modules/pure-react-carousel/src/Store/WithStore.jsx","../node_modules/pure-react-carousel/node_modules/prop-types/index.js","../node_modules/pure-react-carousel/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/pure-react-carousel/src/ButtonBack/ButtonBack.jsx","../node_modules/pure-react-carousel/node_modules/jkroso-type/index.js","../node_modules/pure-react-carousel/src/Store/Store.jsx","../node_modules/pure-react-carousel/src/CarouselProvider/context.js","../node_modules/pure-react-carousel/node_modules/deep-freeze/index.js","../node_modules/pure-react-carousel/src/CarouselProvider/CarouselProvider.jsx","../node_modules/pure-react-carousel/src/CarouselProvider/CarouselConsumer.jsx","../node_modules/pure-react-carousel/src/ButtonBack/index.js","../node_modules/pure-react-carousel/src/ButtonFirst/index.js","../node_modules/pure-react-carousel/src/ButtonNext/index.js","../node_modules/pure-react-carousel/src/ButtonLast/index.js","../node_modules/pure-react-carousel/src/ButtonPlay/index.js","../node_modules/pure-react-carousel/src/Dot/index.js","../node_modules/pure-react-carousel/src/ButtonFirst/ButtonFirst.jsx","../node_modules/pure-react-carousel/src/ButtonNext/ButtonNext.jsx","../node_modules/pure-react-carousel/src/ButtonLast/ButtonLast.jsx","../node_modules/pure-react-carousel/src/ButtonPlay/ButtonPlay.jsx","../node_modules/pure-react-carousel/src/Dot/Dot.jsx","../node_modules/pure-react-carousel/src/DotGroup/DotGroup.jsx","../node_modules/pure-react-carousel/src/DotGroup/index.js","../node_modules/pure-react-carousel/src/Image/Image.jsx","../node_modules/pure-react-carousel/src/Image/index.js","../node_modules/pure-react-carousel/src/Spinner/Spinner.jsx","../node_modules/pure-react-carousel/src/ImageWithZoom/index.js","../node_modules/pure-react-carousel/src/Slider/GetScrollParent.js","../node_modules/pure-react-carousel/src/ImageWithZoom/ImageWithZoom.jsx","../node_modules/pure-react-carousel/src/Slide/Slide.jsx","../node_modules/pure-react-carousel/src/Slide/index.js","../node_modules/pure-react-carousel/src/Slider/Slider.jsx","../node_modules/pure-react-carousel/src/Slider/index.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","import PropTypes from 'prop-types';\n\nexport function cn(a) {\n return a.map((b) => {\n if (b === false) return null;\n return b;\n }).join(' ').replace(/\\s+/g, ' ').trim();\n}\n\nexport function randomHexColor() {\n // eslint-disable-next-line no-bitwise\n return `#${(Math.random() * 0xFFFFFF << 0).toString(16)}`;\n}\n\nexport function slideUnit(visibleSlides = 1) {\n return 100 / visibleSlides;\n}\n\nexport function slideSize(totalSlides, visibleSlides) {\n return ((100 / totalSlides) * visibleSlides) / visibleSlides;\n}\n\nexport function slideTraySize(totalSlides, visibleSlides) {\n return (100 * totalSlides) / visibleSlides;\n}\n\nexport function pct(num) {\n return `${num}%`;\n}\n\nexport const LOADING = 'loading';\nexport const SUCCESS = 'success';\nexport const ERROR = 'error';\n\nexport const CarouselPropTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n direction: PropTypes.oneOf(['forward', 'backward']),\n height: (props, propName) => {\n const prop = props[propName];\n if (props.orientation === 'vertical' && (prop === null || typeof prop !== 'number')) {\n return new Error(`Missing required property '${propName}' when orientation is vertical. You must supply a number representing the height in pixels`);\n }\n return null;\n },\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n isBgImage: (props, propName) => {\n const value = props[propName];\n if (value === true && props.tag === 'img') {\n return new Error(`HTML img elements should not have a backgroundImage. Please use ${propName} for other block-level HTML tags, like div, a, section, etc...`);\n }\n return null;\n },\n};\n\n/**\n * Cap a value at a minimum value and a maximum value.\n * @param {number} min The smallest allowed value.\n * @param {number} max The largest allowed value.\n * @param {number} x A value.\n * @return {number} Either the original value, the minimum value, or the maximum value.\n */\nexport const boundedRange = ({ min, max, x }) => Math.min(\n max,\n Math.max(min, x),\n);\n","var type = require('jkroso-type')\n\n// (any, any, [array]) -> boolean\nfunction equal(a, b, memos){\n // All identical values are equivalent\n if (a === b) return true\n var fnA = types[type(a)]\n var fnB = types[type(b)]\n return fnA && fnA === fnB\n ? fnA(a, b, memos)\n : false\n}\n\nvar types = {}\n\n// (Number) -> boolean\ntypes.number = function(a, b){\n return a !== a && b !== b/*Nan check*/\n}\n\n// (function, function, array) -> boolean\ntypes['function'] = function(a, b, memos){\n return a.toString() === b.toString()\n // Functions can act as objects\n && types.object(a, b, memos)\n && equal(a.prototype, b.prototype)\n}\n\n// (date, date) -> boolean\ntypes.date = function(a, b){\n return +a === +b\n}\n\n// (regexp, regexp) -> boolean\ntypes.regexp = function(a, b){\n return a.toString() === b.toString()\n}\n\n// (DOMElement, DOMElement) -> boolean\ntypes.element = function(a, b){\n return a.outerHTML === b.outerHTML\n}\n\n// (textnode, textnode) -> boolean\ntypes.textnode = function(a, b){\n return a.textContent === b.textContent\n}\n\n// decorate `fn` to prevent it re-checking objects\n// (function) -> function\nfunction memoGaurd(fn){\n return function(a, b, memos){\n if (!memos) return fn(a, b, [])\n var i = memos.length, memo\n while (memo = memos[--i]) {\n if (memo[0] === a && memo[1] === b) return true\n }\n return fn(a, b, memos)\n }\n}\n\ntypes['arguments'] =\ntypes['bit-array'] =\ntypes.array = memoGaurd(arrayEqual)\n\n// (array, array, array) -> boolean\nfunction arrayEqual(a, b, memos){\n var i = a.length\n if (i !== b.length) return false\n memos.push([a, b])\n while (i--) {\n if (!equal(a[i], b[i], memos)) return false\n }\n return true\n}\n\ntypes.object = memoGaurd(objectEqual)\n\n// (object, object, array) -> boolean\nfunction objectEqual(a, b, memos) {\n if (typeof a.equal == 'function') {\n memos.push([a, b])\n return a.equal(b, memos)\n }\n var ka = getEnumerableProperties(a)\n var kb = getEnumerableProperties(b)\n var i = ka.length\n\n // same number of properties\n if (i !== kb.length) return false\n\n // although not necessarily the same order\n ka.sort()\n kb.sort()\n\n // cheap key test\n while (i--) if (ka[i] !== kb[i]) return false\n\n // remember\n memos.push([a, b])\n\n // iterate again this time doing a thorough check\n i = ka.length\n while (i--) {\n var key = ka[i]\n if (!equal(a[key], b[key], memos)) return false\n }\n\n return true\n}\n\n// (object) -> array\nfunction getEnumerableProperties (object) {\n var result = []\n for (var k in object) if (k !== 'constructor') {\n result.push(k)\n }\n return result\n}\n\nmodule.exports = equal\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","import React from 'react';\nimport equal from 'equals';\nimport deepMerge from 'deepmerge';\nimport { CarouselPropTypes } from '../helpers';\nimport { CarouselContext } from '../CarouselProvider';\n\nexport default function WithStore(\n WrappedComponent,\n /* istanbul ignore next */ mapStateToProps = () => ({}),\n) {\n class Wrapper extends React.Component {\n static contextType = CarouselContext\n\n static propTypes = {\n children: CarouselPropTypes.children,\n };\n\n static defaultProps = {\n children: null,\n };\n\n constructor(props, context) {\n super(props, context);\n this.state = mapStateToProps({ ...context.state });\n this.updateStateProps = this.updateStateProps.bind(this);\n }\n\n componentDidMount() {\n this.context.subscribe(this.updateStateProps);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const test = !equal(nextState, this.state) || !equal(nextProps, this.props);\n return test;\n }\n\n componentWillUnmount() {\n this.context.unsubscribe(this.updateStateProps);\n }\n\n updateStateProps() {\n this.setState(mapStateToProps({ ...this.context.state }));\n }\n\n render() {\n const props = deepMerge(this.state, this.props);\n\n return (\n {\n this.instance = el;\n }} // allows access to refs in wrapped components.\n {...props}\n carouselStore={{\n getStoreState: this.context.getStoreState,\n masterSpinnerError: this.context.masterSpinnerError,\n masterSpinnerSuccess: this.context.masterSpinnerSuccess,\n setStoreState: this.context.setStoreState,\n subscribeMasterSpinner: this.context.subscribeMasterSpinner,\n unsubscribeAllMasterSpinner: this.context.unsubscribeAllMasterSpinner,\n unsubscribeMasterSpinner: this.context.unsubscribeMasterSpinner,\n }}\n >\n {this.props.children}\n \n );\n }\n }\n\n return Wrapper;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CarouselPropTypes, cn } from '../helpers';\nimport s from './ButtonBack.scss';\n\nexport default class ButtonBack extends React.Component {\n static propTypes = {\n carouselStore: PropTypes.object.isRequired,\n children: CarouselPropTypes.children.isRequired,\n className: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n step: PropTypes.number.isRequired,\n totalSlides: PropTypes.number.isRequired,\n visibleSlides: PropTypes.number.isRequired,\n infinite: PropTypes.bool,\n };\n\n static defaultProps = {\n className: null,\n disabled: null,\n onClick: null,\n infinite: false,\n };\n\n static setDisabled(disabled, currentSlide, infinite) {\n if (disabled !== null) return disabled;\n if (currentSlide === 0 && !infinite) return true;\n return false;\n }\n\n constructor(props) {\n super(props);\n this.handleOnClick = this.handleOnClick.bind(this);\n }\n\n handleOnClick(ev) {\n const {\n carouselStore, currentSlide, onClick, step, infinite, visibleSlides, totalSlides,\n } = this.props;\n\n const maxSlide = totalSlides - visibleSlides;\n\n let newCurrentSlide = Math.max(\n currentSlide - step,\n 0,\n );\n\n if (infinite) {\n const isOnFirstSlide = currentSlide === 0;\n newCurrentSlide = isOnFirstSlide ? maxSlide : newCurrentSlide;\n }\n\n carouselStore.setStoreState(\n {\n currentSlide: newCurrentSlide,\n isPlaying: false,\n },\n onClick !== null && onClick.call(this, ev),\n );\n }\n\n render() {\n const {\n carouselStore,\n className,\n currentSlide,\n disabled,\n onClick,\n step,\n totalSlides,\n visibleSlides,\n infinite,\n ...props\n } = this.props;\n\n const newClassName = cn([s.buttonBack, 'carousel__back-button', className]);\n const isDisabled = ButtonBack.setDisabled(\n this.props.disabled,\n this.props.currentSlide,\n infinite,\n );\n\n return (\n \n {this.props.children}\n \n );\n }\n}\n","var toString = {}.toString\nvar DomNode = typeof window != 'undefined'\n ? window.Node\n : Function // could be any function\n\n/**\n * Return the type of `val`.\n *\n * @param {Mixed} val\n * @return {String}\n * @api public\n */\n\nmodule.exports = exports = function type(x){\n var type = typeof x\n if (type != 'object') return type\n type = types[toString.call(x)]\n if (type == 'object') {\n // in case they have been polyfilled\n if (x instanceof Map) return 'map'\n if (x instanceof Set) return 'set'\n return 'object'\n }\n if (type) return type\n if (x instanceof DomNode) switch (x.nodeType) {\n case 1: return 'element'\n case 3: return 'text-node'\n case 9: return 'document'\n case 11: return 'document-fragment'\n default: return 'dom-node'\n }\n}\n\nvar types = exports.types = {\n '[object Function]': 'function',\n '[object Date]': 'date',\n '[object RegExp]': 'regexp',\n '[object Arguments]': 'arguments',\n '[object Array]': 'array',\n '[object Set]': 'set',\n '[object String]': 'string',\n '[object Null]': 'null',\n '[object Undefined]': 'undefined',\n '[object Number]': 'number',\n '[object Boolean]': 'boolean',\n '[object Object]': 'object',\n '[object Map]': 'map',\n '[object Text]': 'text-node',\n '[object Uint8Array]': 'bit-array',\n '[object Uint16Array]': 'bit-array',\n '[object Uint32Array]': 'bit-array',\n '[object Uint8ClampedArray]': 'bit-array',\n '[object Error]': 'error',\n '[object FormData]': 'form-data',\n '[object File]': 'file',\n '[object Blob]': 'blob'\n}\n","import deepMerge from 'deepmerge';\nimport deepFreeze from 'deep-freeze';\n\nconst DEFAULT_STATE = {\n masterSpinnerFinished: false,\n};\n\nconst Store = class Store {\n constructor(initialState) {\n this.state = deepFreeze(deepMerge(DEFAULT_STATE, initialState));\n this.subscriptions = [];\n this.masterSpinnerSubscriptions = {};\n this.setStoreState = this.setStoreState.bind(this);\n this.getStoreState = this.getStoreState.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.unsubscribe = this.unsubscribe.bind(this);\n this.updateSubscribers = this.updateSubscribers.bind(this);\n this.subscribeMasterSpinner = this.subscribeMasterSpinner.bind(this);\n this.unsubscribeMasterSpinner = this.unsubscribeMasterSpinner.bind(this);\n this.unsubscribeAllMasterSpinner = this.unsubscribeAllMasterSpinner.bind(this);\n this.masterSpinnerSuccess = this.masterSpinnerSuccess.bind(this);\n this.masterSpinnerError = this.masterSpinnerError.bind(this);\n }\n\n setStoreState(newState, cb) {\n this.state = deepFreeze(deepMerge(this.state, newState));\n this.updateSubscribers(cb);\n }\n\n getStoreState() {\n return deepMerge({}, this.state);\n }\n\n subscribe(func) {\n this.subscriptions.push(func);\n }\n\n unsubscribe(func) {\n const index = this.subscriptions.indexOf(func);\n if (index !== -1) this.subscriptions.splice(index, 1);\n }\n\n updateSubscribers(cb) {\n this.subscriptions.forEach(func => func());\n if (typeof cb === 'function') cb(this.getStoreState());\n }\n\n subscribeMasterSpinner(src) {\n const index = Object.keys(this.masterSpinnerSubscriptions).indexOf(src);\n if (index === -1) {\n this.masterSpinnerSubscriptions[src] = {\n success: false,\n error: false,\n complete: false,\n };\n }\n }\n\n unsubscribeMasterSpinner(src) {\n const index = Object.keys(this.masterSpinnerSubscriptions).indexOf(src);\n if (index === -1) {\n return false;\n }\n this.setMasterSpinnerFinished();\n return delete this.masterSpinnerSubscriptions[src];\n }\n\n unsubscribeAllMasterSpinner() {\n this.masterSpinnerSubscriptions = {};\n this.setMasterSpinnerFinished();\n }\n\n masterSpinnerSuccess(src) {\n this.masterSpinnerSubscriptions[src].success = true;\n this.masterSpinnerSubscriptions[src].complete = true;\n this.setMasterSpinnerFinished();\n }\n\n masterSpinnerError(src) {\n this.masterSpinnerSubscriptions[src].error = true;\n this.masterSpinnerSubscriptions[src].complete = true;\n this.setMasterSpinnerFinished();\n }\n\n setMasterSpinnerFinished() {\n this.setStoreState({\n masterSpinnerFinished: this.isMasterSpinnerFinished(),\n });\n }\n\n isMasterSpinnerFinished() {\n return Object.keys(this.masterSpinnerSubscriptions).filter(\n src => this.masterSpinnerSubscriptions[src].complete !== true,\n ).length === 0;\n }\n};\n\nexport default Store;\n","import React from 'react';\n\nconst Context = React.createContext();\nexport default Context;\n","module.exports = function deepFreeze (o) {\n Object.freeze(o);\n\n Object.getOwnPropertyNames(o).forEach(function (prop) {\n if (o.hasOwnProperty(prop)\n && o[prop] !== null\n && (typeof o[prop] === \"object\" || typeof o[prop] === \"function\")\n && !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n });\n \n return o;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Context from './context';\nimport Store from '../Store/Store';\nimport {\n CarouselPropTypes, slideSize, slideTraySize, cn,\n} from '../helpers';\n\nconst CarouselProvider = class CarouselProvider extends React.Component {\n static propTypes = {\n children: CarouselPropTypes.children.isRequired,\n className: PropTypes.string,\n currentSlide: PropTypes.number,\n disableAnimation: PropTypes.bool,\n disableKeyboard: PropTypes.bool,\n hasMasterSpinner: PropTypes.bool,\n interval: PropTypes.number,\n isPageScrollLocked: PropTypes.bool,\n isPlaying: PropTypes.bool,\n lockOnWindowScroll: PropTypes.bool,\n naturalSlideHeight: PropTypes.number.isRequired,\n naturalSlideWidth: PropTypes.number.isRequired,\n orientation: CarouselPropTypes.orientation,\n playDirection: CarouselPropTypes.direction,\n step: PropTypes.number,\n dragStep: PropTypes.number,\n tag: PropTypes.string,\n totalSlides: PropTypes.number.isRequired,\n touchEnabled: PropTypes.bool,\n dragEnabled: PropTypes.bool,\n visibleSlides: PropTypes.number,\n infinite: PropTypes.bool,\n isIntrinsicHeight: PropTypes.bool,\n };\n\n static defaultProps = {\n className: null,\n currentSlide: 0,\n disableAnimation: false,\n disableKeyboard: false,\n hasMasterSpinner: false,\n interval: 5000,\n isPageScrollLocked: false,\n isPlaying: false,\n lockOnWindowScroll: false,\n orientation: 'horizontal',\n playDirection: 'forward',\n step: 1,\n dragStep: 1,\n tag: 'div',\n touchEnabled: true,\n dragEnabled: true,\n visibleSlides: 1,\n infinite: false,\n isIntrinsicHeight: false,\n };\n\n constructor(props) {\n super(props);\n if (props.isIntrinsicHeight && props.orientation !== 'horizontal') {\n throw Error('isIntrinsicHeight can only be used in \"horizontal\" orientation. See Readme for more information.');\n }\n const options = {\n currentSlide: props.currentSlide,\n disableAnimation: props.disableAnimation,\n disableKeyboard: props.disableKeyboard,\n hasMasterSpinner: props.hasMasterSpinner,\n imageErrorCount: 0,\n imageSuccessCount: 0,\n interval: props.interval,\n isPageScrollLocked: props.isPageScrollLocked,\n isPlaying: props.isPlaying,\n lockOnWindowScroll: props.lockOnWindowScroll,\n masterSpinnerThreshold: 0,\n naturalSlideHeight: props.naturalSlideHeight,\n naturalSlideWidth: props.naturalSlideWidth,\n orientation: props.orientation,\n playDirection: props.playDirection,\n privateUnDisableAnimation: false,\n slideSize: slideSize(props.totalSlides, props.visibleSlides),\n slideTraySize: slideTraySize(props.totalSlides, props.visibleSlides),\n step: props.step,\n dragStep: props.dragStep,\n totalSlides: props.totalSlides,\n touchEnabled: props.touchEnabled,\n dragEnabled: props.dragEnabled,\n visibleSlides: props.visibleSlides,\n infinite: props.infinite,\n isIntrinsicHeight: props.isIntrinsicHeight,\n };\n this.carouselStore = new Store(options);\n }\n\n componentDidUpdate(prevProps) {\n const newStoreState = {};\n\n [\n 'currentSlide', // poorly named. This is only slide that shows on MOUNT. deprecating soon.\n 'disableAnimation',\n 'disableKeyboard',\n 'hasMasterSpinner',\n 'interval',\n 'isPlaying',\n 'naturalSlideHeight',\n 'naturalSlideWidth',\n 'lockOnWindowScroll',\n 'orientation',\n 'playDirection',\n 'step',\n 'dragStep',\n 'totalSlides',\n 'touchEnabled',\n 'dragEnabled',\n 'visibleSlides',\n ].forEach((propName) => {\n if (prevProps[propName] !== this.props[propName]) {\n newStoreState[propName] = this.props[propName];\n }\n });\n\n const isNewCurrentSlide = this.props.currentSlide !== prevProps.currentSlide;\n\n // currentSlide, a poorly named variable that determines which slide show when carousel is\n // mounted, has changed value. We want to temporarily disable the css transition and just\n // \"jump\" to the new \"currentSlide\"\n\n // Disable the css animation, set a private flag to re-enable the animation.\n if (isNewCurrentSlide && !this.props.disableAnimation) {\n newStoreState.disableAnimation = true;\n newStoreState.privateUnDisableAnimation = true;\n // Slider.jsx componentDidUpdate detects privateUnDisableAnimation to re-enable animation.\n }\n\n if (\n this.props.totalSlides !== prevProps.totalSlides\n || this.props.visibleSlides !== prevProps.visibleSlides\n ) {\n newStoreState.slideSize = slideSize(this.props.totalSlides, this.props.visibleSlides);\n newStoreState.slideTraySize = slideTraySize(this.props.totalSlides, this.props.visibleSlides);\n }\n\n if (this.carouselStore.state.currentSlide >= this.props.totalSlides) {\n newStoreState.currentSlide = Math.max(this.props.totalSlides - 1, 0);\n }\n\n if (Object.keys(newStoreState).length > 0) {\n this.carouselStore.setStoreState(newStoreState);\n }\n }\n\n componentWillUnmount() {\n this.carouselStore.unsubscribeAllMasterSpinner();\n }\n\n // Utility function for tests.\n // in jest + enzyme tests you can do wrapper.instance().getStore()\n // you can also just do...\n // wrapper.instance().carouselStore\n // I created this method to make it obvious that you have access to carouselStore.\n getStore() {\n return this.carouselStore;\n }\n\n render() {\n const {\n children,\n className,\n currentSlide,\n disableAnimation,\n disableKeyboard,\n hasMasterSpinner,\n interval,\n isPageScrollLocked,\n isPlaying,\n lockOnWindowScroll,\n naturalSlideHeight,\n naturalSlideWidth,\n orientation,\n playDirection,\n step,\n dragStep,\n tag: Tag,\n totalSlides,\n touchEnabled,\n dragEnabled,\n visibleSlides,\n infinite,\n isIntrinsicHeight,\n ...filteredProps\n } = this.props;\n\n const newClassName = cn(['carousel', this.props.className]);\n\n return (\n \n \n {this.props.children}\n \n \n );\n }\n};\n\nexport default CarouselProvider;\n","import Context from './context';\n\nexport default Context.Consumer;\n","import ButtonBack from './ButtonBack';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(ButtonBack, state => ({\n currentSlide: state.currentSlide,\n step: state.step,\n totalSlides: state.totalSlides,\n visibleSlides: state.visibleSlides,\n infinite: state.infinite,\n}));\n","import ButtonFirst from './ButtonFirst';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(ButtonFirst, state => ({\n currentSlide: state.currentSlide,\n totalSlides: state.totalSlides,\n}));\n","import ButtonNext from './ButtonNext';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(ButtonNext, state => ({\n currentSlide: state.currentSlide,\n step: state.step,\n totalSlides: state.totalSlides,\n visibleSlides: state.visibleSlides,\n infinite: state.infinite,\n}));\n","import ButtonLast from './ButtonLast';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(ButtonLast, state => ({\n currentSlide: state.currentSlide,\n totalSlides: state.totalSlides,\n visibleSlides: state.visibleSlides,\n}));\n","import ButtonPlay from './ButtonPlay';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(ButtonPlay, state => ({\n isPlaying: state.isPlaying,\n}));\n","import Dot from './Dot';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(Dot, state => ({\n currentSlide: state.currentSlide,\n totalSlides: state.totalSlides,\n visibleSlides: state.visibleSlides,\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport s from './ButtonFirst.scss';\nimport { CarouselPropTypes, cn } from '../helpers';\n\nconst ButtonFirst = class ButtonFirst extends React.Component {\n static propTypes = {\n carouselStore: PropTypes.object.isRequired,\n children: CarouselPropTypes.children.isRequired,\n className: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n totalSlides: PropTypes.number.isRequired,\n }\n\n static defaultProps = {\n className: null,\n disabled: null,\n onClick: null,\n }\n\n constructor() {\n super();\n this.handleOnClick = this.handleOnClick.bind(this);\n }\n\n handleOnClick(ev) {\n const { carouselStore, onClick } = this.props;\n carouselStore.setStoreState({\n currentSlide: 0,\n isPlaying: false,\n }, onClick !== null && onClick.call(this, ev));\n }\n\n render() {\n const {\n carouselStore,\n className,\n currentSlide,\n disabled,\n onClick,\n totalSlides,\n ...props\n } = this.props;\n\n const newClassName = cn([\n s.buttonFirst,\n 'carousel__first-button',\n className,\n ]);\n\n const newDisabled = disabled !== null ? disabled : currentSlide === 0;\n\n return (\n \n {this.props.children}\n \n );\n }\n};\n\nexport default ButtonFirst;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CarouselPropTypes, cn } from '../helpers';\nimport s from './ButtonNext.scss';\n\nconst ButtonNext = class ButtonNext extends React.PureComponent {\n static propTypes = {\n carouselStore: PropTypes.object.isRequired,\n children: CarouselPropTypes.children.isRequired,\n className: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n step: PropTypes.number.isRequired,\n totalSlides: PropTypes.number.isRequired,\n visibleSlides: PropTypes.number.isRequired,\n infinite: PropTypes.bool,\n };\n\n static defaultProps = {\n className: null,\n disabled: null,\n onClick: null,\n infinite: false,\n };\n\n static setDisabled(disabled, currentSlide, visibleSlides, totalSlides, infinite) {\n if (disabled !== null) return disabled;\n if (currentSlide >= totalSlides - visibleSlides && !infinite) return true;\n return false;\n }\n\n constructor(props) {\n super(props);\n this.handleOnClick = this.handleOnClick.bind(this);\n }\n\n handleOnClick(ev) {\n const {\n currentSlide, onClick, step, carouselStore, infinite, totalSlides, visibleSlides,\n } = this.props;\n\n const maxSlide = totalSlides - visibleSlides;\n const nextSlide = step + currentSlide;\n\n let newCurrentSlide = Math.min(\n nextSlide,\n maxSlide,\n );\n\n if (infinite) {\n const isOnLastSlide = maxSlide === currentSlide;\n newCurrentSlide = isOnLastSlide ? 0 : newCurrentSlide;\n }\n\n carouselStore.setStoreState(\n {\n currentSlide: newCurrentSlide,\n isPlaying: false,\n },\n onClick !== null && onClick.call(this, ev),\n );\n }\n\n render() {\n const {\n carouselStore,\n className,\n currentSlide,\n disabled,\n onClick,\n step,\n totalSlides,\n visibleSlides,\n infinite,\n ...props\n } = this.props;\n\n const newClassName = cn([s.buttonNext, 'carousel__next-button', className]);\n const isDisabled = ButtonNext.setDisabled(\n disabled,\n currentSlide,\n visibleSlides,\n totalSlides,\n infinite,\n );\n\n return (\n \n {this.props.children}\n \n );\n }\n};\n\nexport default ButtonNext;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport s from './ButtonLast.scss';\nimport { CarouselPropTypes, cn } from '../helpers';\n\nconst ButtonLast = class ButtonLast extends React.Component {\n static propTypes = {\n carouselStore: PropTypes.object.isRequired,\n children: CarouselPropTypes.children.isRequired,\n className: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n totalSlides: PropTypes.number.isRequired,\n visibleSlides: PropTypes.number.isRequired,\n };\n\n static defaultProps = {\n className: null,\n disabled: null,\n onClick: null,\n };\n\n constructor() {\n super();\n this.handleOnClick = this.handleOnClick.bind(this);\n }\n\n handleOnClick(ev) {\n const {\n carouselStore, onClick, totalSlides, visibleSlides,\n } = this.props;\n carouselStore.setStoreState(\n {\n currentSlide: totalSlides - visibleSlides,\n isPlaying: false,\n },\n onClick !== null && onClick.call(this, ev),\n );\n }\n\n render() {\n const {\n carouselStore,\n className,\n currentSlide,\n disabled,\n onClick,\n totalSlides,\n visibleSlides,\n ...props\n } = this.props;\n\n const newClassName = cn([s.buttonLast, 'carousel__last-button', className]);\n\n const isDisabled = disabled !== null ? disabled : currentSlide >= totalSlides - visibleSlides;\n\n return (\n \n {this.props.children}\n \n );\n }\n};\n\nexport default ButtonLast;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { cn } from '../helpers';\nimport s from './ButtonPlay.scss';\n\nconst ButtonPlay = class ButtonPlay extends React.PureComponent {\n static propTypes = {\n carouselStore: PropTypes.object.isRequired,\n children: PropTypes.node,\n childrenPaused: PropTypes.node,\n childrenPlaying: PropTypes.node,\n className: PropTypes.string,\n isPlaying: PropTypes.bool.isRequired,\n onClick: PropTypes.func,\n };\n\n static defaultProps = {\n children: null,\n childrenPaused: null,\n childrenPlaying: null,\n className: null,\n onClick: null,\n }\n\n constructor(props) {\n super(props);\n this.handleOnClick = this.handleOnClick.bind(this);\n }\n\n handleOnClick(ev) {\n const { onClick } = this.props;\n this.props.carouselStore.setStoreState({\n isPlaying: !this.props.isPlaying,\n }, onClick !== null && onClick.call(this, ev));\n }\n\n render() {\n const {\n carouselStore,\n children,\n childrenPaused,\n childrenPlaying,\n className,\n isPlaying,\n onClick,\n ...props\n } = this.props;\n\n const newClassName = cn([\n s.buttonNext,\n 'carousel__play-button',\n className,\n ]);\n\n return (\n \n {isPlaying && childrenPlaying}\n {!isPlaying && childrenPaused}\n {this.props.children}\n \n );\n }\n};\n\nexport default ButtonPlay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CarouselPropTypes, cn } from '../helpers';\nimport s from './Dot.scss';\n\nconst Dot = class Dot extends React.Component {\n static propTypes = {\n carouselStore: PropTypes.object.isRequired,\n children: CarouselPropTypes.children,\n className: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n selected: PropTypes.bool,\n slide: PropTypes.number.isRequired,\n totalSlides: PropTypes.number.isRequired,\n visibleSlides: PropTypes.number.isRequired,\n }\n\n static defaultProps = {\n children: null,\n className: null,\n disabled: null,\n onClick: null,\n selected: null,\n }\n\n constructor(props) {\n super(props);\n this.handleOnClick = this.handleOnClick.bind(this);\n }\n\n handleOnClick(ev) {\n const {\n carouselStore, onClick, slide, totalSlides, visibleSlides,\n } = this.props;\n const newSlide = slide >= totalSlides - visibleSlides ? totalSlides - visibleSlides : slide;\n\n carouselStore.setStoreState({\n currentSlide: newSlide,\n isPlaying: false,\n }, onClick !== null && onClick.call(this, ev));\n }\n\n render() {\n const {\n carouselStore, children, className, currentSlide, disabled, onClick, selected, slide,\n totalSlides, visibleSlides, ...props\n } = this.props;\n const defaultSelected = slide >= currentSlide && slide < (currentSlide + visibleSlides);\n const newSelected = typeof selected === 'boolean' ? selected : defaultSelected;\n const defaultDisabled = defaultSelected === true;\n const newDisabled = typeof disabled === 'boolean' ? disabled : defaultDisabled;\n\n const newClassName = cn([\n s.dot,\n newSelected && s.dotSelected,\n 'carousel__dot',\n `carousel__dot--${slide}`,\n newSelected && 'carousel__dot--selected',\n className,\n ]);\n\n return (\n \n {this.props.children}\n \n );\n }\n};\n\nexport default Dot;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Dot from '../Dot';\nimport { CarouselPropTypes, cn } from '../helpers';\nimport s from './DotGroup.scss';\n\nconst DotGroup = class DotGroup extends React.Component {\n static propTypes = {\n children: CarouselPropTypes.children,\n className: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n carouselStore: PropTypes.object.isRequired,\n totalSlides: PropTypes.number.isRequired,\n visibleSlides: PropTypes.number.isRequired,\n dotNumbers: PropTypes.bool,\n disableActiveDots: PropTypes.bool,\n showAsSelectedForCurrentSlideOnly: PropTypes.bool,\n renderDots: PropTypes.func,\n }\n\n static defaultProps = {\n children: null,\n className: null,\n dotNumbers: false,\n disableActiveDots: true,\n showAsSelectedForCurrentSlideOnly: false,\n renderDots: null,\n }\n\n renderDots() {\n const {\n currentSlide,\n totalSlides,\n visibleSlides,\n disableActiveDots,\n showAsSelectedForCurrentSlideOnly,\n renderDots,\n } = this.props;\n\n if (renderDots) {\n const { renderDots: _, ...renderProps } = this.props;\n return renderDots(renderProps);\n }\n\n const dots = [];\n for (let i = 0; i < totalSlides; i += 1) {\n const multipleSelected = i >= currentSlide && i < (currentSlide + visibleSlides);\n const singleSelected = i === currentSlide;\n const selected = showAsSelectedForCurrentSlideOnly ? singleSelected : multipleSelected;\n const slide = i >= totalSlides - visibleSlides ? totalSlides - visibleSlides : i;\n dots.push(\n \n {this.props.dotNumbers && i + 1}\n ,\n );\n }\n return dots;\n }\n\n render() {\n const {\n carouselStore,\n children,\n className,\n currentSlide,\n dotNumbers,\n totalSlides,\n visibleSlides,\n disableActiveDots,\n showAsSelectedForCurrentSlideOnly,\n renderDots,\n ...props\n } = this.props;\n\n const newClassName = cn([\n s.DotGroup,\n 'carousel__dot-group',\n className,\n ]);\n\n return (\n
\n {this.renderDots()}\n {children}\n
\n );\n }\n};\n\nexport default DotGroup;\n","import DotGroup from './DotGroup';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(DotGroup, state => ({\n currentSlide: state.currentSlide,\n totalSlides: state.totalSlides,\n visibleSlides: state.visibleSlides,\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n CarouselPropTypes, cn, LOADING, SUCCESS, ERROR,\n} from '../helpers';\nimport s from './Image.scss';\n\nclass Image extends React.Component {\n static propTypes = {\n alt: PropTypes.string,\n carouselStore: PropTypes.object.isRequired,\n children: CarouselPropTypes.children,\n className: PropTypes.string,\n hasMasterSpinner: PropTypes.bool.isRequired,\n isBgImage: CarouselPropTypes.isBgImage,\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n renderError: PropTypes.func,\n renderLoading: PropTypes.func,\n src: PropTypes.string.isRequired,\n style: PropTypes.object,\n tag: PropTypes.string,\n };\n\n static defaultProps = {\n alt: '',\n children: null,\n className: null,\n isBgImage: false,\n onError: null,\n onLoad: null,\n renderError: null,\n renderLoading: null,\n style: null,\n tag: 'img',\n };\n\n static subscribeMasterSpinner(props) {\n if (props.hasMasterSpinner) {\n props.carouselStore.subscribeMasterSpinner(props.src);\n }\n }\n\n static unsubscribeMasterSpinner(props) {\n if (props.hasMasterSpinner) {\n props.carouselStore.unsubscribeMasterSpinner(props.src);\n }\n }\n\n constructor(props) {\n super(props);\n this.state = { imageStatus: LOADING };\n this.handleImageLoad = this.handleImageLoad.bind(this);\n this.handleImageError = this.handleImageError.bind(this);\n this.image = null;\n }\n\n componentDidMount() {\n Image.subscribeMasterSpinner(this.props);\n this.initImage();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.src !== this.props.src) {\n Image.unsubscribeMasterSpinner(prevProps);\n Image.subscribeMasterSpinner(this.props);\n this.initImage();\n }\n }\n\n componentWillUnmount() {\n Image.unsubscribeMasterSpinner(this.props);\n this.image.removeEventListener('load', this.handleImageLoad);\n this.image.removeEventListener('error', this.handleImageError);\n this.image = null;\n }\n\n initImage() {\n this.setState({ imageStatus: LOADING });\n this.image = document.createElement('img');\n\n // set event listeners first\n this.image.addEventListener('load', this.handleImageLoad, false);\n this.image.addEventListener('error', this.handleImageError, false);\n\n // setting img.src initiates the image load.\n this.image.src = this.props.src;\n\n // Was the image cached? force the image through the load process again.\n // NOTE: figure out a way to test this. It might involve breaking initImage\n // up into some other methods.\n /* istanbul ignore if */\n if (this.image.readyState || this.image.complete) {\n const { src } = this.image;\n this.image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';\n this.image.src = src;\n }\n }\n\n handleImageLoad(ev) {\n this.setState({ imageStatus: SUCCESS });\n if (this.props.hasMasterSpinner) this.props.carouselStore.masterSpinnerSuccess(this.props.src);\n if (this.props.onLoad) this.props.onLoad(ev);\n }\n\n handleImageError(ev) {\n this.setState({ imageStatus: ERROR });\n if (this.props.hasMasterSpinner) this.props.carouselStore.masterSpinnerError(this.props.src);\n if (this.props.onError) this.props.onError(ev);\n }\n\n tempTag() {\n return this.props.tag === 'img' ? 'div' : this.props.tag;\n }\n\n customRender(propName) {\n if (typeof this.props[propName] === 'function') return this.props[propName]();\n return this.props.children;\n }\n\n renderLoading(filteredProps) {\n const Tag = this.tempTag();\n\n const newClassName = cn([\n s.image,\n s.imageLoading,\n 'carousel__image',\n this.props.isBgImage && 'carousel__image--with-background',\n 'carousel__image--loading',\n this.props.className,\n ]);\n\n return (\n \n {this.customRender('renderLoading')}\n \n );\n }\n\n renderError(filteredProps) {\n const Tag = this.tempTag();\n\n const newClassName = cn([\n s.image,\n s.imageError,\n 'carousel__image',\n this.props.isBgImage && 'carousel__image--with-background',\n 'carousel__image--error',\n this.props.className,\n ]);\n\n return (\n \n {this.customRender('renderError')}\n \n );\n }\n\n renderSuccess(filteredProps) {\n const { style, tag: Tag } = this.props;\n const newClassName = cn([\n s.image,\n 'carousel__image',\n this.props.isBgImage && 'carousel__image--with-background',\n 'carousel__image--success',\n this.props.className,\n ]);\n\n let newStyle = Object.assign({}, style);\n\n let newFilteredProps = filteredProps;\n\n if (Tag !== 'img') {\n const { src, alt, ...tempFilteredProps } = filteredProps;\n newFilteredProps = tempFilteredProps;\n newStyle = Object.assign({}, style, {\n backgroundImage: `url(\"${src}\")`,\n backgroundSize: 'cover',\n });\n }\n\n return (\n \n {this.props.children}\n \n );\n }\n\n render() {\n const {\n carouselStore,\n children,\n className,\n hasMasterSpinner,\n isBgImage,\n onError,\n onLoad,\n renderError,\n renderLoading,\n style,\n tag,\n ...filteredProps\n } = this.props;\n\n switch (this.state.imageStatus) {\n case LOADING:\n return this.renderLoading(filteredProps);\n case SUCCESS:\n return this.renderSuccess(filteredProps);\n case ERROR:\n return this.renderError(filteredProps);\n default:\n throw new Error('unknown value for this.state.imageStatus');\n }\n }\n}\n\nexport default Image;\n","import Image from './Image';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(Image, state => ({\n hasMasterSpinner: state.hasMasterSpinner,\n orientation: state.orientation,\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { cn } from '../helpers';\nimport s from './Spinner.scss';\n\nconst Spinner = class Spinner extends React.PureComponent {\n static propTypes = {\n className: PropTypes.string,\n }\n\n static defaultProps = {\n className: null,\n }\n\n render() {\n const { className, ...filteredProps } = this.props;\n const newClassName = cn([s.spinner, 'carousel__spinner', className]);\n return (\n
\n );\n }\n};\n\nexport default Spinner;\n","import ImageWithZoom from './ImageWithZoom';\n\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(ImageWithZoom, () => ({}));\n","/**\n * GetScrollParent\n *\n * Finds the first anscestor element (aka parent) with scroll.\n * Code is Based off of a snippet created by Ola Holmström\n * Original Source: https://github.com/olahol/scrollparent.js/blob/master/scrollparent.js#L13\n *\n * Usage:\n * const parent = new GetScrollParent(element);\n */\nexport default class GetScrollParent {\n static style(_node, prop) {\n return getComputedStyle(_node, null).getPropertyValue(prop);\n }\n\n static overflow(_node) {\n return (\n GetScrollParent.style(_node, 'overflow')\n + GetScrollParent.style(_node, 'overflow-y')\n + GetScrollParent.style(_node, 'overflow-x')\n );\n }\n\n static scroll(_node) {\n return /(auto|scroll)/.test(GetScrollParent.overflow(_node));\n }\n\n static isNodeValid(_node) {\n return _node instanceof HTMLElement || _node instanceof SVGElement;\n }\n\n parents(_node, ps) {\n if (_node.parentNode === null) return ps;\n return this.parents(_node.parentNode, ps.concat([_node]));\n }\n\n\n scrollParent(_node) {\n const ps = this.parents(_node.parentNode, []);\n for (let i = 0; i < ps.length; i += 1) {\n if (GetScrollParent.scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n }\n\n getScrollParent(_node) {\n if (!GetScrollParent.isNodeValid(_node)) return null;\n return this.scrollParent(_node);\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Image from '../Image';\nimport Spinner from '../Spinner';\nimport { boundedRange, cn, pct } from '../helpers';\nimport s from './ImageWithZoom.scss';\n\nconst MOUSE_SCALE = 2;\n\nconst MAX_TOUCH_SCALE = 3;\n\nconst ImageWithZoom = class ImageWithZoom extends React.Component {\n static propTypes = {\n alt: PropTypes.string,\n bgImageProps: PropTypes.object,\n bgImageTag: PropTypes.string,\n carouselStore: PropTypes.object.isRequired,\n className: PropTypes.string,\n imageClassName: PropTypes.string,\n overlayClassName: PropTypes.string,\n spinner: PropTypes.func,\n src: PropTypes.string.isRequired,\n srcZoomed: PropTypes.string,\n tag: PropTypes.string,\n isPinchZoomEnabled: PropTypes.bool,\n }\n\n static defaultProps = {\n alt: undefined,\n bgImageProps: {},\n bgImageTag: 'div',\n className: null,\n imageClassName: null,\n overlayClassName: null,\n isPinchZoomEnabled: true,\n spinner: null,\n srcZoomed: null,\n tag: 'div',\n }\n\n /**\n * Find the midpoint between two touches.\n * @param {number} x1 Touch #1 x coordinate.\n * @param {number} y1 Touch #1 y coordinate.\n * @param {number} x2 Touch #2 x coordinate.\n * @param {number} y2 Touch #2 y coordinate.\n * @return {Object} An object describing the midpoint as two properties: x and y.\n */\n static midpointBetweenTwoTouches({\n x1, y1, x2, y2,\n }) {\n // hint: make the two points the diameter of a circle. The center of the circle is the midpoint.\n return {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2,\n };\n }\n\n /**\n * Find the distance between two touches.\n * @param {number} x1 Touch #1 x coordinate.\n * @param {number} y1 Touch #1 y coordinate.\n * @param {number} x2 Touch #2 x coordinate.\n * @param {number} y2 Touch #2 y coordinate.\n * @return {number} The distance.\n */\n static distanceBetweenTwoTouches({\n x1, y1, x2, y2,\n }) {\n // hint: make a right triangle that joins the two points. The distance is the hypotenuce.\n return Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n }\n\n constructor(props) {\n super(props);\n\n // state changes that require a re-render\n this.state = {\n // tracks the status via image element's onload, onerror events.\n isImageLoading: true,\n\n // the mouse is currently hovering over the image.\n isHovering: false,\n\n // the user is doing the pinch-zoom gesture on the image on a touch device.\n isZooming: false,\n\n // the x coordinate of the mouse or pinch-zoom\n x: null,\n\n // the y coordinate of the mouse or pinch-zoom`\n y: null,\n\n // the zoom level. 1 means no zoom. > 1 = zoomed in.\n scale: 1,\n };\n\n // state that doesn't require a re-render\n this.tpCache = {}; // stores the original touch points, uses them to calculate touch deltas.\n\n // event handlers\n this.handleImageComplete = this.handleImageComplete.bind(this);\n this.handleOnMouseMove = this.handleOnMouseMove.bind(this);\n this.handleOnMouseOut = this.handleOnMouseOut.bind(this);\n this.handleOnMouseOver = this.handleOnMouseOver.bind(this);\n this.handleOnTouchEnd = this.handleOnTouchEnd.bind(this);\n this.handleOnTouchMove = this.handleOnTouchMove.bind(this);\n this.handleOnTouchStart = this.handleOnTouchStart.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.isZooming === false && this.state.isZooming === true) {\n this.props.carouselStore.setStoreState({\n isPageScrollLocked: true,\n });\n }\n if (prevState.isZooming === true && this.state.isZooming === false) {\n this.props.carouselStore.setStoreState({\n isPageScrollLocked: false,\n });\n }\n }\n\n handleImageComplete() {\n this.setState({\n isImageLoading: false,\n });\n }\n\n handleOnMouseOver() {\n if (this.state.isZooming) return;\n this.setState({\n isHovering: true,\n scale: MOUSE_SCALE,\n });\n }\n\n handleOnMouseOut() {\n if (this.state.isZooming) return;\n this.setState({\n isHovering: false,\n scale: 1,\n });\n }\n\n handleOnMouseMove(ev) {\n if (this.state.isZooming) return;\n const x = pct((ev.nativeEvent.offsetX / ev.target.offsetWidth) * 100);\n const y = pct((ev.nativeEvent.offsetY / ev.target.offsetHeight) * 100);\n this.setState({ x, y });\n }\n\n handleOnTouchStart(ev) {\n if (!this.props.isPinchZoomEnabled) return;\n [...ev.targetTouches].forEach((touchPoint) => {\n this.tpCache[touchPoint.identifier] = {\n clientX: touchPoint.clientX,\n clientY: touchPoint.clientY,\n };\n });\n\n // once zoom is on, it's only off if they stop touching everything. This is done because\n // sometimes one of the two fingers doesn't move enough to register as a touch point and\n // it will start scrolling the carousel, which made for a jerky experience.\n this.setState(state => ({\n isZooming: state.isZooming || Object.keys(this.tpCache).length > 1,\n }));\n }\n\n handleOnTouchMove(ev) {\n if (!this.state.isZooming) return;\n\n ev.persist();\n\n const touches = [...ev.targetTouches].filter(\n touch => this.tpCache[touch.identifier],\n ).slice(0, 2);\n\n if (touches.length === 2) {\n ev.stopPropagation();\n\n const clientRect = ev.target.getBoundingClientRect();\n\n const id0 = touches[0].identifier;\n const id1 = touches[1].identifier;\n\n // coordinates of the starting touch points.\n const start = {\n x1: this.tpCache[id0].clientX,\n y1: this.tpCache[id0].clientY,\n x2: this.tpCache[id1].clientX,\n y2: this.tpCache[id1].clientY,\n };\n\n // length of the line connecting the starting touch points\n start.distance = ImageWithZoom.distanceBetweenTwoTouches({ ...start });\n\n // midpoint between the two starting touch points\n const startMidpoint = ImageWithZoom.midpointBetweenTwoTouches({ ...start });\n start.cx = startMidpoint.x;\n start.cy = startMidpoint.y;\n\n // coordinates of the ending touch points.\n const end = {\n x1: touches[0].clientX,\n y1: touches[0].clientY,\n x2: touches[1].clientX,\n y2: touches[1].clientY,\n };\n\n // length of the line connecting the ending touch points\n end.distance = ImageWithZoom.distanceBetweenTwoTouches({ ...end });\n\n // midpoint between the two ending touch points\n const endMidpoint = ImageWithZoom.midpointBetweenTwoTouches({ ...end });\n end.cx = endMidpoint.x;\n end.cy = endMidpoint.y;\n\n // find the left% and top% of the midpoint between the two ending touches\n const x = pct(boundedRange({\n min: 0,\n max: 100,\n x: ((end.cx - clientRect.left) / clientRect.width) * 100,\n }));\n const y = pct(boundedRange({\n min: 0,\n max: 100,\n x: ((end.cy - clientRect.top) / clientRect.height) * 100,\n }));\n const scale = state => boundedRange({\n min: 1,\n max: MAX_TOUCH_SCALE,\n x: (state.scale + ((end.distance - start.distance) / 100)),\n });\n\n this.setState(state => ({\n isZooming: scale(state) !== 1,\n scale: scale(state),\n x,\n y,\n }));\n }\n }\n\n handleOnTouchEnd(ev) {\n if (!this.props.isPinchZoomEnabled) return;\n\n [...ev.changedTouches].forEach((touchPoint) => {\n delete this.tpCache[touchPoint.identifier];\n });\n\n // zoom mode only ends once they let go of all touch points\n if (Object.keys(this.tpCache).length === 0) {\n this.setState({ isZooming: false });\n }\n }\n\n renderLoading() {\n if (this.state.isImageLoading) {\n const { spinner } = this.props;\n return (\n \n { spinner && spinner() }\n { !spinner && }\n
\n );\n }\n\n return null;\n }\n\n\n render() {\n const {\n alt,\n bgImageProps,\n bgImageTag,\n carouselStore,\n className,\n imageClassName,\n overlayClassName,\n isPinchZoomEnabled,\n spinner,\n src,\n srcZoomed,\n tag: Tag,\n ...filteredProps\n } = this.props;\n\n const newClassName = cn([\n s.container,\n className,\n ]);\n\n const newImageClassName = cn([\n s.image,\n 'carousel__zoom-image',\n imageClassName,\n ]);\n\n const newOverlayClassName = cn([\n s.overlay,\n 'carousel__zoom-image-overlay',\n this.state.isHovering && s.hover,\n this.state.isZooming && s.zoom,\n this.state.isHovering && 'carousel__zoom-image-overlay--hovering',\n this.state.isZooming && 'carousel__zoom-image-overlay--zooming',\n overlayClassName,\n ]);\n\n const overlayStyle = {};\n if (this.state.isHovering || this.state.isZooming) {\n overlayStyle.transformOrigin = `${this.state.x} ${this.state.y}`;\n overlayStyle.transform = `scale(${this.state.scale})`;\n }\n\n return (\n \n \n \n {this.renderLoading()}\n \n );\n }\n};\n\nexport default ImageWithZoom;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CarouselPropTypes, cn, pct } from '../helpers';\nimport s from './Slide.scss';\n\nconst Slide = class Slide extends React.PureComponent {\n static propTypes = {\n ariaLabel: PropTypes.string,\n carouselStore: PropTypes.object,\n children: CarouselPropTypes.children,\n className: PropTypes.string,\n classNameHidden: PropTypes.string,\n classNameVisible: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired,\n innerClassName: PropTypes.string,\n innerTag: PropTypes.string,\n naturalSlideHeight: PropTypes.number.isRequired,\n naturalSlideWidth: PropTypes.number.isRequired,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n orientation: CarouselPropTypes.orientation.isRequired,\n slideSize: PropTypes.number.isRequired,\n style: PropTypes.object,\n tabIndex: PropTypes.number,\n tag: PropTypes.string,\n totalSlides: PropTypes.number.isRequired,\n visibleSlides: PropTypes.number.isRequired,\n isIntrinsicHeight: PropTypes.bool,\n }\n\n static defaultProps = {\n ariaLabel: 'slide',\n carouselStore: null,\n children: null,\n className: null,\n classNameHidden: null,\n classNameVisible: null,\n innerClassName: null,\n innerTag: 'div',\n onBlur: null,\n onFocus: null,\n style: {},\n tabIndex: null,\n tag: 'div',\n isIntrinsicHeight: false,\n }\n\n constructor(props) {\n super(props);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.state = {\n focused: false,\n };\n }\n\n isVisible() {\n const { currentSlide, index, visibleSlides } = this.props;\n return index >= currentSlide && index < currentSlide + visibleSlides;\n }\n\n handleOnFocus(ev) {\n const { onFocus } = this.props;\n\n this.setState({\n focused: true,\n }, () => {\n if (onFocus !== null) { onFocus.call(this, ev); }\n });\n }\n\n handleOnBlur(ev) {\n const { onBlur } = this.props;\n\n this.setState({\n focused: false,\n }, () => {\n if (onBlur !== null) { onBlur.call(this, ev); }\n });\n }\n\n renderFocusRing() {\n if (this.state.focused) return
;\n return null;\n }\n\n render() {\n const {\n ariaLabel,\n carouselStore,\n children,\n className,\n classNameHidden,\n classNameVisible,\n currentSlide,\n index,\n innerClassName,\n innerTag: InnerTag,\n naturalSlideHeight,\n naturalSlideWidth,\n onBlur,\n onFocus,\n orientation,\n slideSize,\n style,\n tabIndex,\n tag: Tag,\n totalSlides,\n visibleSlides,\n isIntrinsicHeight,\n ...props\n } = this.props;\n\n const tempStyle = {};\n\n if (orientation === 'horizontal') {\n tempStyle.width = pct(slideSize);\n tempStyle.paddingBottom = pct((naturalSlideHeight * 100) / (naturalSlideWidth * totalSlides));\n } else {\n tempStyle.width = pct(100);\n tempStyle.paddingBottom = pct((naturalSlideHeight * 100) / naturalSlideWidth);\n }\n\n const innerStyle = {};\n if (isIntrinsicHeight) {\n if (orientation === 'horizontal') {\n tempStyle.height = 'unset';\n } else {\n tempStyle.width = 'unset';\n }\n tempStyle.paddingBottom = 'unset';\n innerStyle.position = 'unset';\n }\n\n const newStyle = Object.assign({}, tempStyle, style);\n\n const isVisible = this.isVisible();\n\n const newClassName = cn([\n s.slide,\n orientation === 'horizontal' && s.slideHorizontal,\n 'carousel__slide',\n this.state.focused && 'carousel__slide--focused',\n isVisible && classNameVisible,\n isVisible && 'carousel__slide--visible',\n !isVisible && classNameHidden,\n !isVisible && 'carousel__slide--hidden',\n className,\n ]);\n\n const newInnerClassName = cn([\n s.slideInner,\n 'carousel__inner-slide',\n innerClassName,\n ]);\n\n const defaultTabIndex = this.isVisible() ? 0 : -1;\n const newTabIndex = typeof tabIndex === 'number' ? tabIndex : defaultTabIndex;\n\n return (\n { this.tagRef = el; }}\n tabIndex={newTabIndex}\n aria-selected={this.isVisible()}\n aria-label={ariaLabel}\n role=\"option\"\n onFocus={this.handleOnFocus}\n onBlur={this.handleOnBlur}\n className={newClassName}\n style={newStyle}\n {...props}\n >\n { this.innerTagRef = el; }}\n className={newInnerClassName}\n style={innerStyle}\n >\n {this.props.children}\n {this.renderFocusRing()}\n \n \n );\n }\n};\n\nexport default Slide;\n","import Slide from './Slide';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(Slide, state => ({\n currentSlide: state.currentSlide,\n naturalSlideHeight: state.naturalSlideHeight,\n naturalSlideWidth: state.naturalSlideWidth,\n orientation: state.orientation,\n slideSize: state.slideSize,\n totalSlides: state.totalSlides,\n visibleSlides: state.visibleSlides,\n isIntrinsicHeight: state.isIntrinsicHeight,\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Spinner from '../Spinner';\nimport GetScrollParent from './GetScrollParent';\nimport {\n CarouselPropTypes, cn, pct, boundedRange,\n} from '../helpers';\nimport s from './Slider.scss';\n\nconst Slider = class Slider extends React.Component {\n static propTypes = {\n ariaLabel: PropTypes.string,\n carouselStore: PropTypes.object.isRequired,\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n classNameAnimation: PropTypes.string,\n classNameTray: PropTypes.string,\n classNameTrayWrap: PropTypes.string,\n currentSlide: PropTypes.number.isRequired,\n disableAnimation: PropTypes.bool,\n disableKeyboard: PropTypes.bool,\n dragEnabled: PropTypes.bool.isRequired,\n dragStep: PropTypes.number,\n hasMasterSpinner: PropTypes.bool.isRequired,\n infinite: PropTypes.bool,\n interval: PropTypes.number.isRequired,\n isPageScrollLocked: PropTypes.bool.isRequired,\n isPlaying: PropTypes.bool.isRequired,\n lockOnWindowScroll: PropTypes.bool.isRequired,\n preventVerticalScrollOnTouch: PropTypes.bool,\n horizontalPixelThreshold: PropTypes.number,\n verticalPixelThreshold: PropTypes.number,\n masterSpinnerFinished: PropTypes.bool.isRequired,\n moveThreshold: PropTypes.number,\n naturalSlideHeight: PropTypes.number.isRequired,\n naturalSlideWidth: PropTypes.number.isRequired,\n onMasterSpinner: PropTypes.func,\n orientation: CarouselPropTypes.orientation.isRequired,\n playDirection: CarouselPropTypes.direction.isRequired,\n privateUnDisableAnimation: PropTypes.bool,\n slideSize: PropTypes.number.isRequired,\n slideTraySize: PropTypes.number.isRequired,\n spinner: PropTypes.func,\n step: PropTypes.number.isRequired,\n style: PropTypes.object,\n tabIndex: PropTypes.number,\n totalSlides: PropTypes.number.isRequired,\n touchEnabled: PropTypes.bool.isRequired,\n trayProps: PropTypes.shape({\n className: PropTypes.string,\n onClickCapture: PropTypes.func,\n onMouseDown: PropTypes.func,\n onTouchCancel: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchStart: PropTypes.func,\n ref: PropTypes.shape({}),\n style: PropTypes.string,\n }),\n trayTag: PropTypes.string,\n visibleSlides: PropTypes.number,\n isIntrinsicHeight: PropTypes.bool,\n }\n\n static defaultProps = {\n ariaLabel: 'slider',\n className: null,\n classNameAnimation: null,\n classNameTray: null,\n classNameTrayWrap: null,\n disableAnimation: false,\n disableKeyboard: false,\n dragStep: 1,\n infinite: false,\n preventVerticalScrollOnTouch: true,\n horizontalPixelThreshold: 15,\n verticalPixelThreshold: 10,\n moveThreshold: 0.1,\n onMasterSpinner: null,\n privateUnDisableAnimation: false,\n spinner: null,\n style: {},\n tabIndex: null,\n trayProps: {},\n trayTag: 'div',\n visibleSlides: 1,\n isIntrinsicHeight: false,\n }\n\n static slideSizeInPx(orientation, sliderTrayWidth, sliderTrayHeight, totalSlides) {\n return (orientation === 'horizontal' ? sliderTrayWidth : sliderTrayHeight) / totalSlides;\n }\n\n static slidesMoved(threshold, orientation, deltaX, deltaY, slideSizeInPx, dragStep) {\n const delta = orientation === 'horizontal' ? deltaX : deltaY;\n const bigDrag = Math.abs(Math.round(delta / slideSizeInPx));\n const smallDrag = (Math.abs(delta) >= (slideSizeInPx * threshold)) ? dragStep : 0;\n const moved = Math.max(smallDrag, bigDrag);\n if (delta < 0) {\n return moved;\n }\n const retval = -moved;\n return retval === 0 ? 0 : retval; // get rid of -0\n }\n\n constructor(props) {\n super(props);\n\n this.getSliderRef = this.getSliderRef.bind(this);\n this.handleDocumentScroll = this.handleDocumentScroll.bind(this);\n this.handleOnClickCapture = this.handleOnClickCapture.bind(this);\n this.handleOnKeyDown = this.handleOnKeyDown.bind(this);\n this.handleOnMouseDown = this.handleOnMouseDown.bind(this);\n this.handleOnMouseMove = this.handleOnMouseMove.bind(this);\n this.handleOnMouseUp = this.handleOnMouseUp.bind(this);\n this.handleOnTouchCancel = this.handleOnTouchCancel.bind(this);\n this.handleOnTouchEnd = this.handleOnTouchEnd.bind(this);\n this.handleOnTouchMove = this.handleOnTouchMove.bind(this);\n this.handleOnTouchStart = this.handleOnTouchStart.bind(this);\n this.playBackward = this.playBackward.bind(this);\n this.playForward = this.playForward.bind(this);\n this.callCallback = this.callCallback.bind(this);\n this.blockWindowScroll = this.blockWindowScroll.bind(this);\n\n this.state = {\n cancelNextClick: false,\n deltaX: 0,\n deltaY: 0,\n isBeingMouseDragged: false,\n isBeingTouchDragged: false,\n preventingVerticalScroll: false,\n startX: 0,\n startY: 0,\n };\n\n this.interval = null;\n this.isDocumentScrolling = null;\n this.moveTimer = null;\n this.originalOverflow = null;\n this.scrollParent = null;\n this.scrollStopTimer = null;\n }\n\n componentDidMount() {\n if (this.props.lockOnWindowScroll) {\n window.addEventListener('scroll', this.handleDocumentScroll, false);\n }\n if (this.props.touchEnabled || this.props.preventVerticalScrollOnTouch) {\n window.addEventListener('touchmove', this.blockWindowScroll, false);\n }\n document.documentElement.addEventListener('mouseleave', this.handleOnMouseUp, false);\n document.documentElement.addEventListener('mousemove', this.handleOnMouseMove, false);\n document.documentElement.addEventListener('mouseup', this.handleOnMouseUp, false);\n\n if (this.props.isPlaying) this.play();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.isPlaying && this.props.isPlaying) this.play();\n if (prevProps.isPlaying && !this.props.isPlaying) this.stop();\n if (!prevProps.isPageScrollLocked && this.props.isPageScrollLocked) this.lockScroll();\n if (prevProps.isPageScrollLocked && !this.props.isPageScrollLocked) this.unlockScroll();\n // Re-enable the css animation after currentSlide prop is changed in CarouselProvider\n if (\n prevProps.privateUnDisableAnimation === false\n && this.props.privateUnDisableAnimation === true\n ) {\n this.props.carouselStore.setStoreState({\n privateUnDisableAnimation: false,\n disableAnimation: false,\n });\n }\n }\n\n componentWillUnmount() {\n document.documentElement.removeEventListener('mouseleave', this.handleOnMouseUp, false);\n document.documentElement.removeEventListener('mousemove', this.handleOnMouseMove, false);\n document.documentElement.removeEventListener('mouseup', this.handleOnMouseUp, false);\n window.removeEventListener('scroll', this.handleDocumentScroll, false);\n window.removeEventListener('touchmove', this.blockWindowScroll, false);\n\n this.stop();\n window.cancelAnimationFrame.call(window, this.moveTimer);\n window.clearTimeout(this.scrollStopTimer);\n\n this.isDocumentScrolling = null;\n this.moveTimer = null;\n this.scrollStopTimer = null;\n }\n\n // NOTE: These are the order of touch and mouse events\n // https://developer.mozilla.org/en-US/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent\n //\n // 1) touchstart\n // 2) Zero or more touchmove events, depending on movement of the finger(s)\n // 3) touchend\n // 4) mousemove\n // 5) mousedown\n // 6) mouseup\n // 7) click\n\n getSliderRef(el) {\n this.sliderTrayElement = el;\n }\n\n\n fakeOnDragStart({\n screenX,\n screenY,\n touchDrag = false,\n mouseDrag = false,\n }) {\n this.props.carouselStore.setStoreState({\n isPlaying: false,\n });\n\n window.cancelAnimationFrame.call(window, this.moveTimer);\n\n if (this.props.orientation === 'vertical') {\n this.props.carouselStore.setStoreState({\n isPageScrollLocked: true,\n });\n }\n\n this.setState({\n isBeingTouchDragged: touchDrag,\n isBeingMouseDragged: mouseDrag,\n startX: screenX,\n startY: screenY,\n });\n }\n\n fakeOnDragMove(screenX, screenY) {\n this.moveTimer = window.requestAnimationFrame.call(window, () => {\n this.setState(state => ({\n deltaX: screenX - state.startX,\n deltaY: screenY - state.startY,\n preventingVerticalScroll: Math.abs(screenY - state.startY)\n <= this.props.verticalPixelThreshold\n && Math.abs(screenX - state.startX) >= this.props.horizontalPixelThreshold,\n }));\n });\n }\n\n fakeOnDragEnd() {\n window.cancelAnimationFrame.call(window, this.moveTimer);\n\n this.computeCurrentSlide();\n\n if (this.props.orientation === 'vertical') {\n this.props.carouselStore.setStoreState({\n isPageScrollLocked: false,\n });\n }\n\n this.setState({\n deltaX: 0,\n deltaY: 0,\n isBeingTouchDragged: false,\n isBeingMouseDragged: false,\n });\n\n this.isDocumentScrolling = this.props.lockOnWindowScroll ? false : null;\n }\n\n callCallback(propName, ev) {\n const { trayProps } = this.props;\n if (trayProps && typeof trayProps[propName] === 'function') {\n ev.persist();\n trayProps[propName](ev);\n }\n }\n\n handleOnMouseDown(ev) {\n if (!this.props.dragEnabled) {\n this.callCallback('onMouseDown', ev);\n return;\n }\n ev.preventDefault();\n this.fakeOnDragStart({\n screenX: ev.screenX,\n screenY: ev.screenY,\n mouseDrag: true,\n });\n this.callCallback('onMouseDown', ev);\n }\n\n handleOnMouseMove(ev) {\n if (!this.state.isBeingMouseDragged) return;\n this.setState({ cancelNextClick: true });\n ev.preventDefault();\n this.fakeOnDragMove(ev.screenX, ev.screenY);\n }\n\n handleOnMouseUp(ev) {\n if (!this.state.isBeingMouseDragged) return;\n ev.preventDefault();\n this.fakeOnDragEnd();\n }\n\n handleOnClickCapture(ev) {\n if (!this.state.cancelNextClick) {\n this.callCallback('onClickCapture', ev);\n return;\n }\n ev.preventDefault();\n this.setState({ cancelNextClick: false });\n this.callCallback('onClickCapture', ev);\n }\n\n handleOnTouchStart(ev) {\n if (!this.props.touchEnabled) {\n this.callCallback('onTouchStart', ev);\n return;\n }\n\n if (this.props.orientation === 'vertical') {\n ev.preventDefault();\n }\n\n const touch = ev.targetTouches[0];\n this.fakeOnDragStart({\n screenX: touch.screenX,\n screenY: touch.screenY,\n touchDrag: true,\n });\n this.callCallback('onTouchStart', ev);\n }\n\n handleDocumentScroll() {\n if (!this.props.touchEnabled) return;\n this.isDocumentScrolling = true;\n window.clearTimeout(this.scrollStopTimer);\n this.scrollStopTimer = window.setTimeout(() => {\n this.isDocumentScrolling = false;\n }, 66);\n }\n\n handleOnTouchMove(ev) {\n if (\n !this.props.touchEnabled\n || (this.props.lockOnWindowScroll && this.isDocumentScrolling)\n ) {\n this.callCallback('onTouchMove', ev);\n return;\n }\n\n window.cancelAnimationFrame.call(window, this.moveTimer);\n\n const touch = ev.targetTouches[0];\n // TODO: This prevents an error case we were seeing internally, but long term we\n // should evaluate if there's something better we can do to ensure there's not\n // a different problem that we can address instead.\n if (touch) {\n this.fakeOnDragMove(touch.screenX, touch.screenY);\n this.callCallback('onTouchMove', ev);\n }\n }\n\n forward() {\n const {\n currentSlide, step, totalSlides, visibleSlides,\n } = this.props;\n return Math.min(currentSlide + step, totalSlides - visibleSlides);\n }\n\n backward() {\n const { currentSlide, step } = this.props;\n return Math.max(currentSlide - step, 0);\n }\n\n handleOnKeyDown(ev) {\n const { keyCode } = ev;\n const {\n carouselStore, currentSlide, disableKeyboard, totalSlides, visibleSlides,\n } = this.props;\n const newStoreState = {};\n\n if ((disableKeyboard === true) || (totalSlides <= visibleSlides)) return;\n\n // left arrow\n if (keyCode === 37) {\n ev.preventDefault();\n this.focus();\n newStoreState.currentSlide = Math.max(0, currentSlide - 1);\n newStoreState.isPlaying = false;\n }\n\n // right arrow\n if (keyCode === 39) {\n ev.preventDefault();\n this.focus();\n newStoreState.currentSlide = Math.min(\n totalSlides - visibleSlides,\n currentSlide + 1,\n );\n newStoreState.isPlaying = false;\n }\n\n carouselStore.setStoreState(newStoreState);\n }\n\n playForward() {\n const { carouselStore, currentSlide } = this.props;\n carouselStore.setStoreState({\n currentSlide: this.forward() === currentSlide ? 0 : this.forward(),\n });\n }\n\n playBackward() {\n const {\n carouselStore, currentSlide, totalSlides, visibleSlides,\n } = this.props;\n carouselStore.setStoreState({\n currentSlide: (\n this.backward() === currentSlide ? totalSlides - visibleSlides : this.backward()\n ),\n });\n }\n\n play() {\n const { playDirection } = this.props;\n this.interval = setInterval(playDirection === 'forward' ? this.playForward : this.playBackward, this.props.interval);\n }\n\n stop() {\n window.clearInterval(this.interval);\n this.interval = null;\n }\n\n /**\n * Find the first anscestor dom element that has a scroll bar and sets it's overflow to hidden.\n * this prevents the ancestor from scrolling while the user is doing the pinch-zoom gesture\n * on their touch-enabled device.\n * @return {void}\n */\n lockScroll() {\n const getScrollParent = new GetScrollParent();\n this.scrollParent = getScrollParent.getScrollParent(this.sliderTrayElement);\n if (this.scrollParent) {\n this.originalOverflow = this.originalOverflow || this.scrollParent.style.overflow;\n this.scrollParent.style.overflow = 'hidden';\n }\n }\n\n /**\n * Restores the original overflow for the ancestor dom element that had scroll bars. This is\n * called when the user releases the pinch-zoom gesture on their touch-enabled device.\n * @return {void}\n */\n unlockScroll() {\n if (this.scrollParent) {\n this.scrollParent.style.overflow = this.originalOverflow;\n this.originalOverflow = null;\n this.scrollParent = null;\n }\n }\n\n blockWindowScroll(ev) {\n if (this.state.preventingVerticalScroll) {\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n computeCurrentSlide() {\n const slideSizeInPx = Slider.slideSizeInPx(\n this.props.orientation,\n this.sliderTrayElement.clientWidth,\n this.sliderTrayElement.clientHeight,\n this.props.totalSlides,\n );\n\n const slidesMoved = Slider.slidesMoved(\n this.props.moveThreshold,\n this.props.orientation,\n this.state.deltaX,\n this.state.deltaY,\n slideSizeInPx,\n this.props.dragStep,\n );\n\n const maxSlide = this.props.totalSlides - Math.min(\n this.props.totalSlides, this.props.visibleSlides,\n );\n\n let currentSlide = boundedRange({\n min: 0,\n max: maxSlide,\n x: (this.props.currentSlide + slidesMoved),\n });\n\n if (this.props.infinite) {\n if (this.props.currentSlide >= maxSlide && slidesMoved > 0) {\n currentSlide = 0;\n }\n if (this.props.currentSlide === 0 && slidesMoved < 0) {\n currentSlide = maxSlide;\n }\n }\n\n this.props.carouselStore.setStoreState({\n currentSlide,\n });\n }\n\n focus() {\n this.sliderElement.focus();\n }\n\n handleOnTouchEnd(ev) {\n this.endTouchMove();\n this.callCallback('onTouchEnd', ev);\n }\n\n handleOnTouchCancel(ev) {\n this.endTouchMove();\n this.callCallback('onTouchCancel', ev);\n }\n\n endTouchMove() {\n if (!this.props.touchEnabled) return;\n this.fakeOnDragEnd();\n }\n\n renderMasterSpinner() {\n const { hasMasterSpinner, masterSpinnerFinished, spinner } = this.props;\n\n if (hasMasterSpinner && (!masterSpinnerFinished)) {\n if (typeof this.props.onMasterSpinner === 'function') this.props.onMasterSpinner();\n\n return (\n \n {spinner && spinner()}\n {!spinner && }\n
\n );\n }\n\n return null;\n }\n\n render() {\n const {\n ariaLabel,\n carouselStore,\n children,\n className,\n classNameAnimation,\n classNameTray,\n classNameTrayWrap,\n currentSlide,\n disableAnimation,\n disableKeyboard,\n dragEnabled,\n hasMasterSpinner,\n interval,\n isPageScrollLocked,\n isPlaying,\n lockOnWindowScroll,\n masterSpinnerFinished,\n moveThreshold,\n naturalSlideHeight,\n naturalSlideWidth,\n onMasterSpinner,\n orientation,\n playDirection,\n privateUnDisableAnimation,\n slideSize,\n slideTraySize,\n spinner,\n style,\n tabIndex,\n totalSlides,\n touchEnabled,\n trayProps,\n trayTag: TrayTag,\n visibleSlides,\n isIntrinsicHeight,\n ...props\n } = this.props;\n\n const sliderStyle = Object.assign({}, style);\n\n // slider tray wrap\n const trayWrapStyle = {};\n\n if (orientation === 'vertical') {\n trayWrapStyle.height = 0;\n trayWrapStyle.paddingBottom = pct(\n (naturalSlideHeight * 100 * visibleSlides) / naturalSlideWidth,\n );\n trayWrapStyle.width = pct(100);\n }\n\n\n // slider tray\n const trayStyle = {};\n const trans = pct(slideSize * currentSlide * -1);\n\n if (this.state.isBeingTouchDragged || this.state.isBeingMouseDragged || disableAnimation) {\n trayStyle.transition = 'none';\n }\n\n if (isIntrinsicHeight) {\n trayStyle.display = 'flex';\n trayStyle.alignItems = 'stretch';\n }\n\n if (orientation === 'vertical') {\n trayStyle.transform = `translateY(${trans}) translateY(${this.state.deltaY}px)`;\n trayStyle.width = pct(100);\n trayStyle.flexDirection = 'column';\n } else {\n trayStyle.width = pct(slideTraySize);\n trayStyle.transform = `translateX(${trans}) translateX(${this.state.deltaX}px)`;\n trayStyle.flexDirection = 'row';\n }\n\n const sliderClasses = cn([\n orientation === 'vertical' ? s.verticalSlider : s.horizontalSlider,\n 'carousel__slider',\n orientation === 'vertical' ? 'carousel__slider--vertical' : 'carousel__slider--horizontal',\n className,\n ]);\n\n const trayWrapClasses = cn([\n s.sliderTrayWrap,\n 'carousel__slider-tray-wrapper',\n orientation === 'vertical' ? s.verticalSlideTrayWrap : s.horizontalTrayWrap,\n orientation === 'vertical' ? 'carousel__slider-tray-wrap--vertical' : 'carousel__slider-tray-wrap--horizontal',\n classNameTrayWrap,\n ]);\n\n const trayClasses = cn([\n s.sliderTray,\n classNameAnimation || s.sliderAnimation,\n 'carousel__slider-tray',\n orientation === 'vertical' ? s.verticalTray : s.horizontalTray,\n orientation === 'vertical' ? 'carousel__slider-tray--vertical' : 'carousel__slider-tray--horizontal',\n classNameTray,\n ]);\n\n const newTabIndex = tabIndex !== null ? tabIndex : 0;\n\n // remove invalid div attributes\n const {\n dragStep,\n step,\n infinite,\n preventVerticalScrollOnTouch,\n preventingVerticalScroll,\n horizontalPixelThreshold,\n verticalPixelThreshold,\n ...rest\n } = props;\n\n // filter out some tray props before passing them in. We will process event handlers in the\n // trayProps object as callbacks to OUR event handlers. Ref is needed by us. Style and\n // className are in the main props. Can't merge them into trayProps without causing a breaking\n // change.\n const {\n className: ignoreClassName,\n onClickCapture,\n onMouseDown,\n onTouchCancel,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n ref: ignoreRef,\n style: ignoreStyle,\n ...filteredTrayProps\n } = trayProps;\n\n return (\n { this.sliderElement = el; }}\n className={sliderClasses}\n aria-live=\"polite\"\n aria-label={ariaLabel}\n style={sliderStyle}\n tabIndex={newTabIndex}\n onKeyDown={this.handleOnKeyDown}\n role=\"listbox\"\n {...rest}\n >\n
\n \n {children}\n \n {this.renderMasterSpinner()}\n
\n \n );\n }\n};\n\nexport default Slider;\n","import Slider from './Slider';\nimport WithStore from '../Store/WithStore';\n\nexport default WithStore(Slider, state => ({\n currentSlide: state.currentSlide,\n disableAnimation: state.disableAnimation,\n privateUnDisableAnimation: state.privateUnDisableAnimation,\n disableKeyboard: state.disableKeyboard,\n dragEnabled: state.dragEnabled,\n hasMasterSpinner: state.hasMasterSpinner,\n infinite: state.infinite,\n interval: state.interval,\n isPageScrollLocked: state.isPageScrollLocked,\n isPlaying: state.isPlaying,\n lockOnWindowScroll: state.lockOnWindowScroll,\n preventingVerticalScroll: state.preventingVerticalScroll,\n masterSpinnerFinished: state.masterSpinnerFinished,\n naturalSlideHeight: state.naturalSlideHeight,\n naturalSlideWidth: state.naturalSlideWidth,\n orientation: state.orientation,\n playDirection: state.playDirection,\n slideSize: state.slideSize,\n slideTraySize: state.slideTraySize,\n step: state.step,\n dragStep: state.dragStep,\n totalSlides: state.totalSlides,\n touchEnabled: state.touchEnabled,\n visibleSlides: state.visibleSlides,\n isIntrinsicHeight: state.isIntrinsicHeight,\n}));\n"],"names":["emptyFunction","emptyFunctionWithReset","cn","e","map","join","replace","trim","slideSize","t","slideTraySize","pct","concat","equal","r","i","types","jkrosoType","n","memoGaurd","s","length","getEnumerableProperties","push","isSpecial","Object","prototype","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","cloneUnlessOtherwiseSpecified","clone","isMergeableObject","deepmerge","Array","isArray","emptyTarget","defaultArrayMerge","arrayMerge","keys","forEach","mergeObject","WithStore","arguments","_classCallCheck","state","_objectSpread2","updateStateProps","bind","_assertThisInitialized","_inherits","_createSuper","_createClass","key","value","this","context","subscribe","equals","props","unsubscribe","setState","deepmerge_1","React","_extends","ref","instance","carouselStore","getStoreState","masterSpinnerError","masterSpinnerSuccess","setStoreState","subscribeMasterSpinner","unsubscribeAllMasterSpinner","unsubscribeMasterSpinner","children","_defineProperty","Context","CarouselPropTypes","resetWarningCache","propTypes","createCommonjsModule","exports","o","Error","name","isRequired","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","LOADING","SUCCESS","ERROR","direction","height","orientation","isBgImage","tag","boundedRange","min","max","x","Math","_excluded","ButtonBack","handleOnClick","currentSlide","onClick","step","infinite","a","visibleSlides","l","totalSlides","c","isPlaying","className","disabled","_objectWithoutProperties","setDisabled","type","window","Node","Function","Map","Set","nodeType","outerHTML","textContent","sort","isNonNullObject","Symbol","for","all","reduce","_class","deepFreeze","freeze","getOwnPropertyNames","hasOwnProperty","isFrozen","DEFAULT_STATE","masterSpinnerFinished","Store","subscriptions","masterSpinnerSubscriptions","updateSubscribers","indexOf","splice","success","error","complete","setMasterSpinnerFinished","isMasterSpinnerFinished","filter","_excluded$1","CarouselProvider","isIntrinsicHeight","disableAnimation","disableKeyboard","hasMasterSpinner","imageErrorCount","imageSuccessCount","interval","isPageScrollLocked","lockOnWindowScroll","masterSpinnerThreshold","naturalSlideHeight","naturalSlideWidth","playDirection","privateUnDisableAnimation","dragStep","touchEnabled","dragEnabled","Provider","Consumer","_class$1","_class$2","_class$3","_class$4","_class$5","_class$6","index","s$1","_excluded$2","ButtonFirst","s$2","_excluded$3","ButtonNext","u","index$2","s$3","_excluded$4","ButtonLast","s$4","_excluded$5","ButtonPlay","childrenPaused","childrenPlaying","s$5","dot","_excluded$6","Dot","slide","selected","p","d","dotSelected","Dot$1","s$6","_excluded$7","_excluded2","DotGroup","apply","disableActiveDots","showAsSelectedForCurrentSlideOnly","renderDots","h","dotNumbers","s$7","image","_excluded$8","_excluded2$1","Image","imageStatus","handleImageLoad","handleImageError","initImage","src","removeEventListener","document","createElement","addEventListener","readyState","onLoad","onError","tempTag","imageLoading","customRender","imageError","style","alt","backgroundImage","backgroundSize","renderError","renderLoading","renderSuccess","_class$7","_class$8","_class$9","_class$a","Image$1","s$8","_excluded$9","Spinner","s$9","container","overlay","hover","zoom","loading","imageLoadingSpinnerContainer","_excluded$a","ImageWithZoom","isImageLoading","isHovering","isZooming","y","scale","tpCache","handleImageComplete","handleOnMouseMove","handleOnMouseOut","handleOnMouseOver","handleOnTouchEnd","handleOnTouchMove","handleOnTouchStart","nativeEvent","offsetX","target","offsetWidth","offsetY","offsetHeight","isPinchZoomEnabled","_toConsumableArray","targetTouches","identifier","clientX","clientY","persist","slice","stopPropagation","getBoundingClientRect","x1","y1","x2","y2","distance","distanceBetweenTwoTouches","midpointBetweenTwoTouches","cx","cy","left","width","top","changedTouches","spinner","bgImageProps","bgImageTag","imageClassName","overlayClassName","srcZoomed","S","transformOrigin","transform","onFocus","onMouseOver","onBlur","onMouseOut","onMouseMove","onTouchStart","onTouchEnd","onTouchMove","sqrt","pow","s$a","slideHorizontal","slideInner","focusRing","_excluded$b","Slide","handleOnFocus","handleOnBlur","focused","ariaLabel","classNameHidden","classNameVisible","innerClassName","innerTag","tabIndex","b","m","f","paddingBottom","g","position","v","_","isVisible","T","k","C","O","tagRef","role","innerTagRef","renderFocusRing","index$7","GetScrollParent","parentNode","parents","scroll","scrollingElement","documentElement","isNodeValid","scrollParent","getComputedStyle","getPropertyValue","test","overflow","HTMLElement","SVGElement","s$b","horizontalSlider","horizontalSliderTray","verticalSlider","verticalSliderTray","verticalTray","verticalSlideTrayWrap","sliderTray","sliderAnimation","masterSpinnerContainer","_excluded$c","_excluded2$2","_excluded3","Slider","getSliderRef","handleDocumentScroll","handleOnClickCapture","handleOnKeyDown","handleOnMouseDown","handleOnMouseUp","handleOnTouchCancel","playBackward","playForward","callCallback","blockWindowScroll","cancelNextClick","deltaX","deltaY","isBeingMouseDragged","isBeingTouchDragged","preventingVerticalScroll","startX","startY","isDocumentScrolling","moveTimer","originalOverflow","scrollStopTimer","preventVerticalScrollOnTouch","play","stop","lockScroll","unlockScroll","cancelAnimationFrame","clearTimeout","sliderTrayElement","screenX","screenY","touchDrag","mouseDrag","requestAnimationFrame","abs","verticalPixelThreshold","horizontalPixelThreshold","computeCurrentSlide","trayProps","preventDefault","fakeOnDragStart","fakeOnDragMove","fakeOnDragEnd","setTimeout","keyCode","focus","forward","backward","setInterval","clearInterval","getScrollParent","stopImmediatePropagation","slideSizeInPx","clientWidth","clientHeight","slidesMoved","moveThreshold","sliderElement","endTouchMove","onMasterSpinner","classNameAnimation","classNameTray","classNameTrayWrap","trayTag","transition","display","alignItems","flexDirection","P","E","sliderTrayWrap","horizontalTrayWrap","w","horizontalTray","M","R","onClickCapture","onMouseDown","onTouchCancel","onKeyDown","renderMasterSpinner","round","index$8"],"sourceRoot":""}