{"version":3,"sources":["webpack:///./node_modules/react-slick/lib/slider.js","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./node_modules/react-slick/lib/default-props.js","webpack:///./node_modules/string-convert/camel2hyphen.js","webpack:///./node_modules/enquire.js/src/Util.js","webpack:///./src/components/Testimonials/Testimonial.jsx","webpack:///./src/components/Testimonials/index.jsx","webpack:///./node_modules/react-slick/lib/arrows.js","webpack:///./node_modules/react-slick/lib/index.js","webpack:///./node_modules/react-slick/lib/track.js","webpack:///./node_modules/react-slick/lib/dots.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/enquire.js/src/index.js","webpack:///./node_modules/enquire.js/src/QueryHandler.js","webpack:///./node_modules/json2mq/index.js","webpack:///./node_modules/react-slick/lib/initial-state.js","webpack:///./node_modules/react-slick/lib/inner-slider.js","webpack:///./node_modules/enquire.js/src/MediaQuery.js","webpack:///./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack:///./node_modules/react-slick/lib/utils/innerSliderUtils.js"],"names":["exports","__esModule","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_react2","_interopRequireDefault","_innerSlider","_json2mq2","_defaultProps2","_innerSliderUtils","obj","default","enquire","canUseDOM","Slider","_React$Component","props","instance","Constructor","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","innerSliderRefHandler","ref","innerSlider","slickPrev","slickNext","slickGoTo","slide","dontAnimate","undefined","slickPause","pause","slickPlay","autoPlay","state","breakpoint","_responsiveMediaHandlers","subClass","superClass","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","media","query","handler","register","push","componentWillMount","_this2","responsive","breakpoints","map","breakpt","sort","x","y","forEach","index","bQuery","minWidth","maxWidth","setState","slice","componentWillUnmount","unregister","render","settings","newProps","_this3","filter","resp","centerMode","slidesToScroll","fade","slidesToShow","children","Children","toArray","child","trim","variableWidth","rows","slidesPerRow","console","warn","newChildren","currentWidth","newSlide","j","row","k","style","width","cloneElement","tabIndex","display","createElement","className","unslick","InnerSlider","Component","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","Function","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","type","toNumber","isObjectLike","isSymbol","other","valueOf","replace","isBinary","test","module","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","cancel","clearTimeout","flush","_react","defaultProps","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplay","autoplaySpeed","beforeChange","centerPadding","cssEase","customPaging","dotsClass","draggable","easing","edgeFriction","focusOnSelect","infinite","initialSlide","lazyLoad","nextArrow","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","prevArrow","rtl","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","vertical","waitForAnimate","str","match","toLowerCase","isFunction","isArray","each","collection","fn","Testimonial","customerId","text","discipline","topicTitle","grade","Testimonials","_getAllTestimonials","arr","e","preventDefault","showTestimonialsSize","all","showBtn","bind","getTmData","nameOfPageArray","testimonialsData","allTms","newArr","tmData","customTmArray","allTestimonials","isOnlyContent","a","b","date","testimonial","onClick","to","VerticalTextBlock","sectionClassName","dotsStyle","NextArrow","PrevArrow","_classnames2","_React$PureComponent","clickHandler","prevClasses","prevHandler","message","currentSlide","slideCount","prevArrowProps","customProps","PureComponent","_React$PureComponent2","nextClasses","nextHandler","canGoNext","nextArrowProps","_slider","_slider2","Track","getSlideClasses","spec","slickActive","slickCenter","slickCloned","centerOffset","floor","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","childrenCount","count","startIndex","lazyStartIndex","endIndex","lazyEndIndex","elem","childOnClickOptions","lazyLoadedList","indexOf","childStyle","slideWidth","position","top","slideHeight","left","opacity","transition","WebkitTransition","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","getPreClones","concat","reverse","_props","mouseEvents","onMouseEnter","onMouseOver","onMouseLeave","trackStyle","Dots","dotCount","ceil","Array","join","split","leftBound","rightBound","dotOptions","MapShim","Map","getIndex","some","entry","class_1","__entries__","defineProperty","get","set","delete","entries","splice","has","clear","callback","ctx","_i","_a","isBrowser","window","document","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","addEventListener","observe","attributes","childList","characterData","subtree","removeEventListener","disconnect","_b","propertyName","getInstance","instance_","defineConfigurable","keys","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","size","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","right","vertPad","bottom","height","boxSizing","round","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method","MediaQueryDispatch","QueryHandler","deferSetup","setup","initialised","on","off","unmatch","destroy","equals","camel2hyphen","obj2mq","mq","features","feature","isDimension","q","animating","autoplaying","currentDirection","currentLeft","direction","dragging","edgeDragged","initialized","listHeight","listWidth","scrolling","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackWidth","_typeof","Symbol","iterator","_reactDom2","_initialState2","_lodash2","_track","_dots","_arrows","_resizeObserverPolyfill2","_objectWithoutProperties","listRefHandler","list","trackRefHandler","track","adaptHeight","querySelector","getHeight","ssrInit","slidesToLoad","getOnDemandLazySlides","prevState","onLazyLoad","componentDidMount","listRef","trackRef","updateState","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","querySelectorAll","onfocus","onSlideFocus","onblur","onSlideBlur","attachEvent","animationEndCallback","clearInterval","timer","detachEvent","autoplayTimer","componentWillReceiveProps","nextProps","setTrackStyle","_iterator","_isArray","_ref","next","done","changeSlide","componentDidUpdate","checkImagesLoad","debouncedResize","resizeWindow","findDOMNode","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","getPostClones","_i2","_i3","_trackStyle","trackLeft","images","imagesCount","loadedCount","image","onclick","prevClickHandler","parentNode","focus","onload","onerror","_index","slideHandler","_this$props","asNavFor","_slideHandler","nextState","firstBatch","targetSlide","clickable","stopPropagation","keyHandler","dir","selectHandler","disableBodyScroll","ontouchmove","event","returnValue","enableBodyScroll","swipeStart","verticalSwiping","swipeMove","swipeEnd","triggerSlideHandler","Number","isNaN","play","nextIndex","playType","pauseType","onDotsOver","onDotsLeave","onTrackOver","onTrackLeave","trackProps","extractObject","dotProps","arrowProps","verticalHeightStyle","centerPaddingStyle","padding","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onKeyDown","innerSliderProps","MediaQuery","isUnconditional","handlers","mql","matchMedia","listener","currentTarget","assess","addListener","constuctor","addHandler","qh","matches","removeHandler","h","removeListener","action","Util","Error","queries","browserIsIncapable","shouldDegrade","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getTrackAnimateCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","getSwipeDirection","getWidth","lazySlidesOnRight","lazySlidesOnLeft","getRequiredLazySlides","onDemandSlides","requiredSlides","offsetWidth","offsetHeight","xDist","yDist","r","swipeAngle","atan2","PI","canGo","newObject","centerPaddingAdj","animationSlide","finalSlide","animationLeft","finalLeft","indexOffset","previousInt","slideOffset","tagName","keyCode","touches","pageX","clientX","pageY","clientY","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","counter","indexes","navigables","prevNavigable","n","swipedSlide","from","every","offsetTop","offsetLeft","currentIndex","dataset","keysArray","error","trackHeight","trackChildren","WebkitTransform","transform","msTransform","marginTop","marginLeft","slidesToOffset","targetSlideIndex","trackElem","childNodes","_ref2"],"mappings":"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","file":"07f8837490655c5c79daee56b11604fca20dd62c-0d7cdcbda1484535e7c7.js","sourcesContent":["\"use strict\";\n\nrequire(\"core-js/modules/es.array.sort.js\");\n\nexports.__esModule = true;\n\nvar _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\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = require(\"json2mq\");\n\nvar _json2mq2 = _interopRequireDefault(_json2mq);\n\nvar _defaultProps = require(\"./default-props\");\n\nvar _defaultProps2 = _interopRequireDefault(_defaultProps);\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n function Slider(props) {\n _classCallCheck(this, Slider);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this.innerSliderRefHandler = function (ref) {\n return _this.innerSlider = ref;\n };\n\n _this.slickPrev = function () {\n return _this.innerSlider.slickPrev();\n };\n\n _this.slickNext = function () {\n return _this.innerSlider.slickNext();\n };\n\n _this.slickGoTo = function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n };\n\n _this.slickPause = function () {\n return _this.innerSlider.pause(\"paused\");\n };\n\n _this.slickPlay = function () {\n return _this.innerSlider.autoPlay(\"play\");\n };\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n Slider.prototype.media = function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n }; // handles responsive breakpoints\n\n\n Slider.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this; // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n\n\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery = void 0;\n\n if (index === 0) {\n bQuery = (0, _json2mq2.default)({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq2.default)({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq2.default)({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n };\n\n Slider.prototype.componentWillUnmount = function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n };\n\n Slider.prototype.render = function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _extends({}, _defaultProps2.default, this.props, newProps[0].settings);\n } else {\n settings = _extends({}, _defaultProps2.default, this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \" + settings.slidesToScroll);\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \" + settings.slidesToShow);\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \" + settings.slidesToScroll);\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react2.default.Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push(_react2.default.cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: 100 / settings.slidesPerRow + \"%\",\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push(_react2.default.createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push(_react2.default.createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push(_react2.default.createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return _react2.default.createElement(\"div\", {\n className: className\n }, newChildren);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return _react2.default.createElement(_innerSlider.InnerSlider, _extends({\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n };\n\n return Slider;\n}(_react2.default.Component);\n\nexports.default = Slider;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\nvar now = function now() {\n return root.Date.now();\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = debounce;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return _react2.default.createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return _react2.default.createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nexports.default = defaultProps;","var camel2hyphen = function camel2hyphen(str) {\n return str.replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n }).toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for (i; i < length; i++) {\n cont = fn(collection[i], i);\n\n if (cont === false) {\n break; //allow early exit\n }\n }\n}\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\n\n\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\n\n\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction: isFunction,\n isArray: isArray,\n each: each\n};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport './Testimonial.scss';\n\n\nconst Testimonial = ({\n customerId,\n // date,\n text,\n discipline,\n topicTitle,\n grade,\n}) => (\n
\n
\n
\n
\n
\n
\n Customer (\n {customerId}\n )\n
\n {/*
*/}\n {/* {date} */}\n {/*
*/}\n
\n
\n
\n
\n
\n

\n {text}\n

\n
\n
\n
\n
\n Discipline:\n {' '}\n \n {discipline}\n \n
\n
\n Topic title:\n {' '}\n \n {topicTitle}\n \n
\n
\n Grade:\n {' '}\n \n {grade}\n \n
\n
\n
\n);\n\nTestimonial.propTypes = {\n customerId: PropTypes.string,\n // date: PropTypes.string,\n text: PropTypes.string,\n discipline: PropTypes.string,\n topicTitle: PropTypes.string,\n grade: PropTypes.string,\n};\n\nTestimonial.defaultProps = {\n customerId: undefined,\n // date: undefined,\n text: undefined,\n discipline: undefined,\n topicTitle: undefined,\n grade: undefined,\n};\n\nexport default Testimonial;\n","// @todo enable next eslint rules\n/* eslint-disable guard-for-in */\n/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable no-unused-expressions */\n/* eslint-disable react/destructuring-assignment */\n/* eslint-disable react/jsx-no-bind */\n/* eslint-disable react/no-access-state-in-setstate */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable react/prop-types */\n/* eslint-disable react/sort-comp */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Slider from 'react-slick';\nimport { Link } from 'gatsby';\n\nimport VerticalTextBlock from '../VerticalTextBlock';\nimport Testimonial from './Testimonial';\nimport tmData from './testimonials.json';\n\nimport './index.scss';\n\n\nconst settings = {\n dots: false,\n infinite: true,\n speed: 500,\n cssEase: 'ease',\n easing: 'swing',\n slidesToScroll: 1,\n slidesToShow: 3,\n responsive: [\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 769,\n settings: {\n dots: true,\n arrows: false,\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 480,\n settings: {\n dots: true,\n arrows: false,\n slidesToShow: 1,\n },\n },\n ],\n};\n\n/**\n * @todo split `Testimonials` component\n * React best practices recommends to not combine business logic and UI.\n * Business logic is how component should fetch `Calc` widget.\n * UI is how component should looks like.\n * Testimonials representation should be consist of:\n * * data fetcher HOC\n * * 2 different Containers:\n * * feed\n * * carousel\n */\nclass Testimonials extends Component {\n /**\n * @todo remove useless `_getAllTestimonials` method binding\n *\n * @todo use class properties to define initial state\n * @example\n * class Testimonials extends Component {\n * state = {\n * showTestimonialsSize: 8,\n * showBtn: true,\n * };\n * }\n */\n constructor(props) {\n super(props);\n\n this.state = {\n showTestimonialsSize: 10,\n showBtn: true,\n };\n\n this._getAllTestimonials = this._getAllTestimonials.bind(this);\n }\n\n /**\n * @todo change method position in class\n * Non React Component methods should be placed between lifecycle methods and render methods.\n *\n * @todo rename method name\n * There are no private methods in JS.\n */\n _getAllTestimonials = (arr, e) => {\n e.preventDefault();\n\n /**\n * @todo use setState with function\n * @see https://reactjs.org/docs/state-and-lifecycle.html#using-state-correctly\n * @example\n * this.setState(({ showTestimonialsSize }) =>\n * ({ showTestimonialsSize: showTestimonialsSize + 8 }));\n */\n this.setState({\n showTestimonialsSize: this.state.showTestimonialsSize + 10,\n });\n\n /**\n * Let's pretend I haven't seen this shit\n *\n * @todo use `setState` method\n * Component `state` is read only\n * @see https://reactjs.org/docs/components-and-props.html#props-are-read-only\n *\n * @todo use if..else statement\n * I don't get this:\n * @example\n * if (this.state.showTestimonialsSize > 30) {\n * this.state.showBtn = false;\n * } else {\n * true;\n * }\n */\n (this.state.showTestimonialsSize > arr.all.length - 10) ? this.state.showBtn = false : true;\n\n /**\n * @todo remove duplicate `preventDefault` method call\n */\n e.preventDefault();\n };\n\n\n /**\n * @todo move data fetching outside of Component class\n *\n * @todo use destructuring assignment\n */\n getTmData() {\n /**\n * @todo use const assignment for `nameOfPageArray`\n *\n * @todo remove useless `nameOfPageArray` prop validation\n * Property `nameOfPageArray` has default value `home`.\n */\n let nameOfPageArray = this.props.nameOfPageArray !== undefined ? this.props.nameOfPageArray : 'home';\n /**\n * @todo remove redundant variable `testimonialsData`\n */\n let testimonialsData = {};\n\n /**\n * @todo use if statement in combination with return instead of if...else if...else\n */\n if (typeof nameOfPageArray === 'object') {\n const allTms = {};\n /**\n * @todo remove redundant constant `newArr`\n */\n const newArr = [];\n\n /**\n * @todo add check on Array\n * `forEach` method is not defined in `object` type\n *\n * @todo use Array method `concat`\n * @example\n * allTms.customTmArray = nameOfPageArray.reduce((result, pageName) =>\n * result.concat(tmData[pageName]), []);\n */\n nameOfPageArray.forEach((i) => {\n newArr.push(...tmData[i]);\n });\n\n /**\n * @todo use `return` statement\n * At this point all data is ready, no need to go further\n * @example\n * return {\n * testimonialsData: allTms,\n * nameOfPageArray: 'customTmArray',\n * };\n */\n allTms.customTmArray = newArr;\n nameOfPageArray = 'customTmArray';\n testimonialsData = allTms;\n } else if (nameOfPageArray === 'all') {\n const allTestimonials = [];\n /**\n * @todo use Object method `keys` instead of for...in\n * @example\n * const allTestimonials = Object.keys(tmData).reduce((result, pageName) =>\n * result.concat(tmData[pageName]), []);\n */\n for (const i in tmData) {\n allTestimonials.push(...tmData[i]);\n }\n /**\n * @todo use `return` statement\n * At this point all data is ready, no need to go further\n * @example\n * return {\n * testimonialsData: {\n * all: allTestimonials,\n * },\n * nameOfPageArray,\n * };\n */\n testimonialsData.all = allTestimonials;\n } else {\n testimonialsData = tmData;\n }\n\n /**\n * @todo use as default return\n * @example\n * return {\n * testimonialsData: tmData,\n * nameOfPageArray,\n * };\n */\n return {\n testimonialsData,\n nameOfPageArray,\n };\n }\n\n /**\n * @todo add prop types\n *\n * @todo use template string vs string concatenation\n *\n * @todo use `classNames` utility for style class names combinations\n * @see https://github.com/JedWatson/classnames#classnames\n *\n * @todo split component render into conditional rendering of Components combination\n * @example\n * if (isOnlyContent)\n * return (\n * \n * {children}\n * \n * );\n *\n * return (\n * \n * \n * {children}\n * \n * \n * );\n *\n * @todo do not use array item index as Component key\n * @see https://reactjs.org/docs/lists-and-keys.html#keys\n *\n * @todo use destructuring to provide Testimonial data to Component\n * @example\n * \n *\n * @todo simplify heavy sorting algorithm by data preparation\n *\n * @todo remove useless `_getAllTestimonials` method binding\n */\n render() {\n const { showTestimonialsSize, showBtn } = this.state;\n const { isOnlyContent } = this.props;\n const { testimonialsData, nameOfPageArray } = this.getTmData();\n\n return (\n \n {!isOnlyContent ? (\n
\n \n\n
\n

\n What our\n
\n {' '}\n customers say\n

\n\n
\n \n {testimonialsData[nameOfPageArray]\n .map((testimonial, key) => (\n
\n \n
\n ))\n }\n
\n
\n\n
\n \n View all testimonials\n \n
\n\n
\n
\n ) : (\n
\n {testimonialsData[nameOfPageArray]\n .sort((a, b) => (new Date(b.date) - new Date(a.date)))\n .slice(0, showTestimonialsSize)\n .map((testimonial, key) => (\n \n ))\n }\n
\n {showBtn && (\n \n Show more testimonials\n \n )}\n
\n
\n )}\n \n );\n }\n}\n\n/**\n * @todo change `isOnlyContent` property type\n * Property type should be boolean for flag indicator\n *\n * @todo change `nameOfPageArray` property type\n * Property type should be `oneOfType` for union types\n * @example\n * const TestimonialPageNamePropType = PropTypes.oneOf([\n * 'home',\n * //...\n * ]);\n *\n * Testimonials.propTypes = {\n * // ...\n * nameOfPageArray: PropTypes.oneOfType([\n * TestimonialPageNamePropType,\n * PropTypes.arrayOf(TestimonialPageNamePropType)\n * ]),\n * };\n */\nTestimonials.propTypes = {\n isOnlyContent: PropTypes.bool,\n nameOfPageArray: PropTypes.string,\n};\n\nTestimonials.defaultProps = {\n isOnlyContent: false,\n nameOfPageArray: 'home',\n};\n\nexport default Testimonials;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.NextArrow = exports.PrevArrow = undefined;\n\nvar _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\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require(\"classnames\");\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar PrevArrow = exports.PrevArrow = function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n PrevArrow.prototype.clickHandler = function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n };\n\n PrevArrow.prototype.render = function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames2.default)(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow = void 0;\n\n if (this.props.prevArrow) {\n prevArrow = _react2.default.cloneElement(this.props.prevArrow, _extends({}, prevArrowProps, customProps));\n } else {\n prevArrow = _react2.default.createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n };\n\n return PrevArrow;\n}(_react2.default.PureComponent);\n\nvar NextArrow = exports.NextArrow = function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _possibleConstructorReturn(this, _React$PureComponent2.apply(this, arguments));\n }\n\n NextArrow.prototype.clickHandler = function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n };\n\n NextArrow.prototype.render = function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames2.default)(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow = void 0;\n\n if (this.props.nextArrow) {\n nextArrow = _react2.default.cloneElement(this.props.nextArrow, _extends({}, nextArrowProps, customProps));\n } else {\n nextArrow = _react2.default.createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n };\n\n return NextArrow;\n}(_react2.default.PureComponent);","\"use strict\";\n\nexports.__esModule = true;\n\nvar _slider = require(\"./slider\");\n\nvar _slider2 = _interopRequireDefault(_slider);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _slider2.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.Track = undefined;\n\nvar _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\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require(\"classnames\");\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // given specifications/props for a slide, fetch all the classes that need to be applied to the slide\n\n\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var slickCurrent = index === spec.currentSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n style.WebkitTransition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react2.default.Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react2.default.Children.forEach(spec.children, function (elem, index) {\n var child = void 0;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = _react2.default.createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_extends({}, spec, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_extends({}, spec, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push(_react2.default.cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames2.default)(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _extends({\n outline: \"none\"\n }, child.props.style || {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_extends({}, spec, {\n index: key\n }));\n preCloneSlides.push(_react2.default.cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames2.default)(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _extends({}, child.props.style || {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_extends({}, spec, {\n index: key\n }));\n postCloneSlides.push(_react2.default.cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames2.default)(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _extends({}, child.props.style || {}, childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = exports.Track = function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n function Track() {\n _classCallCheck(this, Track);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n Track.prototype.render = function render() {\n var slides = renderSlides(this.props);\n var _props = this.props,\n onMouseEnter = _props.onMouseEnter,\n onMouseOver = _props.onMouseOver,\n onMouseLeave = _props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return _react2.default.createElement(\"div\", _extends({\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n };\n\n return Track;\n}(_react2.default.PureComponent);","\"use strict\";\n\nexports.__esModule = true;\nexports.Dots = undefined;\n\nvar _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\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require(\"classnames\");\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = exports.Dots = function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n Dots.prototype.clickHandler = function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n };\n\n Dots.prototype.render = function render() {\n var _this2 = this;\n\n var dotCount = getDotCount({\n slideCount: this.props.slideCount,\n slidesToScroll: this.props.slidesToScroll,\n slidesToShow: this.props.slidesToShow,\n infinite: this.props.infinite\n }); // Apply join & split to Array to pre-fill it for IE8\n //\n // Credit: http://stackoverflow.com/a/13735425/1849458\n\n var _props = this.props,\n onMouseEnter = _props.onMouseEnter,\n onMouseOver = _props.onMouseOver,\n onMouseLeave = _props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = Array.apply(null, Array(dotCount + 1).join(\"0\").split(\"\")).map(function (x, i) {\n var leftBound = i * _this2.props.slidesToScroll;\n var rightBound = i * _this2.props.slidesToScroll + (_this2.props.slidesToScroll - 1);\n var className = (0, _classnames2.default)({\n \"slick-active\": _this2.props.currentSlide >= leftBound && _this2.props.currentSlide <= rightBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: _this2.props.slidesToScroll,\n currentSlide: _this2.props.currentSlide\n };\n\n var onClick = _this2.clickHandler.bind(_this2, dotOptions);\n\n return _react2.default.createElement(\"li\", {\n key: i,\n className: className\n }, _react2.default.cloneElement(_this2.props.customPaging(i), {\n onClick: onClick\n }));\n });\n return _react2.default.cloneElement(this.props.appendDots(dots), _extends({\n className: this.props.dotsClass\n }, mouseEvents));\n };\n\n return Dots;\n}(_react2.default.PureComponent);","import \"core-js/modules/es.array.reduce.js\";\n\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","var MediaQueryDispatch = require('./MediaQueryDispatch');\n\nmodule.exports = new MediaQueryDispatch();","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n constructor: QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup: function setup() {\n if (this.options.setup) {\n this.options.setup();\n }\n\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on: function on() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off: function off() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy: function destroy() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals: function equals(target) {\n return this.options === target || this.options.match === target;\n }\n};\nmodule.exports = QueryHandler;","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function isDimension(feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function obj2mq(obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature); // Add px to dimension features\n\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n\n if (index < features.length - 1) {\n mq += ' and ';\n }\n });\n return mq;\n};\n\nvar json2mq = function json2mq(query) {\n var mq = '';\n\n if (typeof query === 'string') {\n return query;\n } // Handling array of media queries\n\n\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n\n if (index < query.length - 1) {\n mq += ', ';\n }\n });\n return mq;\n } // Handling single media query\n\n\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","\"use strict\";\n\nexports.__esModule = true;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0\n};\nexports.default = initialState;","\"use strict\";\n\nexports.__esModule = true;\nexports.InnerSlider = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _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\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _initialState = require(\"./initial-state\");\n\nvar _initialState2 = _interopRequireDefault(_initialState);\n\nvar _lodash = require(\"lodash.debounce\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _classnames = require(\"classnames\");\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = require(\"resize-observer-polyfill\");\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar InnerSlider = exports.InnerSlider = function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n function InnerSlider(props) {\n _classCallCheck(this, InnerSlider);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this.listRefHandler = function (ref) {\n return _this.list = ref;\n };\n\n _this.trackRefHandler = function (ref) {\n return _this.track = ref;\n };\n\n _this.adaptHeight = function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\" + _this.state.currentSlide + \"\\\"]\");\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n };\n\n _this.componentWillMount = function () {\n _this.ssrInit();\n\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_extends({}, _this.props, _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n };\n\n _this.componentDidMount = function () {\n var spec = _extends({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill2.default(function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n }); // To support server-side rendering\n\n if (!window) {\n return;\n }\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n };\n\n _this.componentWillUnmount = function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n };\n\n _this.componentWillReceiveProps = function (nextProps) {\n var spec = _extends({\n listRef: _this.list,\n trackRef: _this.track\n }, nextProps, _this.state);\n\n var setTrackStyle = false;\n\n for (var _iterator = Object.keys(_this.props), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var key = _ref;\n\n if (!nextProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(nextProps[key]) === \"object\" || typeof nextProps[key] === \"function\") {\n continue;\n }\n\n if (nextProps[key] !== _this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react2.default.Children.count(nextProps.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react2.default.Children.count(nextProps.children) - nextProps.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (nextProps.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n };\n\n _this.componentDidUpdate = function () {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_extends({}, _this.props, _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n };\n\n _this.onWindowResized = function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash2.default)(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n };\n\n _this.resizeWindow = function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!_reactDom2.default.findDOMNode(_this.track)) return;\n\n var spec = _extends({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props, _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n };\n\n _this.updateState = function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _extends({}, spec, updatedState, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _extends({}, spec, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react2.default.Children.count(_this.props.children) !== _react2.default.Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n };\n\n _this.ssrInit = function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_extends({}, _this.props, _this.state, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_extends({}, _this.props, _this.state, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i2 = 0; _i2 < postClones; _i2++) {\n _trackWidth += childrenWidths[_i2];\n }\n\n for (var _i3 = 0; _i3 < _this.state.currentSlide; _i3++) {\n _trackLeft += childrenWidths[_i3];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = childrenWidths[_this.state.currentSlide] + \"px\";\n _trackStyle.left = \"calc(\" + _trackStyle.left + \" + (100% - \" + currentWidth + \") / 2 ) \";\n }\n\n _this.setState({\n trackStyle: _trackStyle\n });\n\n return;\n }\n\n var childrenCount = _react2.default.Children.count(_this.props.children);\n\n var spec = _extends({}, _this.props, _this.state, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n\n _this.setState({\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n });\n };\n\n _this.checkImagesLoad = function () {\n var images = document.querySelectorAll(\".slick-slide img\");\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n };\n\n _this.progressiveLazyLoad = function () {\n var slidesToLoad = [];\n\n var spec = _extends({}, _this.props, _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n };\n\n _this.slideHandler = function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_extends({\n index: index\n }, _this.props, _this.state, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n _this.setState(state, function () {\n asNavFor && asNavFor.innerSlider.state.currentSlide !== currentSlide && asNavFor.innerSlider.slideHandler(index);\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n };\n\n _this.changeSlide = function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _extends({}, _this.props, _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n };\n\n _this.clickHandler = function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n };\n\n _this.keyHandler = function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n };\n\n _this.selectHandler = function (options) {\n _this.changeSlide(options);\n };\n\n _this.disableBodyScroll = function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n };\n\n _this.enableBodyScroll = function () {\n window.ontouchmove = null;\n };\n\n _this.swipeStart = function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n };\n\n _this.swipeMove = function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _extends({}, _this.props, _this.state, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n };\n\n _this.swipeEnd = function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _extends({}, _this.props, _this.state, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n };\n\n _this.slickPrev = function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n };\n\n _this.slickNext = function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n };\n\n _this.slickGoTo = function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n };\n\n _this.play = function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_extends({}, _this.props, _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n };\n\n _this.autoPlay = function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n };\n\n _this.pause = function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n };\n\n _this.onDotsOver = function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n };\n\n _this.onDotsLeave = function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n };\n\n _this.onTrackOver = function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n };\n\n _this.onTrackLeave = function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n };\n\n _this.onSlideFocus = function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n };\n\n _this.onSlideBlur = function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n };\n\n _this.render = function () {\n var className = (0, _classnames2.default)(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _extends({}, _this.props, _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _extends({}, trackProps, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _extends({}, dotProps, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = _react2.default.createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = _react2.default.createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = _react2.default.createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _extends({}, verticalHeightStyle, centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.swipeEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\"\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return _react2.default.createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", _react2.default.createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), _react2.default.createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n };\n\n _this.list = null;\n _this.track = null;\n _this.state = _extends({}, _initialState2.default, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react2.default.Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n return _this;\n }\n\n return InnerSlider;\n}(_react2.default.Component);","var QueryHandler = require('./QueryHandler');\n\nvar each = require('./Util').each;\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\n\n\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n var self = this;\n\n this.listener = function (mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n constuctor: MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler: function addHandler(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler: function removeHandler(handler) {\n var handlers = this.handlers;\n each(handlers, function (h, i) {\n if (h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i, 1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches: function matches() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear: function clear() {\n each(this.handlers, function (handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess: function assess() {\n var action = this.matches() ? 'on' : 'off';\n each(this.handlers, function (handler) {\n handler[action]();\n });\n }\n};\nmodule.exports = MediaQuery;","var MediaQuery = require('./MediaQuery');\n\nvar Util = require('./Util');\n\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\n\nfunction MediaQueryDispatch() {\n if (!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n constructor: MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register: function register(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if (!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n } //normalise to object in an array\n\n\n if (isFunction(options)) {\n options = {\n match: options\n };\n }\n\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (handler) {\n if (isFunction(handler)) {\n handler = {\n match: handler\n };\n }\n\n queries[q].addHandler(handler);\n });\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister: function unregister(q, handler) {\n var query = this.queries[q];\n\n if (query) {\n if (handler) {\n query.removeHandler(handler);\n } else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\nmodule.exports = MediaQueryDispatch;","\"use strict\";\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nexports.__esModule = true;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = undefined;\n\nvar _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\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react2.default.Children.count(spec.children);\n\n var listWidth = Math.ceil(getWidth(_reactDom2.default.findDOMNode(spec.listRef)));\n var trackWidth = Math.ceil(getWidth(_reactDom2.default.findDOMNode(spec.trackRef)));\n var slideWidth = void 0;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = _reactDom2.default.findDOMNode(spec.listRef) && getHeight(_reactDom2.default.findDOMNode(spec.listRef).querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides({\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }, spec);\n lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoadedList = spec.lazyLoadedList,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide = void 0,\n animationLeft = void 0,\n finalLeft = void 0;\n var state = {},\n nextState = {};\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n animationLeft = getTrackLeft(_extends({}, spec, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_extends({}, spec, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides(_extends({}, spec, {\n currentSlide: animationSlide\n })));\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_extends({}, spec, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_extends({}, spec, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_extends({}, spec, {\n left: finalLeft\n })),\n swipeLeft: null\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n\n if (infinite) {\n var direction = siblingDirection(_extends({}, spec, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n\n if (targetSlide === options.currentSlide) {\n return null;\n }\n }\n\n return targetSlide;\n};\n\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && e.preventDefault();\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n var swipeLeft = void 0,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && swipeDirection === \"right\" || currentSlide + 1 >= dotCount && swipeDirection === \"left\" || !canGoNext(spec) && swipeDirection === \"left\") {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _extends({}, state, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_extends({}, spec, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n e.preventDefault();\n }\n\n return state;\n};\n\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n currentSlide = spec.currentSlide,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe;\n\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount = void 0,\n newSlide = void 0;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = currentSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = currentSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = currentSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_extends({}, spec, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide = void 0;\n\n var slickList = _reactDom2.default.findDOMNode(spec.listRef);\n\n var slides = slickList.querySelectorAll(\".slick-slide\");\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth = void 0,\n trackHeight = void 0;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _extends({}, style, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n\n var trackElem = _reactDom2.default.findDOMNode(trackRef);\n\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding; // returns no of slides on the right of active slide\n\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding; // returns no of slides on the left of active slide\n\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};"],"sourceRoot":""}