react-slick.js.map 217 KB
{"version":3,"sources":["webpack://Slider/webpack/universalModuleDefinition","webpack://Slider/webpack/bootstrap","webpack://Slider/./src/index.js","webpack://Slider/./src/slider.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/extends.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/objectSpread2.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/defineProperty.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/classCallCheck.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/createClass.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/assertThisInitialized.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/inherits.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/setPrototypeOf.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/createSuper.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/getPrototypeOf.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/possibleConstructorReturn.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/typeof.js","webpack://Slider/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://Slider/./src/inner-slider.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/objectWithoutProperties.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://Slider/./src/initial-state.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/debounce.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/isObject.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/now.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_root.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_freeGlobal.js","webpack://Slider/(webpack)/buildin/global.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/toNumber.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/isSymbol.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_baseGetTag.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_Symbol.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_getRawTag.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_objectToString.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/isObjectLike.js","webpack://Slider/./node_modules/_classnames@2.2.6@classnames/index.js","webpack://Slider/./src/utils/innerSliderUtils.js","webpack://Slider/./src/track.js","webpack://Slider/./src/dots.js","webpack://Slider/./src/arrows.js","webpack://Slider/./node_modules/_resize-observer-polyfill@1.5.1@resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://Slider/./node_modules/_json2mq@0.2.0@json2mq/index.js","webpack://Slider/./node_modules/_string-convert@0.2.1@string-convert/camel2hyphen.js","webpack://Slider/./src/default-props.js"],"names":["Slider","props","ref","innerSlider","slickPrev","slickNext","slide","dontAnimate","slickGoTo","pause","autoPlay","state","breakpoint","_responsiveMediaHandlers","query","handler","mql","window","matchMedia","listener","matches","addListener","push","responsive","breakpoints","map","breakpt","sort","x","y","forEach","index","bQuery","json2mq","minWidth","maxWidth","canUseDOM","media","setState","slice","obj","removeListener","settings","newProps","filter","resp","defaultProps","centerMode","slidesToScroll","process","console","warn","fade","slidesToShow","children","React","Children","toArray","child","trim","variableWidth","rows","slidesPerRow","newChildren","currentWidth","i","length","newSlide","j","row","k","style","width","cloneElement","key","tabIndex","display","className","unslick","innerSliderRefHandler","Component","InnerSlider","list","track","adaptiveHeight","elem","querySelector","currentSlide","height","getHeight","onInit","lazyLoad","slidesToLoad","getOnDemandLazySlides","prevState","lazyLoadedList","concat","onLazyLoad","spec","listRef","trackRef","updateState","adaptHeight","autoplay","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","ResizeObserver","animating","onWindowResized","callbackTimers","setTimeout","speed","observe","Array","prototype","call","document","querySelectorAll","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","addEventListener","attachEvent","animationEndCallback","clearTimeout","clearInterval","timer","removeEventListener","detachEvent","autoplayTimer","disconnect","prevProps","checkImagesLoad","onReInit","setTrackStyle","didPropsChange","count","changeSlide","message","autoplaySpeed","debouncedResize","cancel","debounce","resizeWindow","isTrackMounted","Boolean","node","callback","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","left","trackStyle","getTrackCSS","trackWidth","trackLeft","childrenWidths","preClones","getPreClones","slideCount","postClones","getPostClones","childrenCount","slideWidth","images","imagesCount","loadedCount","image","onclick","parentNode","focus","prevClickHandler","onload","onerror","onLazyLoadError","indexOf","asNavFor","beforeChange","afterChange","slideHandler","useCSS","nextState","value","waitForAnimate","asNavForIndex","firstBatch","options","targetSlide","focusOnSelect","nodes","e","clickable","stopPropagation","preventDefault","dir","keyHandler","accessibility","rtl","event","returnValue","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipe","draggable","swipeMove","swipeEnd","triggerSlideHandler","undefined","enableBodyScroll","Number","isNaN","nextIndex","canGoNext","playType","autoplaying","play","pauseType","classnames","vertical","trackProps","extractObject","pauseOnHover","onMouseEnter","onTrackOver","onMouseLeave","onTrackLeave","onMouseOver","selectHandler","dots","dotProps","pauseOnDotsHover","clickHandler","onDotsLeave","onDotsOver","prevArrow","nextArrow","arrowProps","arrows","verticalHeightStyle","listHeight","centerPaddingStyle","padding","centerPadding","listStyle","touchMove","listProps","onClick","onMouseDown","onMouseMove","dragging","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","trackRefHandler","initialState","initialSlide","ssrState","ssrInit","Object","keys","hasOwnProperty","currentDirection","currentLeft","direction","edgeDragged","initialized","listWidth","scrolling","slideHeight","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","clamp","number","lowerBound","upperBound","Math","max","min","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","getRequiredLazySlides","requiredSlides","lazySlidesOnLeft","lazySlidesOnRight","floor","parseInt","getWidth","offsetWidth","offsetHeight","getSwipeDirection","xDist","yDist","r","swipeAngle","atan2","round","PI","abs","canGo","infinite","newObject","listNode","ceil","trackNode","centerPaddingAdj","animationSlide","finalSlide","animationLeft","finalLeft","getTrackAnimateCSS","indexOffset","previousInt","slideOffset","unevenOffset","previousTargetSlide","siblingDirection","target","tagName","match","keyCode","type","touches","pageX","clientX","pageY","clientY","swipeToSlide","edgeFriction","onEdge","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","activeSlide","getSlideCount","checkNavigable","getNavigableIndexes","counter","indexes","navigables","prevNavigable","n","centerOffset","swipedSlide","slickList","slides","from","every","offsetLeft","offsetTop","currentIndex","slidesTraversed","dataset","checkSpecKeys","keysArray","reduce","error","trackHeight","trackChildren","getTotalSlides","opacity","transition","WebkitTransition","useTransform","WebkitTransform","transform","msTransform","marginLeft","marginTop","cssEase","verticalOffset","slidesToOffset","targetSlideIndex","trackElem","childNodes","slidesOnRight","slidesOnLeft","right","createElement","getSlideClasses","slickActive","slickCenter","slickCloned","focusedSlide","slickCurrent","getSlideStyle","position","top","getKey","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childOnClickOptions","childStyle","slideClass","slideClasses","outline","preCloneNo","reverse","Track","mouseEvents","handleRef","PureComponent","getDotCount","Dots","_rightBound","rightBound","_leftBound","leftBound","dotOptions","bind","customPaging","appendDots","dotsClass","PrevArrow","prevClasses","prevHandler","prevArrowProps","customProps","NextArrow","nextClasses","nextHandler","nextArrowProps","easing"],"mappings":"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AS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA,iBAAiB,mBAAO,CAAC,EAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;ACRA;AACA;;AAEA;;;;;;;;ACHA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA,eAAe,mBAAO,CAAC,EAAY;AACnC,eAAe,mBAAO,CAAC,EAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjEA,iBAAiB,mBAAO,CAAC,EAAe;AACxC,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA,aAAa,mBAAO,CAAC,EAAW;AAChC,gBAAgB,mBAAO,CAAC,EAAc;AACtC,qBAAqB,mBAAO,CAAC,EAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,WAAW,mBAAO,CAAC,EAAS;;AAE5B;AACA;;AAEA;;;;;;;ACLA,aAAa,mBAAO,CAAC,EAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA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AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA,iCAAiC,YAAY;AAC7C,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC,6BAA6B,EAAE,aAAa;AAC5G,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAiE;AACnG;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8CAA8C;AAC9C,CAAC;AACD;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAA2C;AAC7E;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,eAAe,yBAAyB;AACxC;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;AC/5BrB,mBAAmB,mBAAO,CAAC,EAA6B;;AAExD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,yB;;;;;;AClDA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,8B;;;;;;;ACRA;AAAA;AAAA;AAAA;AAEA,IAAIrY,YAAY,GAAG;AACjB4J,eAAa,EAAE,IADE;AAEjBtH,gBAAc,EAAE,KAFC;AAGjBoG,aAAW,EAAE,IAHI;AAIjBqQ,YAAU,EAAE,oBAAAjN,IAAI;AAAA,wBAAI;AAAI,WAAK,EAAE;AAAEhK,eAAO,EAAE;AAAX;AAAX,OAAkCgK,IAAlC,CAAJ;AAAA,GAJC;AAKjBS,QAAM,EAAE,IALS;AAMjB9I,UAAQ,EAAE,KANO;AAOjBwC,eAAa,EAAE,IAPE;AAQjBwC,cAAY,EAAE,IARG;AASjBxI,YAAU,EAAE,KATK;AAUjB2M,eAAa,EAAE,MAVE;AAWjB7K,WAAS,EAAE,EAXM;AAYjBoU,SAAO,EAAE,MAZQ;AAajB2C,cAAY,EAAE,sBAAA3X,CAAC;AAAA,wBAAI,2EAASA,CAAC,GAAG,CAAb,CAAJ;AAAA,GAbE;AAcjB2K,MAAI,EAAE,KAdW;AAejBkN,WAAS,EAAE,YAfM;AAgBjB3O,WAAS,EAAE,IAhBM;AAiBjBqP,QAAM,EAAE,QAjBS;AAkBjB1G,cAAY,EAAE,IAlBG;AAmBjB1S,MAAI,EAAE,KAnBW;AAoBjB8I,eAAa,EAAE,KApBE;AAqBjBgI,UAAQ,EAAE,IArBO;AAsBjBrD,cAAY,EAAE,CAtBG;AAuBjBlL,UAAQ,EAAE,IAvBO;AAwBjBwJ,WAAS,EAAE,IAxBM;AAyBjB4G,QAAM,EAAE,IAzBS;AA0BjBrQ,QAAM,EAAE,IA1BS;AA2BjB0F,iBAAe,EAAE,IA3BA;AA4BjB3C,UAAQ,EAAE,IA5BO;AA6BjBqG,kBAAgB,EAAE,KA7BD;AA8BjBrH,cAAY,EAAE,KA9BG;AA+BjB4G,cAAY,EAAE,IA/BG;AAgCjBa,WAAS,EAAE,IAhCM;AAiCjB3N,YAAU,EAAE,IAjCK;AAkCjBsC,MAAI,EAAE,CAlCW;AAmCjB8I,KAAG,EAAE,KAnCY;AAoCjBrM,OAAK,EAAE,KApCU;AAqCjBwD,cAAY,EAAE,CArCG;AAsCjBd,gBAAc,EAAE,CAtCC;AAuCjBK,cAAY,EAAE,CAvCG;AAwCjB4D,OAAK,EAAE,GAxCU;AAyCjBiG,OAAK,EAAE,IAzCU;AA0CjB8I,YAAU,EAAE,IA1CK;AA2CjBH,cAAY,EAAE,KA3CG;AA4CjBjG,WAAS,EAAE,IA5CM;AA6CjB8G,gBAAc,EAAE,CA7CC;AA8CjBhL,QAAM,EAAE,IA9CS;AA+CjBiN,cAAY,EAAE,IA/CG;AAgDjB/U,eAAa,EAAE,KAhDE;AAiDjBsK,UAAQ,EAAE,KAjDO;AAkDjBrC,gBAAc,EAAE;AAlDC,CAAnB;AAqDe/I,2EAAf,E","file":"react-slick.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Slider\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Slider\"] = factory(root[\"React\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__15__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import Slider from \"./slider\";\n\nexport default Slider;\n","\"use strict\";\n\nimport React from \"react\";\nimport { InnerSlider } from \"./inner-slider\";\nimport json2mq from \"json2mq\";\nimport defaultProps from \"./default-props\";\nimport { canUseDOM } from \"./utils/innerSliderUtils\";\n\nexport default class Slider extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      breakpoint: null\n    };\n    this._responsiveMediaHandlers = [];\n  }\n\n  innerSliderRefHandler = ref => (this.innerSlider = ref);\n\n  media(query, handler) {\n    // javascript handler for  css media query\n    const mql = window.matchMedia(query);\n    const listener = ({ matches }) => {\n      if (matches) {\n        handler();\n      }\n    };\n    mql.addListener(listener);\n    listener(mql);\n    this._responsiveMediaHandlers.push({ mql, query, listener });\n  }\n\n  // handles responsive breakpoints\n  componentDidMount() {\n    // performance monitoring\n    //if (process.env.NODE_ENV !== 'production') {\n    //const { whyDidYouUpdate } = require('why-did-you-update')\n    //whyDidYouUpdate(React)\n    //}\n    if (this.props.responsive) {\n      let breakpoints = this.props.responsive.map(\n        breakpt => breakpt.breakpoint\n      );\n      // sort them in increasing order of their numerical value\n      breakpoints.sort((x, y) => x - y);\n\n      breakpoints.forEach((breakpoint, index) => {\n        // media query for each breakpoint\n        let bQuery;\n        if (index === 0) {\n          bQuery = json2mq({ minWidth: 0, maxWidth: breakpoint });\n        } else {\n          bQuery = json2mq({\n            minWidth: breakpoints[index - 1] + 1,\n            maxWidth: breakpoint\n          });\n        }\n        // when not using server side rendering\n        canUseDOM() &&\n          this.media(bQuery, () => {\n            this.setState({ breakpoint: breakpoint });\n          });\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      let query = json2mq({ minWidth: breakpoints.slice(-1)[0] });\n\n      canUseDOM() &&\n        this.media(query, () => {\n          this.setState({ breakpoint: null });\n        });\n    }\n  }\n\n  componentWillUnmount() {\n    this._responsiveMediaHandlers.forEach(function(obj) {\n      obj.mql.removeListener(obj.listener);\n    });\n  }\n\n  slickPrev = () => this.innerSlider.slickPrev();\n\n  slickNext = () => this.innerSlider.slickNext();\n\n  slickGoTo = (slide, dontAnimate = false) =>\n    this.innerSlider.slickGoTo(slide, dontAnimate);\n\n  slickPause = () => this.innerSlider.pause(\"paused\");\n\n  slickPlay = () => this.innerSlider.autoPlay(\"play\");\n\n  render() {\n    var settings;\n    var newProps;\n    if (this.state.breakpoint) {\n      newProps = this.props.responsive.filter(\n        resp => resp.breakpoint === this.state.breakpoint\n      );\n      settings =\n        newProps[0].settings === \"unslick\"\n          ? \"unslick\"\n          : { ...defaultProps, ...this.props, ...newProps[0].settings };\n    } else {\n      settings = { ...defaultProps, ...this.props };\n    }\n\n    // force scrolling by one if centerMode is on\n    if (settings.centerMode) {\n      if (\n        settings.slidesToScroll > 1 &&\n        process.env.NODE_ENV !== \"production\"\n      ) {\n        console.warn(\n          `slidesToScroll should be equal to 1 in centerMode, you are using ${settings.slidesToScroll}`\n        );\n      }\n      settings.slidesToScroll = 1;\n    }\n    // force showing one slide and scrolling by one if the fade mode is on\n    if (settings.fade) {\n      if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n        console.warn(\n          `slidesToShow should be equal to 1 when fade is true, you're using ${settings.slidesToShow}`\n        );\n      }\n      if (\n        settings.slidesToScroll > 1 &&\n        process.env.NODE_ENV !== \"production\"\n      ) {\n        console.warn(\n          `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    }\n\n    // makes sure that children is an array, even when there is only 1 child\n    let children = React.Children.toArray(this.props.children);\n\n    // 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    children = children.filter(child => {\n      if (typeof child === \"string\") {\n        return !!child.trim();\n      }\n      return !!child;\n    });\n\n    // rows and slidesPerRow logic is handled here\n    if (\n      settings.variableWidth &&\n      (settings.rows > 1 || settings.slidesPerRow > 1)\n    ) {\n      console.warn(\n        `variableWidth is not supported in case of rows > 1 or slidesPerRow > 1`\n      );\n      settings.variableWidth = false;\n    }\n    let newChildren = [];\n    let currentWidth = null;\n    for (\n      let i = 0;\n      i < children.length;\n      i += settings.rows * settings.slidesPerRow\n    ) {\n      let newSlide = [];\n      for (\n        let j = i;\n        j < i + settings.rows * settings.slidesPerRow;\n        j += settings.slidesPerRow\n      ) {\n        let row = [];\n        for (let 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          if (k >= children.length) break;\n          row.push(\n            React.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(<div key={10 * i + j}>{row}</div>);\n      }\n      if (settings.variableWidth) {\n        newChildren.push(\n          <div key={i} style={{ width: currentWidth }}>\n            {newSlide}\n          </div>\n        );\n      } else {\n        newChildren.push(<div key={i}>{newSlide}</div>);\n      }\n    }\n\n    if (settings === \"unslick\") {\n      const className = \"regular slider \" + (this.props.className || \"\");\n      return <div className={className}>{children}</div>;\n    } else if (newChildren.length <= settings.slidesToShow) {\n      settings.unslick = true;\n    }\n    return (\n      <InnerSlider\n        style={this.props.style}\n        ref={this.innerSliderRefHandler}\n        {...settings}\n      >\n        {newChildren}\n      </InnerSlider>\n    );\n  }\n}\n","function _extends() {\n  module.exports = _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","var defineProperty = require(\"./defineProperty\");\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectSpread2;","function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nmodule.exports = _defineProperty;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;","var setPrototypeOf = require(\"./setPrototypeOf\");\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\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return possibleConstructorReturn(this, result);\n  };\n}\n\nmodule.exports = _createSuper;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nmodule.exports = _isNativeReflectConstruct;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;","module.exports = __WEBPACK_EXTERNAL_MODULE__15__;","\"use strict\";\n\nimport React from \"react\";\nimport initialState from \"./initial-state\";\nimport debounce from \"lodash/debounce\";\nimport classnames from \"classnames\";\nimport {\n  getOnDemandLazySlides,\n  extractObject,\n  initializedState,\n  getHeight,\n  canGoNext,\n  slideHandler,\n  changeSlide,\n  keyHandler,\n  swipeStart,\n  swipeMove,\n  swipeEnd,\n  getPreClones,\n  getPostClones,\n  getTrackLeft,\n  getTrackCSS\n} from \"./utils/innerSliderUtils\";\n\nimport { Track } from \"./track\";\nimport { Dots } from \"./dots\";\nimport { PrevArrow, NextArrow } from \"./arrows\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nexport class InnerSlider extends React.Component {\n  constructor(props) {\n    super(props);\n    this.list = null;\n    this.track = null;\n    this.state = {\n      ...initialState,\n      currentSlide: this.props.initialSlide,\n      slideCount: React.Children.count(this.props.children)\n    };\n    this.callbackTimers = [];\n    this.clickable = true;\n    this.debouncedResize = null;\n    const ssrState = this.ssrInit();\n    this.state = { ...this.state, ...ssrState };\n  }\n  listRefHandler = ref => (this.list = ref);\n  trackRefHandler = ref => (this.track = ref);\n  adaptHeight = () => {\n    if (this.props.adaptiveHeight && this.list) {\n      const elem = this.list.querySelector(\n        `[data-index=\"${this.state.currentSlide}\"]`\n      );\n      this.list.style.height = getHeight(elem) + \"px\";\n    }\n  };\n  componentDidMount = () => {\n    this.props.onInit && this.props.onInit();\n    if (this.props.lazyLoad) {\n      let slidesToLoad = getOnDemandLazySlides({\n        ...this.props,\n        ...this.state\n      });\n      if (slidesToLoad.length > 0) {\n        this.setState(prevState => ({\n          lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n        }));\n        if (this.props.onLazyLoad) {\n          this.props.onLazyLoad(slidesToLoad);\n        }\n      }\n    }\n    let spec = { listRef: this.list, trackRef: this.track, ...this.props };\n    this.updateState(spec, true, () => {\n      this.adaptHeight();\n      this.props.autoplay && this.autoPlay(\"update\");\n    });\n    if (this.props.lazyLoad === \"progressive\") {\n      this.lazyLoadTimer = setInterval(this.progressiveLazyLoad, 1000);\n    }\n    this.ro = new ResizeObserver(() => {\n      if (this.state.animating) {\n        this.onWindowResized(false); // don't set trackStyle hence don't break animation\n        this.callbackTimers.push(\n          setTimeout(() => this.onWindowResized(), this.props.speed)\n        );\n      } else {\n        this.onWindowResized();\n      }\n    });\n    this.ro.observe(this.list);\n    Array.prototype.forEach.call(\n      document.querySelectorAll(\".slick-slide\"),\n      slide => {\n        slide.onfocus = this.props.pauseOnFocus ? this.onSlideFocus : null;\n        slide.onblur = this.props.pauseOnFocus ? this.onSlideBlur : null;\n      }\n    );\n    if (window.addEventListener) {\n      window.addEventListener(\"resize\", this.onWindowResized);\n    } else {\n      window.attachEvent(\"onresize\", this.onWindowResized);\n    }\n  };\n  componentWillUnmount = () => {\n    if (this.animationEndCallback) {\n      clearTimeout(this.animationEndCallback);\n    }\n    if (this.lazyLoadTimer) {\n      clearInterval(this.lazyLoadTimer);\n    }\n    if (this.callbackTimers.length) {\n      this.callbackTimers.forEach(timer => clearTimeout(timer));\n      this.callbackTimers = [];\n    }\n    if (window.addEventListener) {\n      window.removeEventListener(\"resize\", this.onWindowResized);\n    } else {\n      window.detachEvent(\"onresize\", this.onWindowResized);\n    }\n    if (this.autoplayTimer) {\n      clearInterval(this.autoplayTimer);\n    }\n    this.ro.disconnect();\n  };\n\n  didPropsChange(prevProps) {\n    let setTrackStyle = false;\n    for (let key of Object.keys(this.props)) {\n      // eslint-disable-next-line no-prototype-builtins\n      if (!prevProps.hasOwnProperty(key)) {\n        setTrackStyle = true;\n        break;\n      }\n      if (\n        typeof prevProps[key] === \"object\" ||\n        typeof prevProps[key] === \"function\"\n      ) {\n        continue;\n      }\n      if (prevProps[key] !== this.props[key]) {\n        setTrackStyle = true;\n        break;\n      }\n    }\n    return (\n      setTrackStyle ||\n      React.Children.count(this.props.children) !==\n        React.Children.count(prevProps.children)\n    );\n  }\n\n  componentDidUpdate = prevProps => {\n    this.checkImagesLoad();\n    this.props.onReInit && this.props.onReInit();\n    if (this.props.lazyLoad) {\n      let slidesToLoad = getOnDemandLazySlides({\n        ...this.props,\n        ...this.state\n      });\n      if (slidesToLoad.length > 0) {\n        this.setState(prevState => ({\n          lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n        }));\n        if (this.props.onLazyLoad) {\n          this.props.onLazyLoad(slidesToLoad);\n        }\n      }\n    }\n    // if (this.props.onLazyLoad) {\n    //   this.props.onLazyLoad([leftMostSlide])\n    // }\n    this.adaptHeight();\n    let spec = {\n      listRef: this.list,\n      trackRef: this.track,\n      ...this.props,\n      ...this.state\n    };\n    const setTrackStyle = this.didPropsChange(prevProps);\n    setTrackStyle &&\n      this.updateState(spec, setTrackStyle, () => {\n        if (\n          this.state.currentSlide >= React.Children.count(this.props.children)\n        ) {\n          this.changeSlide({\n            message: \"index\",\n            index:\n              React.Children.count(this.props.children) -\n              this.props.slidesToShow,\n            currentSlide: this.state.currentSlide\n          });\n        }\n        if (\n          prevProps.autoplay !== this.props.autoplay ||\n          prevProps.autoplaySpeed !== this.props.autoplaySpeed\n        ) {\n          if (this.props.autoplay) {\n            this.autoPlay(\"update\");\n          } else {\n            this.pause(\"paused\");\n          }\n        }\n      });\n  };\n  onWindowResized = setTrackStyle => {\n    if (this.debouncedResize) this.debouncedResize.cancel();\n    this.debouncedResize = debounce(() => this.resizeWindow(setTrackStyle), 50);\n    this.debouncedResize();\n  };\n  resizeWindow = (setTrackStyle = true) => {\n    const isTrackMounted = Boolean(this.track && this.track.node);\n    // prevent warning: setting state on unmounted component (server side rendering)\n    if (!isTrackMounted) return;\n    let spec = {\n      listRef: this.list,\n      trackRef: this.track,\n      ...this.props,\n      ...this.state\n    };\n    this.updateState(spec, setTrackStyle, () => {\n      if (this.props.autoplay) this.autoPlay(\"update\");\n      else this.pause(\"paused\");\n    });\n    // animating state should be cleared while resizing, otherwise autoplay stops working\n    this.setState({\n      animating: false\n    });\n    clearTimeout(this.animationEndCallback);\n    delete this.animationEndCallback;\n  };\n  updateState = (spec, setTrackStyle, callback) => {\n    let updatedState = initializedState(spec);\n    spec = { ...spec, ...updatedState, slideIndex: updatedState.currentSlide };\n    let targetLeft = getTrackLeft(spec);\n    spec = { ...spec, left: targetLeft };\n    let trackStyle = getTrackCSS(spec);\n    if (\n      setTrackStyle ||\n      React.Children.count(this.props.children) !==\n        React.Children.count(spec.children)\n    ) {\n      updatedState[\"trackStyle\"] = trackStyle;\n    }\n    this.setState(updatedState, callback);\n  };\n\n  ssrInit = () => {\n    if (this.props.variableWidth) {\n      let trackWidth = 0,\n        trackLeft = 0;\n      let childrenWidths = [];\n      let preClones = getPreClones({\n        ...this.props,\n        ...this.state,\n        slideCount: this.props.children.length\n      });\n      let postClones = getPostClones({\n        ...this.props,\n        ...this.state,\n        slideCount: this.props.children.length\n      });\n      this.props.children.forEach(child => {\n        childrenWidths.push(child.props.style.width);\n        trackWidth += child.props.style.width;\n      });\n      for (let i = 0; i < preClones; i++) {\n        trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n        trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n      }\n      for (let i = 0; i < postClones; i++) {\n        trackWidth += childrenWidths[i];\n      }\n      for (let i = 0; i < this.state.currentSlide; i++) {\n        trackLeft += childrenWidths[i];\n      }\n      let trackStyle = {\n        width: trackWidth + \"px\",\n        left: -trackLeft + \"px\"\n      };\n      if (this.props.centerMode) {\n        let currentWidth = `${childrenWidths[this.state.currentSlide]}px`;\n        trackStyle.left = `calc(${trackStyle.left} + (100% - ${currentWidth}) / 2 ) `;\n      }\n      return {\n        trackStyle\n      };\n    }\n    let childrenCount = React.Children.count(this.props.children);\n    const spec = { ...this.props, ...this.state, slideCount: childrenCount };\n    let slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n    let trackWidth = (100 / this.props.slidesToShow) * slideCount;\n    let slideWidth = 100 / slideCount;\n    let trackLeft =\n      (-slideWidth *\n        (getPreClones(spec) + this.state.currentSlide) *\n        trackWidth) /\n      100;\n    if (this.props.centerMode) {\n      trackLeft += (100 - (slideWidth * trackWidth) / 100) / 2;\n    }\n    let trackStyle = {\n      width: trackWidth + \"%\",\n      left: trackLeft + \"%\"\n    };\n    return {\n      slideWidth: slideWidth + \"%\",\n      trackStyle: trackStyle\n    };\n  };\n  checkImagesLoad = () => {\n    let images = this.list.querySelectorAll(\".slick-slide img\");\n    let imagesCount = images.length,\n      loadedCount = 0;\n    Array.prototype.forEach.call(images, image => {\n      const handler = () =>\n        ++loadedCount && loadedCount >= imagesCount && this.onWindowResized();\n      if (!image.onclick) {\n        image.onclick = () => image.parentNode.focus();\n      } else {\n        const prevClickHandler = image.onclick;\n        image.onclick = () => {\n          prevClickHandler();\n          image.parentNode.focus();\n        };\n      }\n      if (!image.onload) {\n        if (this.props.lazyLoad) {\n          image.onload = () => {\n            this.adaptHeight();\n            this.callbackTimers.push(\n              setTimeout(this.onWindowResized, this.props.speed)\n            );\n          };\n        } else {\n          image.onload = handler;\n          image.onerror = () => {\n            handler();\n            this.props.onLazyLoadError && this.props.onLazyLoadError();\n          };\n        }\n      }\n    });\n  };\n  progressiveLazyLoad = () => {\n    let slidesToLoad = [];\n    const spec = { ...this.props, ...this.state };\n    for (\n      let index = this.state.currentSlide;\n      index < this.state.slideCount + getPostClones(spec);\n      index++\n    ) {\n      if (this.state.lazyLoadedList.indexOf(index) < 0) {\n        slidesToLoad.push(index);\n        break;\n      }\n    }\n    for (\n      let index = this.state.currentSlide - 1;\n      index >= -getPreClones(spec);\n      index--\n    ) {\n      if (this.state.lazyLoadedList.indexOf(index) < 0) {\n        slidesToLoad.push(index);\n        break;\n      }\n    }\n    if (slidesToLoad.length > 0) {\n      this.setState(state => ({\n        lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\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  slideHandler = (index, dontAnimate = false) => {\n    const {\n      asNavFor,\n      beforeChange,\n      onLazyLoad,\n      speed,\n      afterChange\n    } = this.props;\n    // capture currentslide before state is updated\n    const currentSlide = this.state.currentSlide;\n    let { state, nextState } = slideHandler({\n      index,\n      ...this.props,\n      ...this.state,\n      trackRef: this.track,\n      useCSS: this.props.useCSS && !dontAnimate\n    });\n    if (!state) return;\n    beforeChange && beforeChange(currentSlide, state.currentSlide);\n    let slidesToLoad = state.lazyLoadedList.filter(\n      value => this.state.lazyLoadedList.indexOf(value) < 0\n    );\n    onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n    if (!this.props.waitForAnimate && this.animationEndCallback) {\n      clearTimeout(this.animationEndCallback);\n      afterChange && afterChange(currentSlide);\n      delete this.animationEndCallback;\n    }\n    this.setState(state, () => {\n      // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n      if (asNavFor && this.asNavForIndex !== index) {\n        this.asNavForIndex = index;\n        asNavFor.innerSlider.slideHandler(index);\n      }\n      if (!nextState) return;\n      this.animationEndCallback = setTimeout(() => {\n        const { animating, ...firstBatch } = nextState;\n        this.setState(firstBatch, () => {\n          this.callbackTimers.push(\n            setTimeout(() => this.setState({ animating }), 10)\n          );\n          afterChange && afterChange(state.currentSlide);\n          delete this.animationEndCallback;\n        });\n      }, speed);\n    });\n  };\n  changeSlide = (options, dontAnimate = false) => {\n    const spec = { ...this.props, ...this.state };\n    let targetSlide = changeSlide(spec, options);\n    if (targetSlide !== 0 && !targetSlide) return;\n    if (dontAnimate === true) {\n      this.slideHandler(targetSlide, dontAnimate);\n    } else {\n      this.slideHandler(targetSlide);\n    }\n    this.props.autoplay && this.autoPlay(\"update\");\n    if (this.props.focusOnSelect) {\n      const nodes = this.list.querySelectorAll(\".slick-current\");\n      nodes[0] && nodes[0].focus();\n    }\n  };\n  clickHandler = e => {\n    if (this.clickable === false) {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n    this.clickable = true;\n  };\n  keyHandler = e => {\n    let dir = keyHandler(e, this.props.accessibility, this.props.rtl);\n    dir !== \"\" && this.changeSlide({ message: dir });\n  };\n  selectHandler = options => {\n    this.changeSlide(options);\n  };\n  disableBodyScroll = () => {\n    const preventDefault = e => {\n      e = e || window.event;\n      if (e.preventDefault) e.preventDefault();\n      e.returnValue = false;\n    };\n    window.ontouchmove = preventDefault;\n  };\n  enableBodyScroll = () => {\n    window.ontouchmove = null;\n  };\n  swipeStart = e => {\n    if (this.props.verticalSwiping) {\n      this.disableBodyScroll();\n    }\n    let state = swipeStart(e, this.props.swipe, this.props.draggable);\n    state !== \"\" && this.setState(state);\n  };\n  swipeMove = e => {\n    let state = swipeMove(e, {\n      ...this.props,\n      ...this.state,\n      trackRef: this.track,\n      listRef: this.list,\n      slideIndex: this.state.currentSlide\n    });\n    if (!state) return;\n    if (state[\"swiping\"]) {\n      this.clickable = false;\n    }\n    this.setState(state);\n  };\n  swipeEnd = e => {\n    let state = swipeEnd(e, {\n      ...this.props,\n      ...this.state,\n      trackRef: this.track,\n      listRef: this.list,\n      slideIndex: this.state.currentSlide\n    });\n    if (!state) return;\n    let triggerSlideHandler = state[\"triggerSlideHandler\"];\n    delete state[\"triggerSlideHandler\"];\n    this.setState(state);\n    if (triggerSlideHandler === undefined) return;\n    this.slideHandler(triggerSlideHandler);\n    if (this.props.verticalSwiping) {\n      this.enableBodyScroll();\n    }\n  };\n  touchEnd = e => {\n    this.swipeEnd(e);\n    this.clickable = true;\n  };\n  slickPrev = () => {\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(\n      setTimeout(() => this.changeSlide({ message: \"previous\" }), 0)\n    );\n  };\n  slickNext = () => {\n    this.callbackTimers.push(\n      setTimeout(() => this.changeSlide({ message: \"next\" }), 0)\n    );\n  };\n  slickGoTo = (slide, dontAnimate = false) => {\n    slide = Number(slide);\n    if (isNaN(slide)) return \"\";\n    this.callbackTimers.push(\n      setTimeout(\n        () =>\n          this.changeSlide(\n            {\n              message: \"index\",\n              index: slide,\n              currentSlide: this.state.currentSlide\n            },\n            dontAnimate\n          ),\n        0\n      )\n    );\n  };\n  play = () => {\n    var nextIndex;\n    if (this.props.rtl) {\n      nextIndex = this.state.currentSlide - this.props.slidesToScroll;\n    } else {\n      if (canGoNext({ ...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  autoPlay = playType => {\n    if (this.autoplayTimer) {\n      clearInterval(this.autoplayTimer);\n    }\n    const autoplaying = this.state.autoplaying;\n    if (playType === \"update\") {\n      if (\n        autoplaying === \"hovered\" ||\n        autoplaying === \"focused\" ||\n        autoplaying === \"paused\"\n      ) {\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    this.autoplayTimer = setInterval(this.play, this.props.autoplaySpeed + 50);\n    this.setState({ autoplaying: \"playing\" });\n  };\n  pause = pauseType => {\n    if (this.autoplayTimer) {\n      clearInterval(this.autoplayTimer);\n      this.autoplayTimer = null;\n    }\n    const autoplaying = this.state.autoplaying;\n    if (pauseType === \"paused\") {\n      this.setState({ autoplaying: \"paused\" });\n    } else if (pauseType === \"focused\") {\n      if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n        this.setState({ autoplaying: \"focused\" });\n      }\n    } else {\n      // pauseType  is 'hovered'\n      if (autoplaying === \"playing\") {\n        this.setState({ autoplaying: \"hovered\" });\n      }\n    }\n  };\n  onDotsOver = () => this.props.autoplay && this.pause(\"hovered\");\n  onDotsLeave = () =>\n    this.props.autoplay &&\n    this.state.autoplaying === \"hovered\" &&\n    this.autoPlay(\"leave\");\n  onTrackOver = () => this.props.autoplay && this.pause(\"hovered\");\n  onTrackLeave = () =>\n    this.props.autoplay &&\n    this.state.autoplaying === \"hovered\" &&\n    this.autoPlay(\"leave\");\n  onSlideFocus = () => this.props.autoplay && this.pause(\"focused\");\n  onSlideBlur = () =>\n    this.props.autoplay &&\n    this.state.autoplaying === \"focused\" &&\n    this.autoPlay(\"blur\");\n\n  render = () => {\n    var className = classnames(\"slick-slider\", this.props.className, {\n      \"slick-vertical\": this.props.vertical,\n      \"slick-initialized\": true\n    });\n    let spec = { ...this.props, ...this.state };\n    let trackProps = extractObject(spec, [\n      \"fade\",\n      \"cssEase\",\n      \"speed\",\n      \"infinite\",\n      \"centerMode\",\n      \"focusOnSelect\",\n      \"currentSlide\",\n      \"lazyLoad\",\n      \"lazyLoadedList\",\n      \"rtl\",\n      \"slideWidth\",\n      \"slideHeight\",\n      \"listHeight\",\n      \"vertical\",\n      \"slidesToShow\",\n      \"slidesToScroll\",\n      \"slideCount\",\n      \"trackStyle\",\n      \"variableWidth\",\n      \"unslick\",\n      \"centerPadding\",\n      \"targetSlide\",\n      \"useCSS\"\n    ]);\n    const { pauseOnHover } = this.props;\n    trackProps = {\n      ...trackProps,\n      onMouseEnter: pauseOnHover ? this.onTrackOver : null,\n      onMouseLeave: pauseOnHover ? this.onTrackLeave : null,\n      onMouseOver: pauseOnHover ? this.onTrackOver : null,\n      focusOnSelect:\n        this.props.focusOnSelect && this.clickable ? this.selectHandler : null\n    };\n\n    var dots;\n    if (\n      this.props.dots === true &&\n      this.state.slideCount >= this.props.slidesToShow\n    ) {\n      let dotProps = extractObject(spec, [\n        \"dotsClass\",\n        \"slideCount\",\n        \"slidesToShow\",\n        \"currentSlide\",\n        \"slidesToScroll\",\n        \"clickHandler\",\n        \"children\",\n        \"customPaging\",\n        \"infinite\",\n        \"appendDots\"\n      ]);\n      const { pauseOnDotsHover } = this.props;\n      dotProps = {\n        ...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 = <Dots {...dotProps} />;\n    }\n\n    var prevArrow, nextArrow;\n    let arrowProps = extractObject(spec, [\n      \"infinite\",\n      \"centerMode\",\n      \"currentSlide\",\n      \"slideCount\",\n      \"slidesToShow\",\n      \"prevArrow\",\n      \"nextArrow\"\n    ]);\n    arrowProps.clickHandler = this.changeSlide;\n\n    if (this.props.arrows) {\n      prevArrow = <PrevArrow {...arrowProps} />;\n      nextArrow = <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    const listStyle = { ...verticalHeightStyle, ...centerPaddingStyle };\n    const touchMove = this.props.touchMove;\n    let 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.touchEnd : null,\n      onTouchCancel: this.state.dragging && touchMove ? this.swipeEnd : null,\n      onKeyDown: this.props.accessibility ? this.keyHandler : null\n    };\n\n    let innerSliderProps = {\n      className: className,\n      dir: \"ltr\",\n      style: this.props.style\n    };\n\n    if (this.props.unslick) {\n      listProps = { className: \"slick-list\" };\n      innerSliderProps = { className };\n    }\n    return (\n      <div {...innerSliderProps}>\n        {!this.props.unslick ? prevArrow : \"\"}\n        <div ref={this.listRefHandler} {...listProps}>\n          <Track ref={this.trackRefHandler} {...trackProps}>\n            {this.props.children}\n          </Track>\n        </div>\n        {!this.props.unslick ? nextArrow : \"\"}\n        {!this.props.unslick ? dots : \"\"}\n      </div>\n    );\n  };\n}\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","const 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, // used by swipeEvent. differentites between touch and swipe.\n  swiping: false,\n  touchObject: { startX: 0, startY: 0, curX: 0, curY: 0 },\n  trackStyle: {},\n  trackWidth: 0,\n  targetSlide: 0\n};\n\nexport default initialState;\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\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 */\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  wait = toNumber(wait) || 0;\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\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;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // 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    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\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\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\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 */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var root = require('./_root');\n\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 */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\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 */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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 */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\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 */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from \"react\";\n\nexport function clamp(number, lowerBound, upperBound) {\n  return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nexport const getOnDemandLazySlides = spec => {\n  let onDemandSlides = [];\n  let startIndex = lazyStartIndex(spec);\n  let endIndex = lazyEndIndex(spec);\n  for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n      onDemandSlides.push(slideIndex);\n    }\n  }\n  return onDemandSlides;\n};\n\n// return list of slides that need to be present\nexport const getRequiredLazySlides = spec => {\n  let requiredSlides = [];\n  let startIndex = lazyStartIndex(spec);\n  let endIndex = lazyEndIndex(spec);\n  for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    requiredSlides.push(slideIndex);\n  }\n  return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport const lazyStartIndex = spec =>\n  spec.currentSlide - lazySlidesOnLeft(spec);\nexport const lazyEndIndex = spec => spec.currentSlide + lazySlidesOnRight(spec);\nexport const lazySlidesOnLeft = spec =>\n  spec.centerMode\n    ? Math.floor(spec.slidesToShow / 2) +\n      (parseInt(spec.centerPadding) > 0 ? 1 : 0)\n    : 0;\nexport const lazySlidesOnRight = spec =>\n  spec.centerMode\n    ? Math.floor((spec.slidesToShow - 1) / 2) +\n      1 +\n      (parseInt(spec.centerPadding) > 0 ? 1 : 0)\n    : spec.slidesToShow;\n\n// get width of an element\nexport const getWidth = elem => (elem && elem.offsetWidth) || 0;\nexport const getHeight = elem => (elem && elem.offsetHeight) || 0;\nexport const getSwipeDirection = (touchObject, verticalSwiping = 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  if (swipeAngle < 0) {\n    swipeAngle = 360 - Math.abs(swipeAngle);\n  }\n  if (\n    (swipeAngle <= 45 && swipeAngle >= 0) ||\n    (swipeAngle <= 360 && swipeAngle >= 315)\n  ) {\n    return \"left\";\n  }\n  if (swipeAngle >= 135 && swipeAngle <= 225) {\n    return \"right\";\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};\n\n// whether or not we can go next\nexport const canGoNext = spec => {\n  let canGo = true;\n  if (!spec.infinite) {\n    if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n      canGo = false;\n    } else if (\n      spec.slideCount <= spec.slidesToShow ||\n      spec.currentSlide >= spec.slideCount - spec.slidesToShow\n    ) {\n      canGo = false;\n    }\n  }\n  return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport const extractObject = (spec, keys) => {\n  let newObject = {};\n  keys.forEach(key => (newObject[key] = spec[key]));\n  return newObject;\n};\n\n// get initialized state\nexport const initializedState = spec => {\n  // spec also contains listRef, trackRef\n  let slideCount = React.Children.count(spec.children);\n  const listNode = spec.listRef;\n  let listWidth = Math.ceil(getWidth(listNode));\n  const trackNode = spec.trackRef && spec.trackRef.node;\n  let trackWidth = Math.ceil(getWidth(trackNode));\n  let slideWidth;\n  if (!spec.vertical) {\n    let centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n    if (\n      typeof spec.centerPadding === \"string\" &&\n      spec.centerPadding.slice(-1) === \"%\"\n    ) {\n      centerPaddingAdj *= listWidth / 100;\n    }\n    slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n  } else {\n    slideWidth = listWidth;\n  }\n  let slideHeight =\n    listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n  let listHeight = slideHeight * spec.slidesToShow;\n  let currentSlide =\n    spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n  if (spec.rtl && spec.currentSlide === undefined) {\n    currentSlide = slideCount - 1 - spec.initialSlide;\n  }\n  let lazyLoadedList = spec.lazyLoadedList || [];\n  let slidesToLoad = getOnDemandLazySlides({\n    ...spec,\n    currentSlide,\n    lazyLoadedList\n  });\n  lazyLoadedList.concat(slidesToLoad);\n\n  let state = {\n    slideCount,\n    slideWidth,\n    listWidth,\n    trackWidth,\n    currentSlide,\n    slideHeight,\n    listHeight,\n    lazyLoadedList\n  };\n\n  if (spec.autoplaying === null && spec.autoplay) {\n    state[\"autoplaying\"] = \"playing\";\n  }\n\n  return state;\n};\n\nexport const slideHandler = spec => {\n  const {\n    waitForAnimate,\n    animating,\n    fade,\n    infinite,\n    index,\n    slideCount,\n    lazyLoadedList,\n    lazyLoad,\n    currentSlide,\n    centerMode,\n    slidesToScroll,\n    slidesToShow,\n    useCSS\n  } = spec;\n  if (waitForAnimate && animating) return {};\n  let animationSlide = index,\n    finalSlide,\n    animationLeft,\n    finalLeft;\n  let state = {},\n    nextState = {};\n  const targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n  if (fade) {\n    if (!infinite && (index < 0 || index >= slideCount)) return {};\n    if (index < 0) {\n      animationSlide = index + slideCount;\n    } else if (index >= slideCount) {\n      animationSlide = index - slideCount;\n    }\n    if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n      lazyLoadedList.push(animationSlide);\n    }\n    state = {\n      animating: true,\n      currentSlide: animationSlide,\n      lazyLoadedList,\n      targetSlide: animationSlide\n    };\n    nextState = { animating: false, targetSlide: animationSlide };\n  } else {\n    finalSlide = animationSlide;\n    if (animationSlide < 0) {\n      finalSlide = animationSlide + slideCount;\n      if (!infinite) finalSlide = 0;\n      else if (slideCount % slidesToScroll !== 0)\n        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;\n      else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n    }\n\n    if (!infinite && animationSlide + slidesToShow >= slideCount) {\n      finalSlide = slideCount - slidesToShow;\n    }\n\n    animationLeft = getTrackLeft({ ...spec, slideIndex: animationSlide });\n    finalLeft = getTrackLeft({ ...spec, slideIndex: finalSlide });\n    if (!infinite) {\n      if (animationLeft === finalLeft) animationSlide = finalSlide;\n      animationLeft = finalLeft;\n    }\n    lazyLoad &&\n      lazyLoadedList.concat(\n        getOnDemandLazySlides({ ...spec, currentSlide: animationSlide })\n      );\n    if (!useCSS) {\n      state = {\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\n        lazyLoadedList,\n        targetSlide\n      };\n    } else {\n      state = {\n        animating: true,\n        currentSlide: finalSlide,\n        trackStyle: getTrackAnimateCSS({ ...spec, left: animationLeft }),\n        lazyLoadedList,\n        targetSlide\n      };\n      nextState = {\n        animating: false,\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\n        swipeLeft: null,\n        targetSlide\n      };\n    }\n  }\n  return { state, nextState };\n};\n\nexport const changeSlide = (spec, options) => {\n  var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n  const {\n    slidesToScroll,\n    slidesToShow,\n    slideCount,\n    currentSlide,\n    targetSlide: previousTargetSlide,\n    lazyLoad,\n    infinite\n  } = spec;\n  unevenOffset = slideCount % slidesToScroll !== 0;\n  indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n  if (options.message === \"previous\") {\n    slideOffset =\n      indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n    targetSlide = currentSlide - slideOffset;\n    if (lazyLoad && !infinite) {\n      previousInt = currentSlide - slideOffset;\n      targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n    }\n    if (!infinite) {\n      targetSlide = previousTargetSlide - slidesToScroll;\n    }\n  } else if (options.message === \"next\") {\n    slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n    targetSlide = currentSlide + slideOffset;\n    if (lazyLoad && !infinite) {\n      targetSlide =\n        ((currentSlide + slidesToScroll) % slideCount) + indexOffset;\n    }\n    if (!infinite) {\n      targetSlide = previousTargetSlide + slidesToScroll;\n    }\n  } else if (options.message === \"dots\") {\n    // Click on dots\n    targetSlide = options.index * options.slidesToScroll;\n  } else if (options.message === \"children\") {\n    // Click on the slides\n    targetSlide = options.index;\n    if (infinite) {\n      let direction = siblingDirection({ ...spec, targetSlide });\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  return targetSlide;\n};\nexport const keyHandler = (e, accessibility, rtl) => {\n  if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility)\n    return \"\";\n  if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n  if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n  return \"\";\n};\n\nexport const 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};\nexport const swipeMove = (e, spec) => {\n  // spec also contains, trackRef and slideIndex\n  const {\n    scrolling,\n    animating,\n    vertical,\n    swipeToSlide,\n    verticalSwiping,\n    rtl,\n    currentSlide,\n    edgeFriction,\n    edgeDragged,\n    onEdge,\n    swiped,\n    swiping,\n    slideCount,\n    slidesToScroll,\n    infinite,\n    touchObject,\n    swipeEvent,\n    listHeight,\n    listWidth\n  } = spec;\n  if (scrolling) return;\n  if (animating) return e.preventDefault();\n  if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n  let swipeLeft,\n    state = {};\n  let 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(\n    Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2))\n  );\n  let verticalSwipeLength = Math.round(\n    Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2))\n  );\n  if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n    return { scrolling: true };\n  }\n  if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n  let positionOffset =\n    (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n  if (verticalSwiping)\n    positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n\n  let dotCount = Math.ceil(slideCount / slidesToScroll);\n  let swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n  let touchSwipeLength = touchObject.swipeLength;\n  if (!infinite) {\n    if (\n      (currentSlide === 0 && swipeDirection === \"right\") ||\n      (currentSlide + 1 >= dotCount && swipeDirection === \"left\") ||\n      (!canGoNext(spec) && swipeDirection === \"left\")\n    ) {\n      touchSwipeLength = touchObject.swipeLength * edgeFriction;\n      if (edgeDragged === false && onEdge) {\n        onEdge(swipeDirection);\n        state[\"edgeDragged\"] = true;\n      }\n    }\n  }\n  if (!swiped && swipeEvent) {\n    swipeEvent(swipeDirection);\n    state[\"swiped\"] = true;\n  }\n  if (!vertical) {\n    if (!rtl) {\n      swipeLeft = curLeft + touchSwipeLength * positionOffset;\n    } else {\n      swipeLeft = curLeft - touchSwipeLength * positionOffset;\n    }\n  } else {\n    swipeLeft =\n      curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n  }\n  if (verticalSwiping) {\n    swipeLeft = curLeft + touchSwipeLength * positionOffset;\n  }\n  state = {\n    ...state,\n    touchObject,\n    swipeLeft,\n    trackStyle: getTrackCSS({ ...spec, left: swipeLeft })\n  };\n  if (\n    Math.abs(touchObject.curX - touchObject.startX) <\n    Math.abs(touchObject.curY - touchObject.startY) * 0.8\n  ) {\n    return state;\n  }\n  if (touchObject.swipeLength > 10) {\n    state[\"swiping\"] = true;\n    e.preventDefault();\n  }\n  return state;\n};\nexport const swipeEnd = (e, spec) => {\n  const {\n    dragging,\n    swipe,\n    touchObject,\n    listWidth,\n    touchThreshold,\n    verticalSwiping,\n    listHeight,\n    swipeToSlide,\n    scrolling,\n    onSwipe,\n    targetSlide,\n    currentSlide,\n    infinite\n  } = spec;\n  if (!dragging) {\n    if (swipe) e.preventDefault();\n    return {};\n  }\n  let minSwipe = verticalSwiping\n    ? listHeight / touchThreshold\n    : listWidth / touchThreshold;\n  let swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n  // reset the state of touch related state variables.\n  let state = {\n    dragging: false,\n    edgeDragged: false,\n    scrolling: false,\n    swiping: false,\n    swiped: false,\n    swipeLeft: null,\n    touchObject: {}\n  };\n  if (scrolling) {\n    return state;\n  }\n  if (!touchObject.swipeLength) {\n    return state;\n  }\n  if (touchObject.swipeLength > minSwipe) {\n    e.preventDefault();\n    if (onSwipe) {\n      onSwipe(swipeDirection);\n    }\n    let slideCount, newSlide;\n    let activeSlide = infinite ? currentSlide : targetSlide;\n    switch (swipeDirection) {\n      case \"left\":\n      case \"up\":\n        newSlide = activeSlide + getSlideCount(spec);\n        slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n        state[\"currentDirection\"] = 0;\n        break;\n      case \"right\":\n      case \"down\":\n        newSlide = activeSlide - getSlideCount(spec);\n        slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n        state[\"currentDirection\"] = 1;\n        break;\n      default:\n        slideCount = activeSlide;\n    }\n    state[\"triggerSlideHandler\"] = slideCount;\n  } else {\n    // Adjust the track back to it's original position.\n    let currentLeft = getTrackLeft(spec);\n    state[\"trackStyle\"] = getTrackAnimateCSS({ ...spec, left: currentLeft });\n  }\n  return state;\n};\nexport const getNavigableIndexes = spec => {\n  let max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n  let breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n  let counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n  let indexes = [];\n  while (breakpoint < max) {\n    indexes.push(breakpoint);\n    breakpoint = counter + spec.slidesToScroll;\n    counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n  }\n  return indexes;\n};\nexport const checkNavigable = (spec, index) => {\n  const navigables = getNavigableIndexes(spec);\n  let prevNavigable = 0;\n  if (index > navigables[navigables.length - 1]) {\n    index = navigables[navigables.length - 1];\n  } else {\n    for (let n in navigables) {\n      if (index < navigables[n]) {\n        index = prevNavigable;\n        break;\n      }\n      prevNavigable = navigables[n];\n    }\n  }\n  return index;\n};\nexport const getSlideCount = spec => {\n  const centerOffset = spec.centerMode\n    ? spec.slideWidth * Math.floor(spec.slidesToShow / 2)\n    : 0;\n  if (spec.swipeToSlide) {\n    let swipedSlide;\n    const slickList = spec.listRef;\n    const slides = slickList.querySelectorAll(\".slick-slide\");\n    Array.from(slides).every(slide => {\n      if (!spec.vertical) {\n        if (\n          slide.offsetLeft - centerOffset + getWidth(slide) / 2 >\n          spec.swipeLeft * -1\n        ) {\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    const currentIndex =\n      spec.rtl === true\n        ? spec.slideCount - spec.currentSlide\n        : spec.currentSlide;\n    const slidesTraversed =\n      Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n    return slidesTraversed;\n  } else {\n    return spec.slidesToScroll;\n  }\n};\n\nexport const checkSpecKeys = (spec, keysArray) =>\n  // eslint-disable-next-line no-prototype-builtins\n  keysArray.reduce((value, key) => value && spec.hasOwnProperty(key), true)\n    ? null\n    : console.error(\"Keys Missing:\", spec);\n\nexport const getTrackCSS = spec => {\n  checkSpecKeys(spec, [\n    \"left\",\n    \"variableWidth\",\n    \"slideCount\",\n    \"slidesToShow\",\n    \"slideWidth\"\n  ]);\n  let trackWidth, trackHeight;\n  const trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n  if (!spec.vertical) {\n    trackWidth = getTotalSlides(spec) * spec.slideWidth;\n  } else {\n    trackHeight = trackChildren * spec.slideHeight;\n  }\n  let style = {\n    opacity: 1,\n    transition: \"\",\n    WebkitTransition: \"\"\n  };\n  if (spec.useTransform) {\n    let WebkitTransform = !spec.vertical\n      ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\"\n      : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    let transform = !spec.vertical\n      ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\"\n      : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    let msTransform = !spec.vertical\n      ? \"translateX(\" + spec.left + \"px)\"\n      : \"translateY(\" + spec.left + \"px)\";\n    style = {\n      ...style,\n      WebkitTransform,\n      transform,\n      msTransform\n    };\n  } else {\n    if (spec.vertical) {\n      style[\"top\"] = spec.left;\n    } else {\n      style[\"left\"] = spec.left;\n    }\n  }\n  if (spec.fade) style = { opacity: 1 };\n  if (trackWidth) style.width = trackWidth;\n  if (trackHeight) style.height = trackHeight;\n\n  // Fallback for IE8\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};\nexport const getTrackAnimateCSS = spec => {\n  checkSpecKeys(spec, [\n    \"left\",\n    \"variableWidth\",\n    \"slideCount\",\n    \"slidesToShow\",\n    \"slideWidth\",\n    \"speed\",\n    \"cssEase\"\n  ]);\n  let style = getTrackCSS(spec);\n  // useCSS is true by default so it can be undefined\n  if (spec.useTransform) {\n    style.WebkitTransition =\n      \"-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  return style;\n};\nexport const getTrackLeft = spec => {\n  if (spec.unslick) {\n    return 0;\n  }\n\n  checkSpecKeys(spec, [\n    \"slideIndex\",\n    \"trackRef\",\n    \"infinite\",\n    \"centerMode\",\n    \"slideCount\",\n    \"slidesToShow\",\n    \"slidesToScroll\",\n    \"slideWidth\",\n    \"listWidth\",\n    \"variableWidth\",\n    \"slideHeight\"\n  ]);\n\n  const {\n    slideIndex,\n    trackRef,\n    infinite,\n    centerMode,\n    slideCount,\n    slidesToShow,\n    slidesToScroll,\n    slideWidth,\n    listWidth,\n    variableWidth,\n    slideHeight,\n    fade,\n    vertical\n  } = spec;\n\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  let slidesToOffset = 0;\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    if (\n      slideCount % slidesToScroll !== 0 &&\n      slideIndex + slidesToScroll > slideCount\n    ) {\n      slidesToOffset = -(slideIndex > slideCount\n        ? slidesToShow - (slideIndex - slideCount)\n        : slideCount % slidesToScroll);\n    }\n    // shift current slide to center of the frame\n    if (centerMode) {\n      slidesToOffset += parseInt(slidesToShow / 2);\n    }\n  } else {\n    if (\n      slideCount % slidesToScroll !== 0 &&\n      slideIndex + slidesToScroll > slideCount\n    ) {\n      slidesToOffset = slidesToShow - (slideCount % slidesToScroll);\n    }\n    if (centerMode) {\n      slidesToOffset = parseInt(slidesToShow / 2);\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    const trackElem = trackRef && trackRef.node;\n    targetSlideIndex = slideIndex + getPreClones(spec);\n    targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n    targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n    if (centerMode === true) {\n      targetSlideIndex = infinite\n        ? slideIndex + getPreClones(spec)\n        : slideIndex;\n      targetSlide = trackElem && trackElem.children[targetSlideIndex];\n      targetLeft = 0;\n      for (let slide = 0; slide < targetSlideIndex; slide++) {\n        targetLeft -=\n          trackElem &&\n          trackElem.children[slide] &&\n          trackElem.children[slide].offsetWidth;\n      }\n      targetLeft -= parseInt(spec.centerPadding);\n      targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n    }\n  }\n\n  return targetLeft;\n};\n\nexport const getPreClones = spec => {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n  if (spec.variableWidth) {\n    return spec.slideCount;\n  }\n  return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexport const getPostClones = spec => {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n  return spec.slideCount;\n};\n\nexport const getTotalSlides = spec =>\n  spec.slideCount === 1\n    ? 1\n    : getPreClones(spec) + spec.slideCount + getPostClones(spec);\nexport const siblingDirection = spec => {\n  if (spec.targetSlide > spec.currentSlide) {\n    if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n      return \"left\";\n    }\n    return \"right\";\n  } else {\n    if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n      return \"right\";\n    }\n    return \"left\";\n  }\n};\n\nexport const slidesOnRight = ({\n  slidesToShow,\n  centerMode,\n  rtl,\n  centerPadding\n}) => {\n  // returns no of slides on the right of active slide\n  if (centerMode) {\n    let 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  if (rtl) {\n    return 0;\n  }\n  return slidesToShow - 1;\n};\n\nexport const slidesOnLeft = ({\n  slidesToShow,\n  centerMode,\n  rtl,\n  centerPadding\n}) => {\n  // returns no of slides on the left of active slide\n  if (centerMode) {\n    let 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  if (rtl) {\n    return slidesToShow - 1;\n  }\n  return 0;\n};\n\nexport const canUseDOM = () =>\n  !!(\n    typeof window !== \"undefined\" &&\n    window.document &&\n    window.document.createElement\n  );\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport {\n  lazyStartIndex,\n  lazyEndIndex,\n  getPreClones\n} from \"./utils/innerSliderUtils\";\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nconst getSlideClasses = spec => {\n  let slickActive, slickCenter, slickCloned;\n  let centerOffset, index;\n\n  if (spec.rtl) {\n    index = spec.slideCount - 1 - spec.index;\n  } else {\n    index = spec.index;\n  }\n  slickCloned = index < 0 || index >= spec.slideCount;\n  if (spec.centerMode) {\n    centerOffset = Math.floor(spec.slidesToShow / 2);\n    slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n    if (\n      index > spec.currentSlide - centerOffset - 1 &&\n      index <= spec.currentSlide + centerOffset\n    ) {\n      slickActive = true;\n    }\n  } else {\n    slickActive =\n      spec.currentSlide <= index &&\n      index < spec.currentSlide + spec.slidesToShow;\n  }\n\n  let focusedSlide;\n  if (spec.targetSlide < 0) {\n    focusedSlide = spec.targetSlide + spec.slideCount;\n  } else if (spec.targetSlide >= spec.slideCount) {\n    focusedSlide = spec.targetSlide - spec.slideCount;\n  } else {\n    focusedSlide = spec.targetSlide;\n  }\n  let slickCurrent = index === focusedSlide;\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\nconst getSlideStyle = spec => {\n  let 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    if (spec.vertical) {\n      style.top = -spec.index * parseInt(spec.slideHeight);\n    } else {\n      style.left = -spec.index * parseInt(spec.slideWidth);\n    }\n    style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n    if (spec.useCSS) {\n      style.transition =\n        \"opacity \" +\n        spec.speed +\n        \"ms \" +\n        spec.cssEase +\n        \", \" +\n        \"visibility \" +\n        spec.speed +\n        \"ms \" +\n        spec.cssEase;\n    }\n  }\n\n  return style;\n};\n\nconst getKey = (child, fallbackKey) => child.key + \"-\" + fallbackKey;\n\nconst renderSlides = spec => {\n  let key;\n  let slides = [];\n  let preCloneSlides = [];\n  let postCloneSlides = [];\n  let childrenCount = React.Children.count(spec.children);\n  let startIndex = lazyStartIndex(spec);\n  let endIndex = lazyEndIndex(spec);\n\n  React.Children.forEach(spec.children, (elem, index) => {\n    let child;\n    let childOnClickOptions = {\n      message: \"children\",\n      index: index,\n      slidesToScroll: spec.slidesToScroll,\n      currentSlide: spec.currentSlide\n    };\n\n    // in case of lazyLoad, whether or not we want to fetch the slide\n    if (\n      !spec.lazyLoad ||\n      (spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0)\n    ) {\n      child = elem;\n    } else {\n      child = <div />;\n    }\n    let childStyle = getSlideStyle({ ...spec, index });\n    let slideClass = child.props.className || \"\";\n    let slideClasses = getSlideClasses({ ...spec, index });\n    // push a cloned element of the desired slide\n    slides.push(\n      React.cloneElement(child, {\n        key: \"original\" + getKey(child, index),\n        \"data-index\": index,\n        className: classnames(slideClasses, slideClass),\n        tabIndex: \"-1\",\n        \"aria-hidden\": !slideClasses[\"slick-active\"],\n        style: { outline: \"none\", ...(child.props.style || {}), ...childStyle },\n        onClick: e => {\n          child.props && child.props.onClick && child.props.onClick(e);\n          if (spec.focusOnSelect) {\n            spec.focusOnSelect(childOnClickOptions);\n          }\n        }\n      })\n    );\n\n    // if slide needs to be precloned or postcloned\n    if (spec.infinite && spec.fade === false) {\n      let preCloneNo = childrenCount - index;\n      if (\n        preCloneNo <= getPreClones(spec) &&\n        childrenCount !== spec.slidesToShow\n      ) {\n        key = -preCloneNo;\n        if (key >= startIndex) {\n          child = elem;\n        }\n        slideClasses = getSlideClasses({ ...spec, index: key });\n        preCloneSlides.push(\n          React.cloneElement(child, {\n            key: \"precloned\" + getKey(child, key),\n            \"data-index\": key,\n            tabIndex: \"-1\",\n            className: classnames(slideClasses, slideClass),\n            \"aria-hidden\": !slideClasses[\"slick-active\"],\n            style: { ...(child.props.style || {}), ...childStyle },\n            onClick: e => {\n              child.props && child.props.onClick && child.props.onClick(e);\n              if (spec.focusOnSelect) {\n                spec.focusOnSelect(childOnClickOptions);\n              }\n            }\n          })\n        );\n      }\n\n      if (childrenCount !== spec.slidesToShow) {\n        key = childrenCount + index;\n        if (key < endIndex) {\n          child = elem;\n        }\n        slideClasses = getSlideClasses({ ...spec, index: key });\n        postCloneSlides.push(\n          React.cloneElement(child, {\n            key: \"postcloned\" + getKey(child, key),\n            \"data-index\": key,\n            tabIndex: \"-1\",\n            className: classnames(slideClasses, slideClass),\n            \"aria-hidden\": !slideClasses[\"slick-active\"],\n            style: { ...(child.props.style || {}), ...childStyle },\n            onClick: e => {\n              child.props && child.props.onClick && child.props.onClick(e);\n              if (spec.focusOnSelect) {\n                spec.focusOnSelect(childOnClickOptions);\n              }\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\nexport class Track extends React.PureComponent {\n  node = null;\n\n  handleRef = ref => {\n    this.node = ref;\n  };\n\n  render() {\n    const slides = renderSlides(this.props);\n    const { onMouseEnter, onMouseOver, onMouseLeave } = this.props;\n    const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\n    return (\n      <div\n        ref={this.handleRef}\n        className=\"slick-track\"\n        style={this.props.trackStyle}\n        {...mouseEvents}\n      >\n        {slides}\n      </div>\n    );\n  }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { clamp } from \"./utils/innerSliderUtils\";\n\nconst getDotCount = spec => {\n  let dots;\n\n  if (spec.infinite) {\n    dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n  } else {\n    dots =\n      Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) +\n      1;\n  }\n\n  return dots;\n};\n\nexport class Dots extends React.PureComponent {\n  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  render() {\n    const {\n      onMouseEnter,\n      onMouseOver,\n      onMouseLeave,\n      infinite,\n      slidesToScroll,\n      slidesToShow,\n      slideCount,\n      currentSlide\n    } = this.props;\n    let dotCount = getDotCount({\n      slideCount,\n      slidesToScroll,\n      slidesToShow,\n      infinite\n    });\n\n    const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\n    let dots = [];\n    for (let i = 0; i < dotCount; i++) {\n      let _rightBound = (i + 1) * slidesToScroll - 1;\n      let rightBound = infinite\n        ? _rightBound\n        : clamp(_rightBound, 0, slideCount - 1);\n      let _leftBound = rightBound - (slidesToScroll - 1);\n      let leftBound = infinite\n        ? _leftBound\n        : clamp(_leftBound, 0, slideCount - 1);\n\n      let className = classnames({\n        \"slick-active\": infinite\n          ? currentSlide >= leftBound && currentSlide <= rightBound\n          : currentSlide === leftBound\n      });\n\n      let dotOptions = {\n        message: \"dots\",\n        index: i,\n        slidesToScroll,\n        currentSlide\n      };\n\n      let onClick = this.clickHandler.bind(this, dotOptions);\n      dots = dots.concat(\n        <li key={i} className={className}>\n          {React.cloneElement(this.props.customPaging(i), { onClick })}\n        </li>\n      );\n    }\n\n    return React.cloneElement(this.props.appendDots(dots), {\n      className: this.props.dotsClass,\n      ...mouseEvents\n    });\n  }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { canGoNext } from \"./utils/innerSliderUtils\";\n\nexport class PrevArrow extends React.PureComponent {\n  clickHandler(options, e) {\n    if (e) {\n      e.preventDefault();\n    }\n    this.props.clickHandler(options, e);\n  }\n  render() {\n    let prevClasses = { \"slick-arrow\": true, \"slick-prev\": true };\n    let prevHandler = this.clickHandler.bind(this, { message: \"previous\" });\n\n    if (\n      !this.props.infinite &&\n      (this.props.currentSlide === 0 ||\n        this.props.slideCount <= this.props.slidesToShow)\n    ) {\n      prevClasses[\"slick-disabled\"] = true;\n      prevHandler = null;\n    }\n\n    let prevArrowProps = {\n      key: \"0\",\n      \"data-role\": \"none\",\n      className: classnames(prevClasses),\n      style: { display: \"block\" },\n      onClick: prevHandler\n    };\n    let customProps = {\n      currentSlide: this.props.currentSlide,\n      slideCount: this.props.slideCount\n    };\n    let prevArrow;\n\n    if (this.props.prevArrow) {\n      prevArrow = React.cloneElement(this.props.prevArrow, {\n        ...prevArrowProps,\n        ...customProps\n      });\n    } else {\n      prevArrow = (\n        <button key=\"0\" type=\"button\" {...prevArrowProps}>\n          {\" \"}\n          Previous\n        </button>\n      );\n    }\n\n    return prevArrow;\n  }\n}\n\nexport class NextArrow extends React.PureComponent {\n  clickHandler(options, e) {\n    if (e) {\n      e.preventDefault();\n    }\n    this.props.clickHandler(options, e);\n  }\n  render() {\n    let nextClasses = { \"slick-arrow\": true, \"slick-next\": true };\n    let nextHandler = this.clickHandler.bind(this, { message: \"next\" });\n\n    if (!canGoNext(this.props)) {\n      nextClasses[\"slick-disabled\"] = true;\n      nextHandler = null;\n    }\n\n    let nextArrowProps = {\n      key: \"1\",\n      \"data-role\": \"none\",\n      className: classnames(nextClasses),\n      style: { display: \"block\" },\n      onClick: nextHandler\n    };\n    let customProps = {\n      currentSlide: this.props.currentSlide,\n      slideCount: this.props.slideCount\n    };\n    let nextArrow;\n\n    if (this.props.nextArrow) {\n      nextArrow = React.cloneElement(this.props.nextArrow, {\n        ...nextArrowProps,\n        ...customProps\n      });\n    } else {\n      nextArrow = (\n        <button key=\"1\" type=\"button\" {...nextArrowProps}>\n          {\" \"}\n          Next\n        </button>\n      );\n    }\n\n    return nextArrow;\n  }\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 */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\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 */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\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 */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\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     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\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     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\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     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\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     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\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     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\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     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\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 */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\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 */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\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 */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\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 */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\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 */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\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 */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\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 */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\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 */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\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 */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\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 */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\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     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\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     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\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     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\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     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\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     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\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     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\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 */\r\nvar ResizeObserver = /** @class */ (function () {\r\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     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n  var re = /[height|width]$/;\n  return re.test(feature);\n};\n\nvar obj2mq = function (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);\n    // Add px to dimension features\n    if (isDimension(feature) && typeof value === 'number') {\n      value = value + 'px';\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    if (index < features.length-1) {\n      mq += ' and '\n    }\n  });\n  return mq;\n};\n\nvar json2mq = function (query) {\n  var mq = '';\n  if (typeof query === 'string') {\n    return query;\n  }\n  // Handling array of media queries\n  if (query instanceof Array) {\n    query.forEach(function (q, index) {\n      mq += obj2mq(q);\n      if (index < query.length-1) {\n        mq += ', '\n      }\n    });\n    return mq;\n  }\n  // Handling single media query\n  return obj2mq(query);\n};\n\nmodule.exports = json2mq;","var camel2hyphen = function (str) {\n  return str\n          .replace(/[A-Z]/g, function (match) {\n            return '-' + match.toLowerCase();\n          })\n          .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","import React from \"react\";\n\nlet defaultProps = {\n  accessibility: true,\n  adaptiveHeight: false,\n  afterChange: null,\n  appendDots: dots => <ul style={{ display: \"block\" }}>{dots}</ul>,\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: i => <button>{i + 1}</button>,\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};\n\nexport default defaultProps;\n"],"sourceRoot":""}