bpms_site/.svn/pristine/ec/ecbf15a732712446b06ff263977569b8eed9a00b.svn-base
2025-11-02 16:38:49 +03:30

1 line
186 KiB
Plaintext

{"version":3,"sources":["webpack://Slider/webpack/universalModuleDefinition","webpack://Slider/webpack/bootstrap","webpack://Slider/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://Slider/./node_modules/classnames/index.js","webpack://Slider/./node_modules/json2mq/index.js","webpack://Slider/(webpack)/buildin/global.js","webpack://Slider/./node_modules/enquire.js/src/Util.js","webpack://Slider/./node_modules/lodash.debounce/index.js","webpack://Slider/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://Slider/./node_modules/string-convert/camel2hyphen.js","webpack://Slider/./node_modules/enquire.js/src/index.js","webpack://Slider/./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack://Slider/./node_modules/enquire.js/src/MediaQuery.js","webpack://Slider/./node_modules/enquire.js/src/QueryHandler.js","webpack://Slider/./src/initial-state.js","webpack://Slider/./src/utils/innerSliderUtils.js","webpack://Slider/./src/track.js","webpack://Slider/./src/dots.js","webpack://Slider/./src/arrows.js","webpack://Slider/./src/inner-slider.js","webpack://Slider/./src/default-props.js","webpack://Slider/./src/slider.js","webpack://Slider/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","installedModules","__webpack_require__","m","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","default","obj2mq","obj","mq","features","Object","keys","forEach","feature","index","value","camel2hyphen","test","query","q","g","this","Function","e","isFunction","target","prototype","toString","each","collection","fn","now","Date","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","objectToString","nativeMax","Math","max","nativeMin","min","isObject","type","toNumber","other","valueOf","replace","isBinary","slice","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","debounced","isInvoking","cancel","clearTimeout","flush","MapShim","Map","defineProperty","class_1","get","__entries__","enumerable","configurable","getIndex","entry","set","delete","entries","splice","has","clear","callback","ctx","_i","_a","arr","some","isBrowser","document","global$1","requestAnimationFrame$1","requestAnimationFrame","bind","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","addObserver","observer","observers_","indexOf","connected_","connect_","removeObserver","observers","disconnect_","refresh","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","addEventListener","onTransitionEnd_","mutationsObserver_","observe","attributes","childList","characterData","subtree","mutationEventsAdded_","removeEventListener","disconnect","propertyName","_b","getInstance","instance_","resolvePending","leadingCall","trailingCall","proxy","timeoutCallback","timeStamp","delay","defineConfigurable","props","writable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","size","position","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","width","height","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","horizPad","left","right","vertPad","top","bottom","boxSizing","round","documentElement","vertScrollbar","horizScrollbar","abs","getHTMLElementContentRect","x","y","ResizeObservation","isActive","rect","contentRect_","broadcastWidth","broadcastHeight","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","create","ResizeObserverSPI","Element","observations","observations_","controller_","unobserve","clearActive","_this","observation","activeObservations_","callbackCtx_","map","callback_","controller","callbackCtx","WeakMap","ResizeObserver","method","str","match","toLowerCase","MediaQueryDispatch","MediaQuery","Util","matchMedia","Error","queries","browserIsIncapable","matches","constructor","register","shouldDegrade","isUnconditional","handler","addHandler","unregister","removeHandler","QueryHandler","handlers","mql","listener","currentTarget","assess","addListener","constuctor","qh","on","h","equals","destroy","removeListener","action","deferSetup","setup","initialised","off","unmatch","initialState","animating","autoplaying","currentDirection","currentLeft","currentSlide","direction","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","clamp","number","lowerBound","upperBound","safePreventDefault","event","includes","_reactName","preventDefault","getWidth","elem","offsetWidth","getSwipeDirection","verticalSwiping","xDist","yDist","r","atan2","swipeAngle","PI","checkSpecKeys","spec","keysArray","console","error","canUseDOM","createElement","getOnDemandLazySlides","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","centerMode","floor","slidesToShow","centerPadding","getHeight","offsetHeight","canGoNext","canGo","infinite","extractObject","newObject","slideHandler","waitForAnimate","fade","lazyLoad","slidesToScroll","useCSS","animationSlide","state","nextState","concat","finalSlide","animationLeft","getTrackLeft","finalLeft","getTrackAnimateCSS","getTrackCSS","changeSlide","slideOffset","previousTargetSlide","indexOffset","message","previousInt","siblingDirection","Number","checkNavigable","navigables","breakpoint","counter","indexes","prevNavigable","n","getSlideCount","centerOffset","swipeToSlide","swipedSlide","slides","slickList","listRef","querySelectorAll","from","every","slide","vertical","offsetTop","offsetLeft","currentIndex","rtl","dataset","trackHeight","trackChildren","getTotalSlides","WebkitTransform","transform","style","opacity","transition","WebkitTransition","useTransform","msTransform","attachEvent","marginTop","marginLeft","speed","cssEase","unslick","trackRef","variableWidth","slidesToOffset","getPreClones","targetLeft","trackElem","node","targetSlideIndex","childNodes","children","getPostClones","slidesOnRight","slidesOnLeft","getSlideClasses","slickActive","slickCenter","slickCloned","getKey","child","fallbackKey","Track","React","PureComponent","ref","t","preCloneSlides","postCloneSlides","childrenCount","Children","count","preCloneNo","childOnClickOptions","childStyle","slideClass","className","slideClasses","cloneElement","classnames","tabIndex","outline","onClick","focusOnSelect","reverse","renderSlides","mouseEvents","onMouseEnter","onMouseOver","onMouseLeave","handleRef","Dots","clickHandler","dotCount","dots","ceil","_rightBound","_leftBound","rightBound","leftBound","dotOptions","customPaging","appendDots","dotsClass","PrevArrow","prevClasses","prevHandler","prevArrowProps","display","customProps","prevArrow","NextArrow","nextClasses","nextHandler","nextArrowProps","nextArrow","InnerSlider","Component","list","track","adaptiveHeight","querySelector","slidesToLoad","onInit","setState","prevState","onLazyLoad","updateState","adaptHeight","autoplay","autoPlay","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","detachEvent","autoplayTimer","prevProps","checkImagesLoad","onReInit","setTrackStyle","didPropsChange","pause","debouncedResize","debounce","resizeWindow","Boolean","updatedState","listNode","trackNode","centerPaddingAdj","initialSlide","initializedState","trackLeft","childrenWidths","preClones","postClones","currentWidth","images","imagesCount","loadedCount","image","prevClickHandler","onclick","parentNode","focus","onload","onerror","onLazyLoadError","dontAnimate","asNavFor","beforeChange","afterChange","asNavForIndex","innerSlider","firstBatch","nodes","clickable","stopPropagation","dir","accessibility","tagName","keyCode","keyHandler","ontouchmove","returnValue","disableBodyScroll","swipe","draggable","touches","pageX","clientX","pageY","clientY","swipeStart","edgeFriction","onEdge","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","swipeMove","touchThreshold","onSwipe","newSlide","minSwipe","activeSlide","swipeEnd","triggerSlideHandler","enableBodyScroll","isNaN","nextIndex","playType","play","autoplaySpeed","pauseType","trackProps","pauseOnHover","onTrackOver","onTrackLeave","selectHandler","dotProps","pauseOnDotsHover","onDotsLeave","onDotsOver","arrowProps","arrows","verticalHeightStyle","centerPaddingStyle","padding","listStyle","touchMove","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","trackRefHandler","ssrState","ssrInit","defaultProps","easing","responsive","rows","slidesPerRow","enquire","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","breakpoints","breakpt","sort","bQuery","json2mq","minWidth","maxWidth","media","settings","newProps","resp","toArray","trim","warn","newChildren","j","row","k","innerSliderRefHandler","c","d","name","getter","o","Symbol","toStringTag","mode","__esModule","ns","object","property","p","s","moduleId","l","modules"],"mappings":"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","file":"react-slick.min.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__0__) {\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 = 12);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","/*!\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","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 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","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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 && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = debounce;\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 = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","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","import React from \"react\";\n\nexport function clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nexport const safePreventDefault = event => {\n const passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if(!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\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 = 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 lazyLoad,\n currentSlide,\n centerMode,\n slidesToScroll,\n slidesToShow,\n useCSS\n } = spec;\n let { lazyLoadedList } = 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 = lazyLoadedList.concat(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 if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(\n getOnDemandLazySlides({ ...spec, currentSlide: animationSlide })\n );\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\" && safePreventDefault(e);\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 safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\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\" || swipeDirection === \"down\")) ||\n (currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\")) ||\n (!canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\"))\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 safePreventDefault(e);\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) safePreventDefault(e);\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 safePreventDefault(e);\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 =\n (slickList.querySelectorAll &&\n slickList.querySelectorAll(\".slick-slide\")) ||\n [];\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 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","\"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 document.querySelectorAll &&\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 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 (this.props.autoplay) {\n this.autoPlay(\"update\");\n } else {\n this.pause(\"paused\");\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 =\n (this.list && this.list.querySelectorAll &&\n this.list.querySelectorAll(\".slick-slide img\")) ||\n [];\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","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","\"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\";\nconst enquire = canUseDOM() && require(\"enquire.js\");\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 enquire.register(query, handler);\n this._responsiveMediaHandlers.push({ query, handler });\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 enquire.unregister(obj.query, obj.handler);\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","import Slider from \"./slider\";\n\nexport default Slider;\n"],"sourceRoot":""}