29337dd38d73cc7975a62559db425481.json 93.4 KB
{"ast":null,"code":"\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction clamp(number, lowerBound, upperBound) {\n  return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n  var onDemandSlides = [];\n  var startIndex = lazyStartIndex(spec);\n  var endIndex = lazyEndIndex(spec);\n\n  for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n      onDemandSlides.push(slideIndex);\n    }\n  }\n\n  return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n  var requiredSlides = [];\n  var startIndex = lazyStartIndex(spec);\n  var endIndex = lazyEndIndex(spec);\n\n  for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    requiredSlides.push(slideIndex);\n  }\n\n  return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n  return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n  return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n  return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n  return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n  return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n  return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n  var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var xDist, yDist, r, swipeAngle;\n  xDist = touchObject.startX - touchObject.curX;\n  yDist = touchObject.startY - touchObject.curY;\n  r = Math.atan2(yDist, xDist);\n  swipeAngle = Math.round(r * 180 / Math.PI);\n\n  if (swipeAngle < 0) {\n    swipeAngle = 360 - Math.abs(swipeAngle);\n  }\n\n  if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n    return \"left\";\n  }\n\n  if (swipeAngle >= 135 && swipeAngle <= 225) {\n    return \"right\";\n  }\n\n  if (verticalSwiping === true) {\n    if (swipeAngle >= 35 && swipeAngle <= 135) {\n      return \"up\";\n    } else {\n      return \"down\";\n    }\n  }\n\n  return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n  var canGo = true;\n\n  if (!spec.infinite) {\n    if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n      canGo = false;\n    } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n      canGo = false;\n    }\n  }\n\n  return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n  var newObject = {};\n  keys.forEach(function (key) {\n    return newObject[key] = spec[key];\n  });\n  return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n  // spec also contains listRef, trackRef\n  var slideCount = _react[\"default\"].Children.count(spec.children);\n\n  var listNode = spec.listRef;\n  var listWidth = Math.ceil(getWidth(listNode));\n  var trackNode = spec.trackRef && spec.trackRef.node;\n  var trackWidth = Math.ceil(getWidth(trackNode));\n  var slideWidth;\n\n  if (!spec.vertical) {\n    var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n    if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n      centerPaddingAdj *= listWidth / 100;\n    }\n\n    slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n  } else {\n    slideWidth = listWidth;\n  }\n\n  var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n  var listHeight = slideHeight * spec.slidesToShow;\n  var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n  if (spec.rtl && spec.currentSlide === undefined) {\n    currentSlide = slideCount - 1 - spec.initialSlide;\n  }\n\n  var lazyLoadedList = spec.lazyLoadedList || [];\n  var slidesToLoad = getOnDemandLazySlides((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n    currentSlide: currentSlide,\n    lazyLoadedList: lazyLoadedList\n  }));\n  lazyLoadedList.concat(slidesToLoad);\n  var state = {\n    slideCount: slideCount,\n    slideWidth: slideWidth,\n    listWidth: listWidth,\n    trackWidth: trackWidth,\n    currentSlide: currentSlide,\n    slideHeight: slideHeight,\n    listHeight: listHeight,\n    lazyLoadedList: lazyLoadedList\n  };\n\n  if (spec.autoplaying === null && spec.autoplay) {\n    state[\"autoplaying\"] = \"playing\";\n  }\n\n  return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n  var waitForAnimate = spec.waitForAnimate,\n      animating = spec.animating,\n      fade = spec.fade,\n      infinite = spec.infinite,\n      index = spec.index,\n      slideCount = spec.slideCount,\n      lazyLoadedList = spec.lazyLoadedList,\n      lazyLoad = spec.lazyLoad,\n      currentSlide = spec.currentSlide,\n      centerMode = spec.centerMode,\n      slidesToScroll = spec.slidesToScroll,\n      slidesToShow = spec.slidesToShow,\n      useCSS = spec.useCSS;\n  if (waitForAnimate && animating) return {};\n  var animationSlide = index,\n      finalSlide,\n      animationLeft,\n      finalLeft;\n  var state = {},\n      nextState = {};\n  var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n  if (fade) {\n    if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n    if (index < 0) {\n      animationSlide = index + slideCount;\n    } else if (index >= slideCount) {\n      animationSlide = index - slideCount;\n    }\n\n    if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n      lazyLoadedList.push(animationSlide);\n    }\n\n    state = {\n      animating: true,\n      currentSlide: animationSlide,\n      lazyLoadedList: lazyLoadedList,\n      targetSlide: animationSlide\n    };\n    nextState = {\n      animating: false,\n      targetSlide: animationSlide\n    };\n  } else {\n    finalSlide = animationSlide;\n\n    if (animationSlide < 0) {\n      finalSlide = animationSlide + slideCount;\n      if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n    } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n      animationSlide = finalSlide = currentSlide;\n    } else if (centerMode && animationSlide >= slideCount) {\n      animationSlide = infinite ? slideCount : slideCount - 1;\n      finalSlide = infinite ? 0 : slideCount - 1;\n    } else if (animationSlide >= slideCount) {\n      finalSlide = animationSlide - slideCount;\n      if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n    }\n\n    if (!infinite && animationSlide + slidesToShow >= slideCount) {\n      finalSlide = slideCount - slidesToShow;\n    }\n\n    animationLeft = getTrackLeft((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      slideIndex: animationSlide\n    }));\n    finalLeft = getTrackLeft((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      slideIndex: finalSlide\n    }));\n\n    if (!infinite) {\n      if (animationLeft === finalLeft) animationSlide = finalSlide;\n      animationLeft = finalLeft;\n    }\n\n    lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      currentSlide: animationSlide\n    })));\n\n    if (!useCSS) {\n      state = {\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n          left: finalLeft\n        })),\n        lazyLoadedList: lazyLoadedList,\n        targetSlide: targetSlide\n      };\n    } else {\n      state = {\n        animating: true,\n        currentSlide: finalSlide,\n        trackStyle: getTrackAnimateCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n          left: animationLeft\n        })),\n        lazyLoadedList: lazyLoadedList,\n        targetSlide: targetSlide\n      };\n      nextState = {\n        animating: false,\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n          left: finalLeft\n        })),\n        swipeLeft: null,\n        targetSlide: targetSlide\n      };\n    }\n  }\n\n  return {\n    state: state,\n    nextState: nextState\n  };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n  var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n  var slidesToScroll = spec.slidesToScroll,\n      slidesToShow = spec.slidesToShow,\n      slideCount = spec.slideCount,\n      currentSlide = spec.currentSlide,\n      previousTargetSlide = spec.targetSlide,\n      lazyLoad = spec.lazyLoad,\n      infinite = spec.infinite;\n  unevenOffset = slideCount % slidesToScroll !== 0;\n  indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n  if (options.message === \"previous\") {\n    slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n    targetSlide = currentSlide - slideOffset;\n\n    if (lazyLoad && !infinite) {\n      previousInt = currentSlide - slideOffset;\n      targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n    }\n\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\n    if (lazyLoad && !infinite) {\n      targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n    }\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\n    if (infinite) {\n      var direction = siblingDirection((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n        targetSlide: targetSlide\n      }));\n\n      if (targetSlide > options.currentSlide && direction === \"left\") {\n        targetSlide = targetSlide - slideCount;\n      } else if (targetSlide < options.currentSlide && direction === \"right\") {\n        targetSlide = targetSlide + slideCount;\n      }\n    }\n  } else if (options.message === \"index\") {\n    targetSlide = Number(options.index);\n  }\n\n  return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n  if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n  if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n  if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n  return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n  e.target.tagName === \"IMG\" && e.preventDefault();\n  if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n  return {\n    dragging: true,\n    touchObject: {\n      startX: e.touches ? e.touches[0].pageX : e.clientX,\n      startY: e.touches ? e.touches[0].pageY : e.clientY,\n      curX: e.touches ? e.touches[0].pageX : e.clientX,\n      curY: e.touches ? e.touches[0].pageY : e.clientY\n    }\n  };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n  // spec also contains, trackRef and slideIndex\n  var scrolling = spec.scrolling,\n      animating = spec.animating,\n      vertical = spec.vertical,\n      swipeToSlide = spec.swipeToSlide,\n      verticalSwiping = spec.verticalSwiping,\n      rtl = spec.rtl,\n      currentSlide = spec.currentSlide,\n      edgeFriction = spec.edgeFriction,\n      edgeDragged = spec.edgeDragged,\n      onEdge = spec.onEdge,\n      swiped = spec.swiped,\n      swiping = spec.swiping,\n      slideCount = spec.slideCount,\n      slidesToScroll = spec.slidesToScroll,\n      infinite = spec.infinite,\n      touchObject = spec.touchObject,\n      swipeEvent = spec.swipeEvent,\n      listHeight = spec.listHeight,\n      listWidth = spec.listWidth;\n  if (scrolling) return;\n  if (animating) return e.preventDefault();\n  if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n  var swipeLeft,\n      state = {};\n  var curLeft = getTrackLeft(spec);\n  touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n  touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n  touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n  var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n  if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n    return {\n      scrolling: true\n    };\n  }\n\n  if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n  var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n  if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n  var dotCount = Math.ceil(slideCount / slidesToScroll);\n  var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n  var touchSwipeLength = touchObject.swipeLength;\n\n  if (!infinite) {\n    if (currentSlide === 0 && swipeDirection === \"right\" || currentSlide + 1 >= dotCount && swipeDirection === \"left\" || !canGoNext(spec) && swipeDirection === \"left\") {\n      touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n      if (edgeDragged === false && onEdge) {\n        onEdge(swipeDirection);\n        state[\"edgeDragged\"] = true;\n      }\n    }\n  }\n\n  if (!swiped && swipeEvent) {\n    swipeEvent(swipeDirection);\n    state[\"swiped\"] = true;\n  }\n\n  if (!vertical) {\n    if (!rtl) {\n      swipeLeft = curLeft + touchSwipeLength * positionOffset;\n    } else {\n      swipeLeft = curLeft - touchSwipeLength * positionOffset;\n    }\n  } else {\n    swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n  }\n\n  if (verticalSwiping) {\n    swipeLeft = curLeft + touchSwipeLength * positionOffset;\n  }\n\n  state = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, state), {}, {\n    touchObject: touchObject,\n    swipeLeft: swipeLeft,\n    trackStyle: getTrackCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      left: swipeLeft\n    }))\n  });\n\n  if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n    return state;\n  }\n\n  if (touchObject.swipeLength > 10) {\n    state[\"swiping\"] = true;\n    e.preventDefault();\n  }\n\n  return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n  var dragging = spec.dragging,\n      swipe = spec.swipe,\n      touchObject = spec.touchObject,\n      listWidth = spec.listWidth,\n      touchThreshold = spec.touchThreshold,\n      verticalSwiping = spec.verticalSwiping,\n      listHeight = spec.listHeight,\n      swipeToSlide = spec.swipeToSlide,\n      scrolling = spec.scrolling,\n      onSwipe = spec.onSwipe,\n      targetSlide = spec.targetSlide,\n      currentSlide = spec.currentSlide,\n      infinite = spec.infinite;\n\n  if (!dragging) {\n    if (swipe) e.preventDefault();\n    return {};\n  }\n\n  var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n  var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n  var state = {\n    dragging: false,\n    edgeDragged: false,\n    scrolling: false,\n    swiping: false,\n    swiped: false,\n    swipeLeft: null,\n    touchObject: {}\n  };\n\n  if (scrolling) {\n    return state;\n  }\n\n  if (!touchObject.swipeLength) {\n    return state;\n  }\n\n  if (touchObject.swipeLength > minSwipe) {\n    e.preventDefault();\n\n    if (onSwipe) {\n      onSwipe(swipeDirection);\n    }\n\n    var slideCount, newSlide;\n    var activeSlide = infinite ? currentSlide : targetSlide;\n\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\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\n      default:\n        slideCount = activeSlide;\n    }\n\n    state[\"triggerSlideHandler\"] = slideCount;\n  } else {\n    // Adjust the track back to it's original position.\n    var currentLeft = getTrackLeft(spec);\n    state[\"trackStyle\"] = getTrackAnimateCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      left: currentLeft\n    }));\n  }\n\n  return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n  var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n  var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n  var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n  var indexes = [];\n\n  while (breakpoint < max) {\n    indexes.push(breakpoint);\n    breakpoint = counter + spec.slidesToScroll;\n    counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n  }\n\n  return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n  var navigables = getNavigableIndexes(spec);\n  var prevNavigable = 0;\n\n  if (index > navigables[navigables.length - 1]) {\n    index = navigables[navigables.length - 1];\n  } else {\n    for (var n in navigables) {\n      if (index < navigables[n]) {\n        index = prevNavigable;\n        break;\n      }\n\n      prevNavigable = navigables[n];\n    }\n  }\n\n  return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n  var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n  if (spec.swipeToSlide) {\n    var swipedSlide;\n    var slickList = spec.listRef;\n    var slides = slickList.querySelectorAll(\".slick-slide\");\n    Array.from(slides).every(function (slide) {\n      if (!spec.vertical) {\n        if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n          swipedSlide = slide;\n          return false;\n        }\n      } else {\n        if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n          swipedSlide = slide;\n          return false;\n        }\n      }\n\n      return true;\n    });\n\n    if (!swipedSlide) {\n      return 0;\n    }\n\n    var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n    var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n    return slidesTraversed;\n  } else {\n    return spec.slidesToScroll;\n  }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n  return (// eslint-disable-next-line no-prototype-builtins\n    keysArray.reduce(function (value, key) {\n      return value && spec.hasOwnProperty(key);\n    }, true) ? null : console.error(\"Keys Missing:\", spec)\n  );\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n  checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n  var trackWidth, trackHeight;\n  var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n  if (!spec.vertical) {\n    trackWidth = getTotalSlides(spec) * spec.slideWidth;\n  } else {\n    trackHeight = trackChildren * spec.slideHeight;\n  }\n\n  var style = {\n    opacity: 1,\n    transition: \"\",\n    WebkitTransition: \"\"\n  };\n\n  if (spec.useTransform) {\n    var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n    style = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, style), {}, {\n      WebkitTransform: WebkitTransform,\n      transform: transform,\n      msTransform: msTransform\n    });\n  } else {\n    if (spec.vertical) {\n      style[\"top\"] = spec.left;\n    } else {\n      style[\"left\"] = spec.left;\n    }\n  }\n\n  if (spec.fade) style = {\n    opacity: 1\n  };\n  if (trackWidth) style.width = trackWidth;\n  if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n  if (window && !window.addEventListener && window.attachEvent) {\n    if (!spec.vertical) {\n      style.marginLeft = spec.left + \"px\";\n    } else {\n      style.marginTop = spec.left + \"px\";\n    }\n  }\n\n  return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n  checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n  var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n  if (spec.useTransform) {\n    style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n    style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n  } else {\n    if (spec.vertical) {\n      style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n    } else {\n      style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n    }\n  }\n\n  return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n  if (spec.unslick) {\n    return 0;\n  }\n\n  checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n  var slideIndex = spec.slideIndex,\n      trackRef = spec.trackRef,\n      infinite = spec.infinite,\n      centerMode = spec.centerMode,\n      slideCount = spec.slideCount,\n      slidesToShow = spec.slidesToShow,\n      slidesToScroll = spec.slidesToScroll,\n      slideWidth = spec.slideWidth,\n      listWidth = spec.listWidth,\n      variableWidth = spec.variableWidth,\n      slideHeight = spec.slideHeight,\n      fade = spec.fade,\n      vertical = spec.vertical;\n  var slideOffset = 0;\n  var targetLeft;\n  var targetSlide;\n  var verticalOffset = 0;\n\n  if (fade || spec.slideCount === 1) {\n    return 0;\n  }\n\n  var slidesToOffset = 0;\n\n  if (infinite) {\n    slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n    // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n    if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n      slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n    } // shift current slide to center of the frame\n\n\n    if (centerMode) {\n      slidesToOffset += parseInt(slidesToShow / 2);\n    }\n  } else {\n    if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n      slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n    }\n\n    if (centerMode) {\n      slidesToOffset = parseInt(slidesToShow / 2);\n    }\n  }\n\n  slideOffset = slidesToOffset * slideWidth;\n  verticalOffset = slidesToOffset * slideHeight;\n\n  if (!vertical) {\n    targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n  } else {\n    targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n  }\n\n  if (variableWidth === true) {\n    var targetSlideIndex;\n    var trackElem = trackRef && trackRef.node;\n    targetSlideIndex = slideIndex + getPreClones(spec);\n    targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n    targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n    if (centerMode === true) {\n      targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n      targetSlide = trackElem && trackElem.children[targetSlideIndex];\n      targetLeft = 0;\n\n      for (var slide = 0; slide < targetSlideIndex; slide++) {\n        targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n      }\n\n      targetLeft -= parseInt(spec.centerPadding);\n      targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n    }\n  }\n\n  return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n\n  if (spec.variableWidth) {\n    return spec.slideCount;\n  }\n\n  return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n\n  return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n  return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n  if (spec.targetSlide > spec.currentSlide) {\n    if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n      return \"left\";\n    }\n\n    return \"right\";\n  } else {\n    if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n      return \"right\";\n    }\n\n    return \"left\";\n  }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n  var slidesToShow = _ref.slidesToShow,\n      centerMode = _ref.centerMode,\n      rtl = _ref.rtl,\n      centerPadding = _ref.centerPadding; // returns no of slides on the right of active slide\n\n  if (centerMode) {\n    var right = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) right += 1;\n    if (rtl && slidesToShow % 2 === 0) right += 1;\n    return right;\n  }\n\n  if (rtl) {\n    return 0;\n  }\n\n  return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n  var slidesToShow = _ref2.slidesToShow,\n      centerMode = _ref2.centerMode,\n      rtl = _ref2.rtl,\n      centerPadding = _ref2.centerPadding; // returns no of slides on the left of active slide\n\n  if (centerMode) {\n    var left = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) left += 1;\n    if (!rtl && slidesToShow % 2 === 0) left += 1;\n    return left;\n  }\n\n  if (rtl) {\n    return slidesToShow - 1;\n  }\n\n  return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n  return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/@ant-design/react-slick/lib/utils/innerSliderUtils.js"],"names":["_interopRequireDefault","require","Object","defineProperty","exports","value","clamp","canUseDOM","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getPostClones","getPreClones","getTrackLeft","getTrackAnimateCSS","getTrackCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","swipeEnd","swipeMove","swipeStart","keyHandler","changeSlide","slideHandler","initializedState","extractObject","canGoNext","getSwipeDirection","getHeight","getWidth","lazySlidesOnRight","lazySlidesOnLeft","lazyEndIndex","lazyStartIndex","getRequiredLazySlides","getOnDemandLazySlides","_objectSpread2","_react","number","lowerBound","upperBound","Math","max","min","spec","onDemandSlides","startIndex","endIndex","slideIndex","lazyLoadedList","indexOf","push","requiredSlides","currentSlide","centerMode","floor","slidesToShow","parseInt","centerPadding","elem","offsetWidth","offsetHeight","touchObject","verticalSwiping","arguments","length","undefined","xDist","yDist","r","swipeAngle","startX","curX","startY","curY","atan2","round","PI","abs","canGo","infinite","slideCount","keys","newObject","forEach","key","Children","count","children","listNode","listRef","listWidth","ceil","trackNode","trackRef","node","trackWidth","slideWidth","vertical","centerPaddingAdj","slice","slideHeight","querySelector","listHeight","initialSlide","rtl","slidesToLoad","concat","state","autoplaying","autoplay","waitForAnimate","animating","fade","index","lazyLoad","slidesToScroll","useCSS","animationSlide","finalSlide","animationLeft","finalLeft","nextState","targetSlide","trackStyle","left","swipeLeft","options","indexOffset","previousInt","slideOffset","unevenOffset","previousTargetSlide","message","direction","Number","e","accessibility","target","tagName","match","keyCode","swipe","draggable","preventDefault","type","dragging","touches","pageX","clientX","pageY","clientY","scrolling","swipeToSlide","edgeFriction","edgeDragged","onEdge","swiped","swiping","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","newSlide","activeSlide","currentLeft","breakpoint","counter","indexes","navigables","prevNavigable","n","centerOffset","swipedSlide","slickList","slides","querySelectorAll","Array","from","every","slide","offsetLeft","offsetTop","currentIndex","slidesTraversed","dataset","keysArray","reduce","hasOwnProperty","console","error","trackHeight","trackChildren","style","opacity","transition","WebkitTransition","useTransform","WebkitTransform","transform","msTransform","width","height","window","addEventListener","attachEvent","marginLeft","marginTop","speed","cssEase","unslick","variableWidth","targetLeft","verticalOffset","slidesToOffset","targetSlideIndex","trackElem","childNodes","_ref","right","_ref2","document","createElement"],"mappings":"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","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction clamp(number, lowerBound, upperBound) {\n  return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n  var onDemandSlides = [];\n  var startIndex = lazyStartIndex(spec);\n  var endIndex = lazyEndIndex(spec);\n\n  for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n      onDemandSlides.push(slideIndex);\n    }\n  }\n\n  return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n  var requiredSlides = [];\n  var startIndex = lazyStartIndex(spec);\n  var endIndex = lazyEndIndex(spec);\n\n  for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    requiredSlides.push(slideIndex);\n  }\n\n  return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n  return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n  return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n  return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n  return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n  return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n  return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n  var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var xDist, yDist, r, swipeAngle;\n  xDist = touchObject.startX - touchObject.curX;\n  yDist = touchObject.startY - touchObject.curY;\n  r = Math.atan2(yDist, xDist);\n  swipeAngle = Math.round(r * 180 / Math.PI);\n\n  if (swipeAngle < 0) {\n    swipeAngle = 360 - Math.abs(swipeAngle);\n  }\n\n  if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n    return \"left\";\n  }\n\n  if (swipeAngle >= 135 && swipeAngle <= 225) {\n    return \"right\";\n  }\n\n  if (verticalSwiping === true) {\n    if (swipeAngle >= 35 && swipeAngle <= 135) {\n      return \"up\";\n    } else {\n      return \"down\";\n    }\n  }\n\n  return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n  var canGo = true;\n\n  if (!spec.infinite) {\n    if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n      canGo = false;\n    } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n      canGo = false;\n    }\n  }\n\n  return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n  var newObject = {};\n  keys.forEach(function (key) {\n    return newObject[key] = spec[key];\n  });\n  return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n  // spec also contains listRef, trackRef\n  var slideCount = _react[\"default\"].Children.count(spec.children);\n\n  var listNode = spec.listRef;\n  var listWidth = Math.ceil(getWidth(listNode));\n  var trackNode = spec.trackRef && spec.trackRef.node;\n  var trackWidth = Math.ceil(getWidth(trackNode));\n  var slideWidth;\n\n  if (!spec.vertical) {\n    var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n    if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n      centerPaddingAdj *= listWidth / 100;\n    }\n\n    slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n  } else {\n    slideWidth = listWidth;\n  }\n\n  var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n  var listHeight = slideHeight * spec.slidesToShow;\n  var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n  if (spec.rtl && spec.currentSlide === undefined) {\n    currentSlide = slideCount - 1 - spec.initialSlide;\n  }\n\n  var lazyLoadedList = spec.lazyLoadedList || [];\n  var slidesToLoad = getOnDemandLazySlides((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n    currentSlide: currentSlide,\n    lazyLoadedList: lazyLoadedList\n  }));\n  lazyLoadedList.concat(slidesToLoad);\n  var state = {\n    slideCount: slideCount,\n    slideWidth: slideWidth,\n    listWidth: listWidth,\n    trackWidth: trackWidth,\n    currentSlide: currentSlide,\n    slideHeight: slideHeight,\n    listHeight: listHeight,\n    lazyLoadedList: lazyLoadedList\n  };\n\n  if (spec.autoplaying === null && spec.autoplay) {\n    state[\"autoplaying\"] = \"playing\";\n  }\n\n  return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n  var waitForAnimate = spec.waitForAnimate,\n      animating = spec.animating,\n      fade = spec.fade,\n      infinite = spec.infinite,\n      index = spec.index,\n      slideCount = spec.slideCount,\n      lazyLoadedList = spec.lazyLoadedList,\n      lazyLoad = spec.lazyLoad,\n      currentSlide = spec.currentSlide,\n      centerMode = spec.centerMode,\n      slidesToScroll = spec.slidesToScroll,\n      slidesToShow = spec.slidesToShow,\n      useCSS = spec.useCSS;\n  if (waitForAnimate && animating) return {};\n  var animationSlide = index,\n      finalSlide,\n      animationLeft,\n      finalLeft;\n  var state = {},\n      nextState = {};\n  var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n  if (fade) {\n    if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n    if (index < 0) {\n      animationSlide = index + slideCount;\n    } else if (index >= slideCount) {\n      animationSlide = index - slideCount;\n    }\n\n    if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n      lazyLoadedList.push(animationSlide);\n    }\n\n    state = {\n      animating: true,\n      currentSlide: animationSlide,\n      lazyLoadedList: lazyLoadedList,\n      targetSlide: animationSlide\n    };\n    nextState = {\n      animating: false,\n      targetSlide: animationSlide\n    };\n  } else {\n    finalSlide = animationSlide;\n\n    if (animationSlide < 0) {\n      finalSlide = animationSlide + slideCount;\n      if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n    } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n      animationSlide = finalSlide = currentSlide;\n    } else if (centerMode && animationSlide >= slideCount) {\n      animationSlide = infinite ? slideCount : slideCount - 1;\n      finalSlide = infinite ? 0 : slideCount - 1;\n    } else if (animationSlide >= slideCount) {\n      finalSlide = animationSlide - slideCount;\n      if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n    }\n\n    if (!infinite && animationSlide + slidesToShow >= slideCount) {\n      finalSlide = slideCount - slidesToShow;\n    }\n\n    animationLeft = getTrackLeft((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      slideIndex: animationSlide\n    }));\n    finalLeft = getTrackLeft((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      slideIndex: finalSlide\n    }));\n\n    if (!infinite) {\n      if (animationLeft === finalLeft) animationSlide = finalSlide;\n      animationLeft = finalLeft;\n    }\n\n    lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      currentSlide: animationSlide\n    })));\n\n    if (!useCSS) {\n      state = {\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n          left: finalLeft\n        })),\n        lazyLoadedList: lazyLoadedList,\n        targetSlide: targetSlide\n      };\n    } else {\n      state = {\n        animating: true,\n        currentSlide: finalSlide,\n        trackStyle: getTrackAnimateCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n          left: animationLeft\n        })),\n        lazyLoadedList: lazyLoadedList,\n        targetSlide: targetSlide\n      };\n      nextState = {\n        animating: false,\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n          left: finalLeft\n        })),\n        swipeLeft: null,\n        targetSlide: targetSlide\n      };\n    }\n  }\n\n  return {\n    state: state,\n    nextState: nextState\n  };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n  var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n  var slidesToScroll = spec.slidesToScroll,\n      slidesToShow = spec.slidesToShow,\n      slideCount = spec.slideCount,\n      currentSlide = spec.currentSlide,\n      previousTargetSlide = spec.targetSlide,\n      lazyLoad = spec.lazyLoad,\n      infinite = spec.infinite;\n  unevenOffset = slideCount % slidesToScroll !== 0;\n  indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n  if (options.message === \"previous\") {\n    slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n    targetSlide = currentSlide - slideOffset;\n\n    if (lazyLoad && !infinite) {\n      previousInt = currentSlide - slideOffset;\n      targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n    }\n\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\n    if (lazyLoad && !infinite) {\n      targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n    }\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\n    if (infinite) {\n      var direction = siblingDirection((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n        targetSlide: targetSlide\n      }));\n\n      if (targetSlide > options.currentSlide && direction === \"left\") {\n        targetSlide = targetSlide - slideCount;\n      } else if (targetSlide < options.currentSlide && direction === \"right\") {\n        targetSlide = targetSlide + slideCount;\n      }\n    }\n  } else if (options.message === \"index\") {\n    targetSlide = Number(options.index);\n  }\n\n  return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n  if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n  if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n  if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n  return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n  e.target.tagName === \"IMG\" && e.preventDefault();\n  if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n  return {\n    dragging: true,\n    touchObject: {\n      startX: e.touches ? e.touches[0].pageX : e.clientX,\n      startY: e.touches ? e.touches[0].pageY : e.clientY,\n      curX: e.touches ? e.touches[0].pageX : e.clientX,\n      curY: e.touches ? e.touches[0].pageY : e.clientY\n    }\n  };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n  // spec also contains, trackRef and slideIndex\n  var scrolling = spec.scrolling,\n      animating = spec.animating,\n      vertical = spec.vertical,\n      swipeToSlide = spec.swipeToSlide,\n      verticalSwiping = spec.verticalSwiping,\n      rtl = spec.rtl,\n      currentSlide = spec.currentSlide,\n      edgeFriction = spec.edgeFriction,\n      edgeDragged = spec.edgeDragged,\n      onEdge = spec.onEdge,\n      swiped = spec.swiped,\n      swiping = spec.swiping,\n      slideCount = spec.slideCount,\n      slidesToScroll = spec.slidesToScroll,\n      infinite = spec.infinite,\n      touchObject = spec.touchObject,\n      swipeEvent = spec.swipeEvent,\n      listHeight = spec.listHeight,\n      listWidth = spec.listWidth;\n  if (scrolling) return;\n  if (animating) return e.preventDefault();\n  if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n  var swipeLeft,\n      state = {};\n  var curLeft = getTrackLeft(spec);\n  touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n  touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n  touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n  var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n  if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n    return {\n      scrolling: true\n    };\n  }\n\n  if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n  var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n  if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n  var dotCount = Math.ceil(slideCount / slidesToScroll);\n  var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n  var touchSwipeLength = touchObject.swipeLength;\n\n  if (!infinite) {\n    if (currentSlide === 0 && swipeDirection === \"right\" || currentSlide + 1 >= dotCount && swipeDirection === \"left\" || !canGoNext(spec) && swipeDirection === \"left\") {\n      touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n      if (edgeDragged === false && onEdge) {\n        onEdge(swipeDirection);\n        state[\"edgeDragged\"] = true;\n      }\n    }\n  }\n\n  if (!swiped && swipeEvent) {\n    swipeEvent(swipeDirection);\n    state[\"swiped\"] = true;\n  }\n\n  if (!vertical) {\n    if (!rtl) {\n      swipeLeft = curLeft + touchSwipeLength * positionOffset;\n    } else {\n      swipeLeft = curLeft - touchSwipeLength * positionOffset;\n    }\n  } else {\n    swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n  }\n\n  if (verticalSwiping) {\n    swipeLeft = curLeft + touchSwipeLength * positionOffset;\n  }\n\n  state = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, state), {}, {\n    touchObject: touchObject,\n    swipeLeft: swipeLeft,\n    trackStyle: getTrackCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      left: swipeLeft\n    }))\n  });\n\n  if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n    return state;\n  }\n\n  if (touchObject.swipeLength > 10) {\n    state[\"swiping\"] = true;\n    e.preventDefault();\n  }\n\n  return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n  var dragging = spec.dragging,\n      swipe = spec.swipe,\n      touchObject = spec.touchObject,\n      listWidth = spec.listWidth,\n      touchThreshold = spec.touchThreshold,\n      verticalSwiping = spec.verticalSwiping,\n      listHeight = spec.listHeight,\n      swipeToSlide = spec.swipeToSlide,\n      scrolling = spec.scrolling,\n      onSwipe = spec.onSwipe,\n      targetSlide = spec.targetSlide,\n      currentSlide = spec.currentSlide,\n      infinite = spec.infinite;\n\n  if (!dragging) {\n    if (swipe) e.preventDefault();\n    return {};\n  }\n\n  var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n  var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n  var state = {\n    dragging: false,\n    edgeDragged: false,\n    scrolling: false,\n    swiping: false,\n    swiped: false,\n    swipeLeft: null,\n    touchObject: {}\n  };\n\n  if (scrolling) {\n    return state;\n  }\n\n  if (!touchObject.swipeLength) {\n    return state;\n  }\n\n  if (touchObject.swipeLength > minSwipe) {\n    e.preventDefault();\n\n    if (onSwipe) {\n      onSwipe(swipeDirection);\n    }\n\n    var slideCount, newSlide;\n    var activeSlide = infinite ? currentSlide : targetSlide;\n\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\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\n      default:\n        slideCount = activeSlide;\n    }\n\n    state[\"triggerSlideHandler\"] = slideCount;\n  } else {\n    // Adjust the track back to it's original position.\n    var currentLeft = getTrackLeft(spec);\n    state[\"trackStyle\"] = getTrackAnimateCSS((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, spec), {}, {\n      left: currentLeft\n    }));\n  }\n\n  return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n  var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n  var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n  var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n  var indexes = [];\n\n  while (breakpoint < max) {\n    indexes.push(breakpoint);\n    breakpoint = counter + spec.slidesToScroll;\n    counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n  }\n\n  return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n  var navigables = getNavigableIndexes(spec);\n  var prevNavigable = 0;\n\n  if (index > navigables[navigables.length - 1]) {\n    index = navigables[navigables.length - 1];\n  } else {\n    for (var n in navigables) {\n      if (index < navigables[n]) {\n        index = prevNavigable;\n        break;\n      }\n\n      prevNavigable = navigables[n];\n    }\n  }\n\n  return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n  var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n  if (spec.swipeToSlide) {\n    var swipedSlide;\n    var slickList = spec.listRef;\n    var slides = slickList.querySelectorAll(\".slick-slide\");\n    Array.from(slides).every(function (slide) {\n      if (!spec.vertical) {\n        if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n          swipedSlide = slide;\n          return false;\n        }\n      } else {\n        if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n          swipedSlide = slide;\n          return false;\n        }\n      }\n\n      return true;\n    });\n\n    if (!swipedSlide) {\n      return 0;\n    }\n\n    var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n    var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n    return slidesTraversed;\n  } else {\n    return spec.slidesToScroll;\n  }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n  return (// eslint-disable-next-line no-prototype-builtins\n    keysArray.reduce(function (value, key) {\n      return value && spec.hasOwnProperty(key);\n    }, true) ? null : console.error(\"Keys Missing:\", spec)\n  );\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n  checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n  var trackWidth, trackHeight;\n  var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n  if (!spec.vertical) {\n    trackWidth = getTotalSlides(spec) * spec.slideWidth;\n  } else {\n    trackHeight = trackChildren * spec.slideHeight;\n  }\n\n  var style = {\n    opacity: 1,\n    transition: \"\",\n    WebkitTransition: \"\"\n  };\n\n  if (spec.useTransform) {\n    var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n    style = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, style), {}, {\n      WebkitTransform: WebkitTransform,\n      transform: transform,\n      msTransform: msTransform\n    });\n  } else {\n    if (spec.vertical) {\n      style[\"top\"] = spec.left;\n    } else {\n      style[\"left\"] = spec.left;\n    }\n  }\n\n  if (spec.fade) style = {\n    opacity: 1\n  };\n  if (trackWidth) style.width = trackWidth;\n  if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n  if (window && !window.addEventListener && window.attachEvent) {\n    if (!spec.vertical) {\n      style.marginLeft = spec.left + \"px\";\n    } else {\n      style.marginTop = spec.left + \"px\";\n    }\n  }\n\n  return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n  checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n  var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n  if (spec.useTransform) {\n    style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n    style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n  } else {\n    if (spec.vertical) {\n      style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n    } else {\n      style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n    }\n  }\n\n  return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n  if (spec.unslick) {\n    return 0;\n  }\n\n  checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n  var slideIndex = spec.slideIndex,\n      trackRef = spec.trackRef,\n      infinite = spec.infinite,\n      centerMode = spec.centerMode,\n      slideCount = spec.slideCount,\n      slidesToShow = spec.slidesToShow,\n      slidesToScroll = spec.slidesToScroll,\n      slideWidth = spec.slideWidth,\n      listWidth = spec.listWidth,\n      variableWidth = spec.variableWidth,\n      slideHeight = spec.slideHeight,\n      fade = spec.fade,\n      vertical = spec.vertical;\n  var slideOffset = 0;\n  var targetLeft;\n  var targetSlide;\n  var verticalOffset = 0;\n\n  if (fade || spec.slideCount === 1) {\n    return 0;\n  }\n\n  var slidesToOffset = 0;\n\n  if (infinite) {\n    slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n    // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n    if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n      slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n    } // shift current slide to center of the frame\n\n\n    if (centerMode) {\n      slidesToOffset += parseInt(slidesToShow / 2);\n    }\n  } else {\n    if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n      slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n    }\n\n    if (centerMode) {\n      slidesToOffset = parseInt(slidesToShow / 2);\n    }\n  }\n\n  slideOffset = slidesToOffset * slideWidth;\n  verticalOffset = slidesToOffset * slideHeight;\n\n  if (!vertical) {\n    targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n  } else {\n    targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n  }\n\n  if (variableWidth === true) {\n    var targetSlideIndex;\n    var trackElem = trackRef && trackRef.node;\n    targetSlideIndex = slideIndex + getPreClones(spec);\n    targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n    targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n    if (centerMode === true) {\n      targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n      targetSlide = trackElem && trackElem.children[targetSlideIndex];\n      targetLeft = 0;\n\n      for (var slide = 0; slide < targetSlideIndex; slide++) {\n        targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n      }\n\n      targetLeft -= parseInt(spec.centerPadding);\n      targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n    }\n  }\n\n  return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n\n  if (spec.variableWidth) {\n    return spec.slideCount;\n  }\n\n  return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n\n  return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n  return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n  if (spec.targetSlide > spec.currentSlide) {\n    if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n      return \"left\";\n    }\n\n    return \"right\";\n  } else {\n    if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n      return \"right\";\n    }\n\n    return \"left\";\n  }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n  var slidesToShow = _ref.slidesToShow,\n      centerMode = _ref.centerMode,\n      rtl = _ref.rtl,\n      centerPadding = _ref.centerPadding;\n\n  // returns no of slides on the right of active slide\n  if (centerMode) {\n    var right = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) right += 1;\n    if (rtl && slidesToShow % 2 === 0) right += 1;\n    return right;\n  }\n\n  if (rtl) {\n    return 0;\n  }\n\n  return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n  var slidesToShow = _ref2.slidesToShow,\n      centerMode = _ref2.centerMode,\n      rtl = _ref2.rtl,\n      centerPadding = _ref2.centerPadding;\n\n  // returns no of slides on the left of active slide\n  if (centerMode) {\n    var left = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) left += 1;\n    if (!rtl && slidesToShow % 2 === 0) left += 1;\n    return left;\n  }\n\n  if (rtl) {\n    return slidesToShow - 1;\n  }\n\n  return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n  return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;"]},"metadata":{},"sourceType":"script"}