{"version":3,"sources":["webpack:///./node_modules/ant-design-vue/es/vc-slider/src/Slider.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/common/Track.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/utils.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/Handle.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/Range.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/common/Steps.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/common/Marks.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/common/createSlider.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/default-props.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/initial-state.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/utils/innerSliderUtils.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/track.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/dots.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/arrows.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/inner-slider.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/slider.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/index.js"],"names":["Slider","name","mixins","props","defaultValue","number","value","disabled","bool","autoFocus","tabIndex","reverse","min","max","data","undefined","this","sValue","trimAlignValue","dragging","watch","handler","val","setChangeValue","deep","methods","newValue","nextValue","$props","setState","$emit","onChange","state","isNotControlled","nextState","changedValue","onStart","position","calcValueByPos","startValue","startPosition","prevMovedHandleIndex","onEnd","force","removeDocumentEvents","onMove","e","onKeyboard","_$props","vertical","valueMutator","mutatedValue","getLowerBound","getUpperBound","v","nextProps","arguments","length","mergedProps","getTrack","_ref","prefixCls","included","offset","minimumTrackStyle","_trackStyle","h","$createElement","attrs","style","renderSlider","_this","trackStyle","handleStyle","handle","defaultHandle","handleGenerator","calcOffset","handles","className","index","directives","saveHandle","on","focus","onFocus","blur","onBlur","tracks","Track","functional","render","context","_ref2","_context$props","_context$data","positonStyle","elStyle","isEventFromHandle","Object","keys","some","key","target","$el","error","isValueOutOfRange","isNotTouchEvent","touches","type","toLowerCase","getClosestPoint","marks","step","points","map","parseFloat","base","Math","pow","getPrecision","maxSteps","floor","steps","closestStep","round","push","diffs","point","abs","indexOf","apply","stepString","toString","precision","getMousePosition","zoom","window","visualViewport","width","document","body","getBoundingClientRect","toFixed","clientY","pageX","getTouchPosition","getHandleCenterPosition","coords","top","height","pageXOffset","left","ensureValueInRange","_ref3","ensureValuePrecision","closestPoint","isFinite","pauseEvent","stopPropagation","preventDefault","calculateNextValue","func","operations","increase","a","b","decrease","indexToGet","JSON","stringify","keyToGet","getKeyboardValueMutator","method","keyCode","UP","RIGHT","DOWN","LEFT","END","HOME","PAGE_UP","PAGE_DOWN","string","clickFocused","mounted","onMouseUpListener","handleMouseUp","beforeDestroy","remove","setClickFocus","focused","activeElement","$refs","handleBlur","__emit","handleKeyDown","clickFocus","handleMousedown","_getOptionProps","positionStyle","ariaProps","_tabIndex","handleProps","role","keydown","mousedown","ref","_trimAlignValue","bounds","allowCross","pushable","thershold","Number","valInRange","valNotConflict","rangeProps","arrayOf","count","oneOfType","Range","displayName","initialValue","Array","i","recent","sHandle","_this2","nextBounds","every","newValues","controlledState","forEach","item","$data","closestBound","getClosestBound","getBoundNeedMoving","prevValue","concat","oldValue","moveTo","isFromKeyboardEvent","boundNeedMoving","isAtTheSamePoint","getPoints","cache","_getPointsCache","pointsObject","sort","_this3","nextHandle","pushSurroundingHandles","handlesRefs","threshold","direction","diffToNext","pushHandle","amount","originalValue","currentValue","pushHandleOnePoint","pointIndex","nextPointIndex","ensureValueNotConflict","offsets","slice","_","_classNames","trackClassName","_this4","handleClassName","_classNames2","dots","warning","Steps","lowerBound","upperBound","dotStyle","activeDotStyle","range","elements","isActived","pointClassName","Marks","clickLabel","listeners","marksKeys","markPoint","markPointIsObject","markLabel","label","isActive","markClassName","bottomStyle","marginBottom","leftStyle","transform","msTransform","markStyle","noop","createSlider","Component","propTypes","object","maximumTrackStyle","railStyle","model","prop","event","isPointDiffEven","$nextTick","sliderRef","ownerDocument","restProps","Handle","onMouseDown","button","isVertical","utils","handlePosition","dragOffset","addDocumentMouseEvents","onTouchStart","addDocumentTouchEvents","onMouseUp","onMouseMove","onTouchMove","onKeyDown","onClickMarkLabel","getSliderStart","slider","rect","bottom","right","getSliderLength","onTouchMoveListener","addEventListener","onTouchUpListener","onMouseMoveListener","calcValue","ratio","sign","pixelOffset","_renderSlider","sliderClassName","markProps","$slots","defaultProps","accessibility","def","adaptiveHeight","afterChange","any","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","dotsClass","draggable","unslick","easing","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","verticalSwiping","asNavFor","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","array","rows","rtl","slide","slidesPerRow","slidesToScroll","slidesToShow","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","waitForAnimate","children","__propsSymbol__","initialState","animating","autoplaying","currentDirection","currentLeft","currentSlide","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackWidth","getOnDemandLazySlides","spec","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","parseInt","getWidth","elem","offsetWidth","getHeight","offsetHeight","getSwipeDirection","swipeAngle","xDist","yDist","r","atan2","PI","canGoNext","canGo","extractObject","newObject","initializedState","ceil","listRef","trackRef","centerPaddingAdj","querySelector","slidesToLoad","animationSlide","finalSlide","animationLeft","finalLeft","getTrackLeft","getTrackAnimateCSS","options","previousInt","slideOffset","targetSlide","unevenOffset","indexOffset","message","siblingDirection","tagName","match","clientX","pageY","onEdge","curLeft","swipeLength","sqrt","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","onSwipe","minSwipe","newSlide","getSlideCount","checkNavigable","getNavigableIndexes","breakpoint","counter","indexes","navigables","prevNavigable","n","centerOffset","swipedSlide","slickList","slides","querySelectorAll","from","offsetTop","offsetLeft","currentIndex","slidesTraversed","dataset","checkSpecKeys","keysArray","reduce","hasOwnProperty","console","trackHeight","trackChildren","getTotalSlides","opacity","transition","WebkitTransition","WebkitTransform","attachEvent","marginTop","marginLeft","targetLeft","verticalOffset","slidesToOffset","getPreClones","targetSlideIndex","trackElem","childNodes","getPostClones","slidesOnRight","slidesOnLeft","canUseDOM","createElement","getSlideClasses","slickActive","slickCenter","slickCloned","slickCurrent","getSlideStyle","getKey","child","fallbackKey","preCloneSlides","postCloneSlides","childrenCount","childOnClickOptions","childStyle","slideClass","slideClasses","outline","click","preCloneNo","mouseenter","mouseover","mouseleave","mouseEvents","trackProps","getDotCount","appendDots","customPaging","clickHandler","join","split","x","leftBound","rightBound","dotOptions","onClick","PrevArrow","prevClasses","prevHandler","prevArrowProps","domProps","display","customProps","prevArrow","NextArrow","nextClasses","nextHandler","nextArrowProps","nextArrow","use","BaseMixin","preProps","list","track","callbackTimers","clickable","debouncedResize","listRefHandler","trackRefHandler","adaptHeight","onWindowResized","setTrackStyle","cancel","resizeWindow","updateState","handleAutoPlay","pause","clearTimeout","animationEndCallback","callback","updatedState","ssrInit","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","childWidth","_i","_i2","currentWidth","trackLeft","checkImagesLoad","images","imagesCount","loadedCount","prototype","call","image","onclick","prevClickHandler","parentNode","onload","setTimeout","onerror","progressiveLazyLoad","_index","lazyLoadTimer","clearInterval","slideHandler","dontAnimate","_slideHandler2","filter","innerSlider","firstBatch","changeSlide","keyHandler","dir","selectHandler","disableBodyScroll","returnValue","ontouchmove","enableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","slickPrev","_this5","slickNext","_this6","slickGoTo","_this7","isNaN","play","nextIndex","playType","autoplayTimer","setInterval","pauseType","onDotsOver","onDotsLeave","onTrackOver","onTrackLeave","onSlideFocus","onSlideBlur","beforeMount","prevState","_this8","ro","observe","onfocus","onblur","timer","removeEventListener","detachEvent","updated","_this9","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","err","dotProps","_$scopedSlots","$scopedSlots","arrowProps","_$scopedSlots2","prevArrowCustom","nextArrowCustom","verticalHeightStyle","centerPaddingStyle","padding","listStyle","listProps","mousemove","mouseup","touchstart","touchmove","touchend","touchcancel","innerSliderProps","enquire","_responsiveMediaHandlers","innerSliderRefHandler","media","query","register","slickPause","slickPlay","breakpoints","breakpt","y","bQuery","minWidth","maxWidth","obj","unregister","settings","newProps","resp","trim","warn","newChildren","j","row","k","sliderProps","scopedSlots"],"mappings":"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","file":"js/chunk-vendors~1ce92aa8.5afa029c.js","sourcesContent":["import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport warning from '../../_util/warning';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { hasProp } from '../../_util/props-util';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = {\n name: 'Slider',\n mixins: [BaseMixin],\n props: {\n defaultValue: PropTypes.number,\n value: PropTypes.number,\n disabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n tabIndex: PropTypes.number,\n reverse: PropTypes.bool,\n min: PropTypes.number,\n max: PropTypes.number\n },\n data: function data() {\n var defaultValue = this.defaultValue !== undefined ? this.defaultValue : this.min;\n var value = this.value !== undefined ? this.value : defaultValue;\n\n warning(!hasProp(this, 'minimumTrackStyle'), 'Slider', 'minimumTrackStyle will be deprecate, please use trackStyle instead.');\n warning(!hasProp(this, 'maximumTrackStyle'), 'Slider', 'maximumTrackStyle will be deprecate, please use railStyle instead.');\n return {\n sValue: this.trimAlignValue(value),\n dragging: false\n };\n },\n\n watch: {\n value: {\n handler: function handler(val) {\n this.setChangeValue(val);\n },\n\n deep: true\n },\n min: function min() {\n var sValue = this.sValue;\n\n this.setChangeValue(sValue);\n },\n max: function max() {\n var sValue = this.sValue;\n\n this.setChangeValue(sValue);\n }\n },\n methods: {\n setChangeValue: function setChangeValue(value) {\n var newValue = value !== undefined ? value : this.sValue;\n var nextValue = this.trimAlignValue(newValue, this.$props);\n if (nextValue === this.sValue) return;\n\n this.setState({ sValue: nextValue });\n if (utils.isValueOutOfRange(newValue, this.$props)) {\n this.$emit('change', nextValue);\n }\n },\n onChange: function onChange(state) {\n var isNotControlled = !hasProp(this, 'value');\n var nextState = state.sValue > this.max ? _extends({}, state, { sValue: this.max }) : state;\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.sValue;\n this.$emit('change', changedValue);\n },\n onStart: function onStart(position) {\n this.setState({ dragging: true });\n var sValue = this.sValue;\n\n this.$emit('beforeChange', sValue);\n\n var value = this.calcValueByPos(position);\n\n this.startValue = value;\n this.startPosition = position;\n if (value === sValue) return;\n\n this.prevMovedHandleIndex = 0;\n this.onChange({ sValue: value });\n },\n onEnd: function onEnd(force) {\n var dragging = this.dragging;\n\n this.removeDocumentEvents();\n if (dragging || force) {\n this.$emit('afterChange', this.sValue);\n }\n this.setState({ dragging: false });\n },\n onMove: function onMove(e, position) {\n utils.pauseEvent(e);\n var sValue = this.sValue;\n\n var value = this.calcValueByPos(position);\n if (value === sValue) return;\n\n this.onChange({ sValue: value });\n },\n onKeyboard: function onKeyboard(e) {\n var _$props = this.$props,\n reverse = _$props.reverse,\n vertical = _$props.vertical;\n\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n if (valueMutator) {\n utils.pauseEvent(e);\n var sValue = this.sValue;\n\n var mutatedValue = valueMutator(sValue, this.$props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === sValue) return;\n\n this.onChange({ sValue: value });\n this.$emit('afterChange', value);\n this.onEnd();\n }\n },\n getLowerBound: function getLowerBound() {\n return this.min;\n },\n getUpperBound: function getUpperBound() {\n return this.sValue;\n },\n trimAlignValue: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n var mergedProps = _extends({}, this.$props, nextProps);\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n },\n getTrack: function getTrack(_ref) {\n var prefixCls = _ref.prefixCls,\n reverse = _ref.reverse,\n vertical = _ref.vertical,\n included = _ref.included,\n offset = _ref.offset,\n minimumTrackStyle = _ref.minimumTrackStyle,\n _trackStyle = _ref._trackStyle;\n var h = this.$createElement;\n\n return h(Track, {\n 'class': prefixCls + '-track',\n attrs: { vertical: vertical,\n included: included,\n offset: 0,\n reverse: reverse,\n length: offset\n },\n style: _extends({}, minimumTrackStyle, _trackStyle)\n });\n },\n renderSlider: function renderSlider() {\n var _this = this;\n\n var prefixCls = this.prefixCls,\n vertical = this.vertical,\n included = this.included,\n disabled = this.disabled,\n minimumTrackStyle = this.minimumTrackStyle,\n trackStyle = this.trackStyle,\n handleStyle = this.handleStyle,\n tabIndex = this.tabIndex,\n min = this.min,\n max = this.max,\n reverse = this.reverse,\n handle = this.handle,\n defaultHandle = this.defaultHandle;\n\n var handleGenerator = handle || defaultHandle;\n var sValue = this.sValue,\n dragging = this.dragging;\n\n var offset = this.calcOffset(sValue);\n var handles = handleGenerator({\n className: prefixCls + '-handle',\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: sValue,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n style: handleStyle[0] || handleStyle,\n directives: [{\n name: 'ant-ref',\n value: function value(h) {\n return _this.saveHandle(0, h);\n }\n }],\n on: {\n focus: this.onFocus,\n blur: this.onBlur\n }\n });\n\n var _trackStyle = trackStyle[0] || trackStyle;\n return {\n tracks: this.getTrack({\n prefixCls: prefixCls,\n reverse: reverse,\n vertical: vertical,\n included: included,\n offset: offset,\n minimumTrackStyle: minimumTrackStyle,\n _trackStyle: _trackStyle\n }),\n handles: handles\n };\n }\n }\n};\n\nexport default createSlider(Slider);","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\n/* eslint-disable */\nvar Track = {\n functional: true,\n render: function render(h, context) {\n var _ref, _ref2;\n\n var _context$props = context.props,\n included = _context$props.included,\n vertical = _context$props.vertical,\n offset = _context$props.offset,\n length = _context$props.length,\n reverse = _context$props.reverse;\n var _context$data = context.data,\n style = _context$data.style,\n className = _context$data['class'];\n\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', offset + '%'), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, 'height', length + '%'), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', offset + '%'), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, 'width', length + '%'), _ref2);\n\n var elStyle = _extends({}, style, positonStyle);\n return included ? h('div', { 'class': className, style: elStyle }) : null;\n }\n};\n\nexport default Track;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport keyCode from '../../_util/KeyCode';\n\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(function (key) {\n return e.target === handles[key].$el || e.target === handles[key];\n });\n } catch (error) {\n return false;\n }\n}\n\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n\n return value < min || value > max;\n}\n\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\n\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min,\n max = _ref2.max;\n\n var points = Object.keys(marks).map(parseFloat);\n if (step !== null) {\n var base = Math.pow(10, getPrecision(step));\n var maxSteps = Math.floor((max * base - min * base) / (step * base));\n var steps = Math.min((val - min) / step, maxSteps);\n var closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\n\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n return precision;\n}\n\nexport function getMousePosition(vertical, e) {\n var zoom = 1;\n if (window.visualViewport) {\n zoom = +(window.visualViewport.width / document.body.getBoundingClientRect().width).toFixed(2);\n }\n return (vertical ? e.clientY : e.pageX) / zoom;\n}\n\nexport function getTouchPosition(vertical, e) {\n var zoom = 1;\n if (window.visualViewport) {\n zoom = +(window.visualViewport.width / document.body.getBoundingClientRect().width).toFixed(2);\n }\n return (vertical ? e.touches[0].clientY : e.touches[0].pageX) / zoom;\n}\n\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.pageXOffset + coords.left + coords.width * 0.5;\n}\n\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n if (val >= max) {\n return max;\n }\n return val;\n}\n\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n\n var closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\n\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport function calculateNextValue(func, value, props) {\n var operations = {\n increase: function increase(a, b) {\n return a + b;\n },\n decrease: function decrease(a, b) {\n return a - b;\n }\n };\n\n var indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n var keyToGet = Object.keys(props.marks)[indexToGet];\n\n if (props.step) {\n return operations[func](value, props.step);\n } else if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n return value;\n}\n\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n var increase = 'increase';\n var decrease = 'decrease';\n var method = increase;\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;\n break;\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;\n break;\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;\n break;\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.END:\n return function (value, props) {\n return props.max;\n };\n case keyCode.HOME:\n return function (value, props) {\n return props.min;\n };\n case keyCode.PAGE_UP:\n return function (value, props) {\n return value + props.step * 2;\n };\n case keyCode.PAGE_DOWN:\n return function (value, props) {\n return value - props.step * 2;\n };\n\n default:\n return undefined;\n }\n return function (value, props) {\n return calculateNextValue(method, value, props);\n };\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport classNames from 'classnames';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOptionProps, getListeners } from '../../_util/props-util';\nimport addEventListener from '../../vc-util/Dom/addEventListener';\n\nexport default {\n name: 'Handle',\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n vertical: PropTypes.bool,\n offset: PropTypes.number,\n disabled: PropTypes.bool,\n min: PropTypes.number,\n max: PropTypes.number,\n value: PropTypes.number,\n tabIndex: PropTypes.number,\n className: PropTypes.string,\n reverse: PropTypes.bool\n // handleFocus: PropTypes.func.def(noop),\n // handleBlur: PropTypes.func.def(noop),\n },\n data: function data() {\n return {\n clickFocused: false\n };\n },\n mounted: function mounted() {\n // mouseup won't trigger if mouse moved out of handle\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n },\n\n methods: {\n setClickFocus: function setClickFocus(focused) {\n this.setState({ clickFocused: focused });\n },\n handleMouseUp: function handleMouseUp() {\n if (document.activeElement === this.$refs.handle) {\n this.setClickFocus(true);\n }\n },\n handleBlur: function handleBlur(e) {\n this.setClickFocus(false);\n this.__emit('blur', e);\n },\n handleKeyDown: function handleKeyDown() {\n this.setClickFocus(false);\n },\n clickFocus: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n },\n focus: function focus() {\n this.$refs.handle.focus();\n },\n blur: function blur() {\n this.$refs.handle.blur();\n },\n\n // when click can not focus in vue, use mousedown trigger focus\n handleMousedown: function handleMousedown(e) {\n this.focus();\n this.__emit('mousedown', e);\n }\n },\n render: function render() {\n var _ref, _ref2;\n\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n prefixCls = _getOptionProps.prefixCls,\n vertical = _getOptionProps.vertical,\n reverse = _getOptionProps.reverse,\n offset = _getOptionProps.offset,\n disabled = _getOptionProps.disabled,\n min = _getOptionProps.min,\n max = _getOptionProps.max,\n value = _getOptionProps.value,\n tabIndex = _getOptionProps.tabIndex;\n\n var className = classNames(this.$props.className, _defineProperty({}, prefixCls + '-handle-click-focused', this.clickFocused));\n\n var positionStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', offset + '%'), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, 'transform', 'translateY(+50%)'), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', offset + '%'), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, 'transform', 'translateX(' + (reverse ? '+' : '-') + '50%)'), _ref2);\n\n var ariaProps = {\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': !!disabled\n };\n var _tabIndex = tabIndex || 0;\n if (disabled || tabIndex === null) {\n _tabIndex = null;\n }\n\n var handleProps = {\n attrs: _extends({\n role: 'slider',\n tabIndex: _tabIndex\n }, ariaProps),\n 'class': className,\n on: _extends({}, getListeners(this), {\n blur: this.handleBlur,\n keydown: this.handleKeyDown,\n mousedown: this.handleMousedown\n }),\n ref: 'handle',\n style: positionStyle\n };\n return h('div', handleProps);\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport classNames from 'classnames';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { initDefaultProps, hasProp } from '../../_util/props-util';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function _trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar rangeProps = {\n defaultValue: PropTypes.arrayOf(PropTypes.number),\n value: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n pushable: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n allowCross: PropTypes.bool,\n disabled: PropTypes.bool,\n reverse: PropTypes.bool,\n tabIndex: PropTypes.arrayOf(PropTypes.number),\n prefixCls: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n autoFocus: PropTypes.bool\n};\nvar Range = {\n name: 'Range',\n displayName: 'Range',\n mixins: [BaseMixin],\n props: initDefaultProps(rangeProps, {\n count: 1,\n allowCross: true,\n pushable: false,\n tabIndex: []\n }),\n data: function data() {\n var _this = this;\n\n var count = this.count,\n min = this.min,\n max = this.max;\n\n var initialValue = Array.apply(undefined, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = hasProp(this, 'defaultValue') ? this.defaultValue : initialValue;\n var value = this.value;\n\n if (value === undefined) {\n value = defaultValue;\n }\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: _this.$props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n return {\n sHandle: null,\n recent: recent,\n bounds: bounds\n };\n },\n\n watch: {\n value: {\n handler: function handler(val) {\n var bounds = this.bounds;\n\n this.setChangeValue(val || bounds);\n },\n\n deep: true\n },\n min: function min() {\n var value = this.value;\n\n this.setChangeValue(value || this.bounds);\n },\n max: function max() {\n var value = this.value;\n\n this.setChangeValue(value || this.bounds);\n }\n },\n methods: {\n setChangeValue: function setChangeValue(value) {\n var _this2 = this;\n\n var bounds = this.bounds;\n\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: bounds,\n props: _this2.$props\n });\n });\n if (nextBounds.length === bounds.length && nextBounds.every(function (v, i) {\n return v === bounds[i];\n })) return;\n\n this.setState({ bounds: nextBounds });\n\n if (value.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.$props);\n })) {\n var newValues = value.map(function (v) {\n return utils.ensureValueInRange(v, _this2.$props);\n });\n this.$emit('change', newValues);\n }\n },\n onChange: function onChange(state) {\n var isNotControlled = !hasProp(this, 'value');\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n\n ['sHandle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _extends({}, this.$data, state);\n var changedValue = data.bounds;\n this.$emit('change', changedValue);\n },\n onStart: function onStart(position) {\n var bounds = this.bounds;\n\n this.$emit('beforeChange', bounds);\n\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n\n this.setState({\n sHandle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n var nextBounds = [].concat(_toConsumableArray(bounds));\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({ bounds: nextBounds });\n },\n onEnd: function onEnd(force) {\n var sHandle = this.sHandle;\n\n this.removeDocumentEvents();\n if (sHandle !== null || force) {\n this.$emit('afterChange', this.bounds);\n }\n this.setState({ sHandle: null });\n },\n onMove: function onMove(e, position) {\n utils.pauseEvent(e);\n var bounds = this.bounds,\n sHandle = this.sHandle;\n\n var value = this.calcValueByPos(position);\n var oldValue = bounds[sHandle];\n if (value === oldValue) return;\n\n this.moveTo(value);\n },\n onKeyboard: function onKeyboard(e) {\n var _$props = this.$props,\n reverse = _$props.reverse,\n vertical = _$props.vertical;\n\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var bounds = this.bounds,\n sHandle = this.sHandle;\n\n var oldValue = bounds[sHandle === null ? this.recent : sHandle];\n var mutatedValue = valueMutator(oldValue, this.$props);\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: sHandle,\n bounds: bounds,\n props: this.$props\n });\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n },\n getClosestBound: function getClosestBound(value) {\n var bounds = this.bounds;\n\n var closestBound = 0;\n for (var i = 1; i < bounds.length - 1; ++i) {\n if (value > bounds[i]) {\n closestBound = i;\n }\n }\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n return closestBound;\n },\n getBoundNeedMoving: function getBoundNeedMoving(value, closestBound) {\n var bounds = this.bounds,\n recent = this.recent;\n\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n return boundNeedMoving;\n },\n getLowerBound: function getLowerBound() {\n return this.bounds[0];\n },\n getUpperBound: function getUpperBound() {\n var bounds = this.bounds;\n\n return bounds[bounds.length - 1];\n },\n\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n getPoints: function getPoints() {\n var marks = this.marks,\n step = this.step,\n min = this.min,\n max = this.max;\n\n var cache = this._getPointsCache;\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _extends({}, marks);\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this._getPointsCache = { marks: marks, step: step, points: points };\n }\n return this._getPointsCache.points;\n },\n moveTo: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var nextBounds = [].concat(_toConsumableArray(this.bounds));\n var sHandle = this.sHandle,\n recent = this.recent;\n\n var handle = sHandle === null ? recent : sHandle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n if (this.$props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (this.$props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n this.onChange({\n recent: nextHandle,\n sHandle: nextHandle,\n bounds: nextBounds\n });\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.$emit('afterChange', nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n },\n pushSurroundingHandles: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var threshold = this.pushable;\n\n threshold = Number(threshold);\n\n var direction = 0;\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n },\n pushHandle: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n bounds[handle] = originalValue;\n return false;\n }\n currentValue = bounds[handle];\n }\n // the handle was pushed enough to create the needed `amount` gap\n return true;\n },\n pushHandleOnePoint: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var threshold = this.pushable;\n\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n }\n // push the handle\n bounds[handle] = nextValue;\n return true;\n },\n trimAlignValue: function trimAlignValue(value) {\n var sHandle = this.sHandle,\n bounds = this.bounds;\n\n return _trimAlignValue({\n value: value,\n handle: sHandle,\n bounds: bounds,\n props: this.$props\n });\n },\n ensureValueNotConflict: function ensureValueNotConflict(handle, val, _ref2) {\n var allowCross = _ref2.allowCross,\n thershold = _ref2.pushable;\n\n var state = this.$data || {};\n var bounds = state.bounds;\n\n handle = handle === undefined ? state.sHandle : handle;\n thershold = Number(thershold);\n /* eslint-disable eqeqeq */\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && val <= bounds[handle - 1] + thershold) {\n return bounds[handle - 1] + thershold;\n }\n if (handle < bounds.length - 1 && val >= bounds[handle + 1] - thershold) {\n return bounds[handle + 1] - thershold;\n }\n }\n /* eslint-enable eqeqeq */\n return val;\n },\n getTrack: function getTrack(_ref3) {\n var bounds = _ref3.bounds,\n prefixCls = _ref3.prefixCls,\n reverse = _ref3.reverse,\n vertical = _ref3.vertical,\n included = _ref3.included,\n offsets = _ref3.offsets,\n trackStyle = _ref3.trackStyle;\n var h = this.$createElement;\n\n return bounds.slice(0, -1).map(function (_, index) {\n var _classNames;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-track', true), _defineProperty(_classNames, prefixCls + '-track-' + i, true), _classNames));\n return h(Track, {\n 'class': trackClassName,\n attrs: { vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1]\n },\n style: trackStyle[index],\n key: i\n });\n });\n },\n renderSlider: function renderSlider() {\n var _this4 = this;\n\n var sHandle = this.sHandle,\n bounds = this.bounds,\n prefixCls = this.prefixCls,\n vertical = this.vertical,\n included = this.included,\n disabled = this.disabled,\n min = this.min,\n max = this.max,\n reverse = this.reverse,\n handle = this.handle,\n defaultHandle = this.defaultHandle,\n trackStyle = this.trackStyle,\n handleStyle = this.handleStyle,\n tabIndex = this.tabIndex;\n\n var handleGenerator = handle || defaultHandle;\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n\n var handleClassName = prefixCls + '-handle';\n var handles = bounds.map(function (v, i) {\n var _classNames2;\n\n var _tabIndex = tabIndex[i] || 0;\n if (disabled || tabIndex[i] === null) {\n _tabIndex = null;\n }\n return handleGenerator({\n className: classNames((_classNames2 = {}, _defineProperty(_classNames2, handleClassName, true), _defineProperty(_classNames2, handleClassName + '-' + (i + 1), true), _classNames2)),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offsets[i],\n value: v,\n dragging: sHandle === i,\n index: i,\n tabIndex: _tabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n directives: [{\n name: 'ant-ref',\n value: function value(h) {\n return _this4.saveHandle(i, h);\n }\n }],\n on: {\n focus: _this4.onFocus,\n blur: _this4.onBlur\n }\n });\n });\n\n return {\n tracks: this.getTrack({\n bounds: bounds,\n prefixCls: prefixCls,\n reverse: reverse,\n vertical: vertical,\n included: included,\n offsets: offsets,\n trackStyle: trackStyle\n }),\n handles: handles\n };\n }\n }\n};\n\nexport default createSlider(Range);","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classNames from 'classnames';\nimport warning from '../../../_util/warning';\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, 'Slider', '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {\n return a - b;\n });\n if (dots && step) {\n for (var i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n return points;\n};\n\nvar Steps = {\n functional: true,\n render: function render(h, context) {\n var _context$props = context.props,\n prefixCls = _context$props.prefixCls,\n vertical = _context$props.vertical,\n reverse = _context$props.reverse,\n marks = _context$props.marks,\n dots = _context$props.dots,\n step = _context$props.step,\n included = _context$props.included,\n lowerBound = _context$props.lowerBound,\n upperBound = _context$props.upperBound,\n max = _context$props.max,\n min = _context$props.min,\n dotStyle = _context$props.dotStyle,\n activeDotStyle = _context$props.activeDotStyle;\n\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = Math.abs(point - min) / range * 100 + '%';\n\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _extends({}, dotStyle, _defineProperty({}, reverse ? 'top' : 'bottom', offset)) : _extends({}, dotStyle, _defineProperty({}, reverse ? 'right' : 'left', offset));\n if (isActived) {\n style = _extends({}, style, activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-dot', true), _defineProperty(_classNames, prefixCls + '-dot-active', isActived), _defineProperty(_classNames, prefixCls + '-dot-reverse', reverse), _classNames));\n\n return h('span', { 'class': pointClassName, style: style, key: point });\n });\n\n return h(\n 'div',\n { 'class': prefixCls + '-step' },\n [elements]\n );\n }\n};\n\nexport default Steps;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport classNames from 'classnames';\nimport { isValidElement } from '../../../_util/props-util';\n\nvar Marks = {\n functional: true,\n render: function render(h, context) {\n var _context$props = context.props,\n className = _context$props.className,\n vertical = _context$props.vertical,\n reverse = _context$props.reverse,\n marks = _context$props.marks,\n included = _context$props.included,\n upperBound = _context$props.upperBound,\n lowerBound = _context$props.lowerBound,\n max = _context$props.max,\n min = _context$props.min;\n var clickLabel = context.listeners.clickLabel;\n\n var marksKeys = Object.keys(marks);\n\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var markPoint = typeof marks[point] === 'function' ? marks[point](h) : marks[point];\n var markPointIsObject = (typeof markPoint === 'undefined' ? 'undefined' : _typeof(markPoint)) === 'object' && !isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, className + '-text', true), _defineProperty(_classNames, className + '-text-active', isActive), _classNames));\n\n var bottomStyle = _defineProperty({\n marginBottom: '-50%'\n }, reverse ? 'top' : 'bottom', (point - min) / range * 100 + '%');\n\n var leftStyle = _defineProperty({\n transform: 'translateX(-50%)',\n msTransform: 'translateX(-50%)'\n }, reverse ? 'right' : 'left', reverse ? (point - min / 4) / range * 100 + '%' : (point - min) / range * 100 + '%');\n\n var style = vertical ? bottomStyle : leftStyle;\n var markStyle = markPointIsObject ? _extends({}, style, markPoint.style) : style;\n return h(\n 'span',\n {\n 'class': markClassName,\n style: markStyle,\n key: point,\n on: {\n 'mousedown': function mousedown(e) {\n return clickLabel(e, point);\n },\n 'touchstart': function touchstart(e) {\n return clickLabel(e, point);\n }\n }\n },\n [markLabel]\n );\n });\n\n return h(\n 'div',\n { 'class': className },\n [elements]\n );\n }\n};\n\nexport default Marks;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport classNames from 'classnames';\nimport PropTypes from '../../../_util/vue-types';\nimport addEventListener from '../../../vc-util/Dom/addEventListener';\nimport warning from '../../../_util/warning';\nimport { initDefaultProps } from '../../../_util/props-util';\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n // const displayName = `ComponentEnhancer(${Component.displayName})`\n var propTypes = {\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n marks: PropTypes.object,\n included: PropTypes.bool,\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n handle: PropTypes.func,\n dots: PropTypes.bool,\n vertical: PropTypes.bool,\n reverse: PropTypes.bool,\n minimumTrackStyle: PropTypes.object, // just for compatibility, will be deperecate\n maximumTrackStyle: PropTypes.object, // just for compatibility, will be deperecate\n handleStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n trackStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n railStyle: PropTypes.object,\n dotStyle: PropTypes.object,\n activeDotStyle: PropTypes.object,\n autoFocus: PropTypes.bool\n };\n return {\n name: 'createSlider',\n mixins: [Component],\n model: {\n prop: 'value',\n event: 'change'\n },\n props: initDefaultProps(propTypes, {\n prefixCls: 'rc-slider',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }),\n data: function data() {\n var step = this.step,\n max = this.max,\n min = this.min;\n\n var isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, 'Slider', 'Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)', max - min, step);\n this.handlesRefs = {};\n return {};\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n _this.document = _this.$refs.sliderRef && _this.$refs.sliderRef.ownerDocument;\n // this.setHandleRefs()\n var autoFocus = _this.autoFocus,\n disabled = _this.disabled;\n\n if (autoFocus && !disabled) {\n _this.focus();\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n var _this2 = this;\n\n this.$nextTick(function () {\n // if (super.componentWillUnmount) super.componentWillUnmount()\n _this2.removeDocumentEvents();\n });\n },\n\n methods: {\n defaultHandle: function defaultHandle(_ref) {\n var index = _ref.index,\n directives = _ref.directives,\n className = _ref.className,\n style = _ref.style,\n on = _ref.on,\n restProps = _objectWithoutProperties(_ref, ['index', 'directives', 'className', 'style', 'on']);\n\n var h = this.$createElement;\n\n delete restProps.dragging;\n if (restProps.value === null) {\n return null;\n }\n var handleProps = {\n props: _extends({}, restProps),\n 'class': className,\n style: style,\n key: index,\n directives: directives,\n on: on\n };\n return h(Handle, handleProps);\n },\n onMouseDown: function onMouseDown(e) {\n if (e.button !== 0) {\n return;\n }\n var isVertical = this.vertical;\n var position = utils.getMousePosition(isVertical, e);\n if (!utils.isEventFromHandle(e, this.handlesRefs)) {\n this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n this.dragOffset = position - handlePosition;\n position = handlePosition;\n }\n this.removeDocumentEvents();\n this.onStart(position);\n this.addDocumentMouseEvents();\n utils.pauseEvent(e);\n },\n onTouchStart: function onTouchStart(e) {\n if (utils.isNotTouchEvent(e)) return;\n\n var isVertical = this.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n if (!utils.isEventFromHandle(e, this.handlesRefs)) {\n this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n this.dragOffset = position - handlePosition;\n position = handlePosition;\n }\n this.onStart(position);\n this.addDocumentTouchEvents();\n utils.pauseEvent(e);\n },\n onFocus: function onFocus(e) {\n var vertical = this.vertical;\n\n if (utils.isEventFromHandle(e, this.handlesRefs)) {\n var handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n this.dragOffset = 0;\n this.onStart(handlePosition);\n utils.pauseEvent(e);\n this.$emit('focus', e);\n }\n },\n onBlur: function onBlur(e) {\n this.onEnd();\n this.$emit('blur', e);\n },\n onMouseUp: function onMouseUp() {\n if (this.handlesRefs[this.prevMovedHandleIndex]) {\n this.handlesRefs[this.prevMovedHandleIndex].clickFocus();\n }\n },\n onMouseMove: function onMouseMove(e) {\n if (!this.$refs.sliderRef) {\n this.onEnd();\n return;\n }\n var position = utils.getMousePosition(this.vertical, e);\n this.onMove(e, position - this.dragOffset);\n },\n onTouchMove: function onTouchMove(e) {\n if (utils.isNotTouchEvent(e) || !this.$refs.sliderRef) {\n this.onEnd();\n return;\n }\n\n var position = utils.getTouchPosition(this.vertical, e);\n this.onMove(e, position - this.dragOffset);\n },\n onKeyDown: function onKeyDown(e) {\n if (this.$refs.sliderRef && utils.isEventFromHandle(e, this.handlesRefs)) {\n this.onKeyboard(e);\n }\n },\n onClickMarkLabel: function onClickMarkLabel(e, value) {\n var _this3 = this;\n\n e.stopPropagation();\n this.onChange({ sValue: value });\n this.setState({ sValue: value }, function () {\n return _this3.onEnd(true);\n });\n },\n getSliderStart: function getSliderStart() {\n var slider = this.$refs.sliderRef;\n var vertical = this.vertical,\n reverse = this.reverse;\n\n var rect = slider.getBoundingClientRect();\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n return window.pageXOffset + (reverse ? rect.right : rect.left);\n },\n getSliderLength: function getSliderLength() {\n var slider = this.$refs.sliderRef;\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.vertical ? coords.height : coords.width;\n },\n addDocumentTouchEvents: function addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n },\n addDocumentMouseEvents: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n },\n removeDocumentEvents: function removeDocumentEvents() {\n /* eslint-disable no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n },\n focus: function focus() {\n if (!this.disabled) {\n this.handlesRefs[0].focus();\n }\n },\n blur: function blur() {\n var _this4 = this;\n\n if (!this.disabled) {\n Object.keys(this.handlesRefs).forEach(function (key) {\n if (_this4.handlesRefs[key] && _this4.handlesRefs[key].blur) {\n _this4.handlesRefs[key].blur();\n }\n });\n }\n },\n calcValue: function calcValue(offset) {\n var vertical = this.vertical,\n min = this.min,\n max = this.max;\n\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n },\n calcValueByPos: function calcValueByPos(position) {\n var sign = this.reverse ? -1 : +1;\n var pixelOffset = sign * (position - this.getSliderStart());\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n },\n calcOffset: function calcOffset(value) {\n var min = this.min,\n max = this.max;\n\n var ratio = (value - min) / (max - min);\n return ratio * 100;\n },\n saveHandle: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n },\n render: function render(h) {\n var _classNames;\n\n var prefixCls = this.prefixCls,\n marks = this.marks,\n dots = this.dots,\n step = this.step,\n included = this.included,\n disabled = this.disabled,\n vertical = this.vertical,\n reverse = this.reverse,\n min = this.min,\n max = this.max,\n maximumTrackStyle = this.maximumTrackStyle,\n railStyle = this.railStyle,\n dotStyle = this.dotStyle,\n activeDotStyle = this.activeDotStyle;\n\n var _renderSlider = this.renderSlider(h),\n tracks = _renderSlider.tracks,\n handles = _renderSlider.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-with-marks', Object.keys(marks).length), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-vertical', vertical), _classNames));\n var markProps = {\n props: {\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n reverse: reverse,\n className: prefixCls + '-mark'\n },\n on: {\n clickLabel: disabled ? noop : this.onClickMarkLabel\n }\n };\n return h(\n 'div',\n {\n ref: 'sliderRef',\n attrs: { tabIndex: '-1'\n },\n 'class': sliderClassName,\n on: {\n 'touchstart': disabled ? noop : this.onTouchStart,\n 'mousedown': disabled ? noop : this.onMouseDown,\n 'mouseup': disabled ? noop : this.onMouseUp,\n 'keydown': disabled ? noop : this.onKeyDown,\n 'focus': disabled ? noop : this.onFocus,\n 'blur': disabled ? noop : this.onBlur\n }\n },\n [h('div', {\n 'class': prefixCls + '-rail',\n style: _extends({}, maximumTrackStyle, railStyle)\n }), tracks, h(Steps, {\n attrs: {\n prefixCls: prefixCls,\n vertical: vertical,\n reverse: reverse,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }\n }), handles, h(Marks, markProps), this.$slots['default']]\n );\n }\n };\n}","import PropTypes from '../../_util/vue-types';\n\nvar defaultProps = {\n accessibility: PropTypes.bool.def(true),\n // 自定义高度\n adaptiveHeight: PropTypes.bool.def(false),\n afterChange: PropTypes.any.def(null),\n arrows: PropTypes.bool.def(true),\n autoplay: PropTypes.bool.def(false),\n autoplaySpeed: PropTypes.number.def(3000),\n beforeChange: PropTypes.any.def(null),\n centerMode: PropTypes.bool.def(false),\n centerPadding: PropTypes.string.def('50px'),\n cssEase: PropTypes.string.def('ease'),\n dots: PropTypes.bool.def(false),\n dotsClass: PropTypes.string.def('slick-dots'),\n draggable: PropTypes.bool.def(true),\n unslick: PropTypes.bool.def(false),\n easing: PropTypes.string.def('linear'),\n edgeFriction: PropTypes.number.def(0.35),\n fade: PropTypes.bool.def(false),\n focusOnSelect: PropTypes.bool.def(false),\n infinite: PropTypes.bool.def(true),\n initialSlide: PropTypes.number.def(0),\n lazyLoad: PropTypes.any.def(null),\n verticalSwiping: PropTypes.bool.def(false),\n asNavFor: PropTypes.any.def(null),\n // 圆点hover是否暂停\n pauseOnDotsHover: PropTypes.bool.def(false),\n // focus是否暂停\n pauseOnFocus: PropTypes.bool.def(false),\n // hover是否暂停\n pauseOnHover: PropTypes.bool.def(true),\n responsive: PropTypes.array,\n rows: PropTypes.number.def(1),\n rtl: PropTypes.bool.def(false),\n slide: PropTypes.string.def('div'),\n slidesPerRow: PropTypes.number.def(1),\n slidesToScroll: PropTypes.number.def(1),\n slidesToShow: PropTypes.number.def(1),\n speed: PropTypes.number.def(500),\n swipe: PropTypes.bool.def(true),\n swipeEvent: PropTypes.any.def(null),\n swipeToSlide: PropTypes.bool.def(false),\n touchMove: PropTypes.bool.def(true),\n touchThreshold: PropTypes.number.def(5),\n useCSS: PropTypes.bool.def(true),\n useTransform: PropTypes.bool.def(true),\n variableWidth: PropTypes.bool.def(false),\n vertical: PropTypes.bool.def(false),\n waitForAnimate: PropTypes.bool.def(true),\n children: PropTypes.array,\n __propsSymbol__: PropTypes.any\n};\n\nexport default defaultProps;","var 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};\n\nexport default initialState;","import _extends from 'babel-runtime/helpers/extends';\nexport var getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var 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 var getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport var lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nexport var lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nexport var lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nexport var lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nexport var getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nexport var getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nexport var getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var swipeAngle = void 0;\n var xDist = touchObject.startX - touchObject.curX;\n var yDist = touchObject.startY - touchObject.curY;\n var 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 (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\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 var canGoNext = function canGoNext(spec) {\n var canGo = true;\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 return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport var extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nexport var initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = spec.children.length;\n var listWidth = Math.ceil(getWidth(spec.listRef));\n var trackWidth = Math.ceil(getWidth(spec.trackRef));\n var slideWidth = void 0;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === 'string' && spec.centerPadding.slice(-1) === '%') {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = spec.listRef && getHeight(spec.listRef.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides({ currentSlide: currentSlide, lazyLoadedList: lazyLoadedList }, spec);\n lazyLoadedList.concat(slidesToLoad);\n\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\nexport var 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\n if (waitForAnimate && animating) return {};\n var animationSlide = index;\n var finalSlide = void 0;\n var animationLeft = void 0;\n var finalLeft = void 0;\n var state = {};\n var nextState = {};\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList\n };\n nextState = { animating: false };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) {\n finalSlide = slideCount - slideCount % slidesToScroll;\n }\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 animationLeft = getTrackLeft(_extends({}, spec, { slideIndex: animationSlide }));\n finalLeft = getTrackLeft(_extends({}, spec, { slideIndex: finalSlide }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides(_extends({}, spec, { currentSlide: animationSlide })));\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_extends({}, spec, { left: finalLeft })),\n lazyLoadedList: lazyLoadedList\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_extends({}, spec, { left: animationLeft })),\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_extends({}, spec, { left: finalLeft })),\n swipeLeft: null\n };\n }\n }\n return { state: state, nextState: nextState };\n};\n\nexport var changeSlide = function changeSlide(spec, options) {\n var previousInt = void 0,\n slideOffset = void 0,\n targetSlide = void 0;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n\n var unevenOffset = slideCount % slidesToScroll !== 0;\n var indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === 'previous') {\n slideOffset = 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 } else if (options.message === 'next') {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n } else if (options.message === 'dots') {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n if (targetSlide === options.currentSlide) {\n return null;\n }\n } else if (options.message === 'children') {\n // Click on the slides\n targetSlide = options.index;\n if (targetSlide === options.currentSlide) {\n return null;\n }\n if (infinite) {\n var direction = siblingDirection(_extends({}, spec, { targetSlide: 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 if (targetSlide === options.currentSlide) {\n return null;\n }\n }\n return targetSlide;\n};\nexport var keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match('TEXTAREA|INPUT|SELECT') || !accessibility) {\n return '';\n }\n if (e.keyCode === 37) return rtl ? 'next' : 'previous';\n if (e.keyCode === 39) return rtl ? 'previous' : 'next';\n return '';\n};\n\nexport var 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};\nexport var 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\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n var swipeLeft = void 0;\n var 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 if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return { scrolling: true };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) {\n positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n }\n\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && swipeDirection === 'right' || currentSlide + 1 >= dotCount && swipeDirection === 'left' || !canGoNext(spec) && swipeDirection === 'left') {\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 = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _extends({}, state, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_extends({}, spec, { left: swipeLeft }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state['swiping'] = true;\n e.preventDefault();\n }\n return state;\n};\nexport var swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n currentSlide = spec.currentSlide,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe;\n\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\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 if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount = void 0,\n newSlide = void 0;\n switch (swipeDirection) {\n case 'left':\n case 'up':\n newSlide = currentSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state['currentDirection'] = 0;\n break;\n case 'right':\n case 'down':\n newSlide = currentSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state['currentDirection'] = 1;\n break;\n default:\n slideCount = currentSlide;\n }\n state['triggerSlideHandler'] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state['trackStyle'] = getTrackAnimateCSS(_extends({}, spec, { left: currentLeft }));\n }\n return state;\n};\nexport var 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 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 var checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\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 prevNavigable = navigables[n];\n }\n }\n return index;\n};\nexport var getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide = void 0;\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 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\nexport var checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error('Keys Missing:', spec);\n};\n\nexport var getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth']);\n var trackWidth = void 0,\n trackHeight = void 0;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: '',\n WebkitTransition: ''\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)';\n var transform = !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)';\n var msTransform = !spec.vertical ? 'translateX(' + spec.left + 'px)' : 'translateY(' + spec.left + 'px)';\n style = _extends({}, style, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style['top'] = spec.left;\n } else {\n style['left'] = spec.left;\n }\n }\n if (spec.fade) style = { opacity: 1 };\n if (trackWidth) style.width = trackWidth + 'px';\n if (trackHeight) style.height = trackHeight + 'px';\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 var getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth', 'speed', 'cssEase']);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\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 return style;\n};\nexport var 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\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\n\n var slideOffset = 0;\n var targetLeft = void 0;\n var targetSlide = void 0;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var 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 (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : 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 (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\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 = void 0;\n var trackElem = trackRef;\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 ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && 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 var getPreClones = function 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 var getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\n\nexport var getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nexport var siblingDirection = function 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 var 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 if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\n\nexport var 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 if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\n\nexport var canUseDOM = function canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n};","import _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport { cloneElement } from '../../_util/vnode';\nimport { getStyle, getClass } from '../../_util/props-util';\nimport { lazyStartIndex, lazyEndIndex, getPreClones } from './utils/innerSliderUtils';\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive = void 0,\n slickCenter = void 0;\n var centerOffset = void 0,\n index = void 0;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n var 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 (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var slickCurrent = index === spec.currentSlide;\n return {\n 'slick-slide': true,\n 'slick-active': slickActive,\n 'slick-center': slickCenter,\n 'slick-cloned': slickCloned,\n 'slick-current': slickCurrent // dubious in case of RTL\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth + (typeof spec.slideWidth === 'number' ? 'px' : '');\n }\n\n if (spec.fade) {\n style.position = 'relative';\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight) + 'px';\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth) + 'px';\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.transition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase + ', ' + 'visibility ' + spec.speed + 'ms ' + spec.cssEase;\n style.WebkitTransition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase + ', ' + 'visibility ' + spec.speed + 'ms ' + spec.cssEase;\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || child.key === 0 && '0' || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec, children, createElement) {\n var key = void 0;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = children.length;\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n children.forEach(function (elem, index) {\n var child = void 0;\n var childOnClickOptions = {\n message: 'children',\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = createElement('div');\n }\n var childStyle = getSlideStyle(_extends({}, spec, { index: index }));\n var slideClass = getClass(child.context) || '';\n var slideClasses = getSlideClasses(_extends({}, spec, { index: index }));\n // push a cloned element of the desired slide\n slides.push(cloneElement(child, {\n key: 'original' + getKey(child, index),\n attrs: {\n tabIndex: '-1',\n 'data-index': index,\n 'aria-hidden': !slideClasses['slick-active']\n },\n 'class': classnames(slideClasses, slideClass),\n style: _extends({ outline: 'none' }, getStyle(child.context) || {}, childStyle),\n on: {\n click: function click() {\n // child.props && child.props.onClick && child.props.onClick(e)\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }\n }, true));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= getPreClones(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_extends({}, spec, { index: key }));\n preCloneSlides.push(cloneElement(child, {\n key: 'precloned' + getKey(child, key),\n 'class': classnames(slideClasses, slideClass),\n attrs: {\n tabIndex: '-1',\n 'data-index': key,\n 'aria-hidden': !slideClasses['slick-active']\n },\n style: _extends({}, getStyle(child.context) || {}, childStyle),\n on: {\n click: function click() {\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(_extends({}, spec, { index: key }));\n postCloneSlides.push(cloneElement(child, {\n key: 'postcloned' + getKey(child, key),\n attrs: {\n tabIndex: '-1',\n 'data-index': key,\n 'aria-hidden': !slideClasses['slick-active']\n },\n 'class': classnames(slideClasses, slideClass),\n style: _extends({}, getStyle(child.context) || {}, childStyle),\n on: {\n click: function click() {\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 if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n listeners = context.listeners,\n children = context.children,\n data = context.data;\n\n var slides = renderSlides(props, children, createElement);\n var mouseenter = listeners.mouseenter,\n mouseover = listeners.mouseover,\n mouseleave = listeners.mouseleave;\n\n var mouseEvents = { mouseenter: mouseenter, mouseover: mouseover, mouseleave: mouseleave };\n var trackProps = {\n 'class': 'slick-track',\n style: props.trackStyle,\n on: _extends({}, mouseEvents),\n directives: data.directives\n };\n return h(\n 'div',\n trackProps,\n [slides]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport { cloneElement } from '../../_util/vnode';\n\nvar getDotCount = function getDotCount(spec) {\n var dots = void 0;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n listeners = context.listeners;\n var slideCount = props.slideCount,\n slidesToScroll = props.slidesToScroll,\n slidesToShow = props.slidesToShow,\n infinite = props.infinite,\n currentSlide = props.currentSlide,\n appendDots = props.appendDots,\n customPaging = props.customPaging,\n clickHandler = props.clickHandler,\n dotsClass = props.dotsClass;\n\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n\n // Apply join & split to Array to pre-fill it for IE8\n //\n // Credit: http://stackoverflow.com/a/13735425/1849458\n var mouseenter = listeners.mouseenter,\n mouseover = listeners.mouseover,\n mouseleave = listeners.mouseleave;\n\n var mouseEvents = { mouseenter: mouseenter, mouseover: mouseover, mouseleave: mouseleave };\n var dots = Array.apply(null, Array(dotCount + 1).join('0').split('')).map(function (x, i) {\n var leftBound = i * slidesToScroll;\n var rightBound = i * slidesToScroll + (slidesToScroll - 1);\n var className = classnames({\n 'slick-active': currentSlide >= leftBound && currentSlide <= rightBound\n });\n\n var dotOptions = {\n message: 'dots',\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n function onClick(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 if (e) {\n e.preventDefault();\n }\n clickHandler(dotOptions);\n }\n return h(\n 'li',\n { key: i, 'class': className },\n [cloneElement(customPaging({ i: i }), {\n on: {\n click: onClick\n }\n })]\n );\n });\n\n return cloneElement(appendDots({ dots: dots }), {\n 'class': dotsClass,\n on: _extends({}, mouseEvents)\n });\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport { cloneElement } from '../../_util/vnode';\nimport { canGoNext } from './utils/innerSliderUtils';\n\nfunction noop() {}\n\nexport var PrevArrow = {\n functional: true,\n clickHandler: function clickHandler(options, handle, e) {\n if (e) {\n e.preventDefault();\n }\n handle(options, e);\n },\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props;\n var clickHandler = props.clickHandler,\n infinite = props.infinite,\n currentSlide = props.currentSlide,\n slideCount = props.slideCount,\n slidesToShow = props.slidesToShow;\n\n var prevClasses = { 'slick-arrow': true, 'slick-prev': true };\n var prevHandler = function prevHandler(e) {\n if (e) {\n e.preventDefault();\n }\n clickHandler({ message: 'previous' });\n };\n\n if (!infinite && (currentSlide === 0 || slideCount <= slidesToShow)) {\n prevClasses['slick-disabled'] = true;\n prevHandler = noop;\n }\n\n var prevArrowProps = {\n key: '0',\n domProps: {\n 'data-role': 'none'\n },\n 'class': prevClasses,\n style: { display: 'block' },\n on: {\n click: prevHandler\n }\n };\n var customProps = {\n currentSlide: currentSlide,\n slideCount: slideCount\n };\n var prevArrow = void 0;\n\n if (props.prevArrow) {\n prevArrow = cloneElement(props.prevArrow(_extends({}, prevArrowProps, {\n props: customProps\n })), {\n key: '0',\n 'class': prevClasses,\n style: { display: 'block' },\n on: {\n click: prevHandler\n }\n });\n } else {\n prevArrow = h(\n 'button',\n _mergeJSXProps([{ key: '0', attrs: { type: 'button' }\n }, prevArrowProps]),\n [' ', 'Previous']\n );\n }\n\n return prevArrow;\n }\n};\n\nexport var NextArrow = {\n functional: true,\n clickHandler: function clickHandler(options, handle, e) {\n if (e) {\n e.preventDefault();\n }\n handle(options, e);\n },\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props;\n var clickHandler = props.clickHandler,\n currentSlide = props.currentSlide,\n slideCount = props.slideCount;\n\n\n var nextClasses = { 'slick-arrow': true, 'slick-next': true };\n var nextHandler = function nextHandler(e) {\n if (e) {\n e.preventDefault();\n }\n clickHandler({ message: 'next' });\n };\n if (!canGoNext(props)) {\n nextClasses['slick-disabled'] = true;\n nextHandler = noop;\n }\n\n var nextArrowProps = {\n key: '1',\n domProps: {\n 'data-role': 'none'\n },\n 'class': nextClasses,\n style: { display: 'block' },\n on: {\n click: nextHandler\n }\n };\n var customProps = {\n currentSlide: currentSlide,\n slideCount: slideCount\n };\n var nextArrow = void 0;\n\n if (props.nextArrow) {\n nextArrow = cloneElement(props.nextArrow(_extends({}, nextArrowProps, {\n props: customProps\n })), {\n key: '1',\n 'class': nextClasses,\n style: { display: 'block' },\n on: {\n click: nextHandler\n }\n });\n } else {\n nextArrow = h(\n 'button',\n _mergeJSXProps([{ key: '1', attrs: { type: 'button' }\n }, nextArrowProps]),\n [' ', 'Next']\n );\n }\n\n return nextArrow;\n }\n};","import _typeof from 'babel-runtime/helpers/typeof';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport debounce from 'lodash/debounce';\nimport classnames from 'classnames';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport { getStyle, getListeners } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport defaultProps from './default-props';\nimport initialState from './initial-state';\nimport { getOnDemandLazySlides, extractObject, initializedState, getHeight, canGoNext, slideHandler as _slideHandler, changeSlide as _changeSlide, keyHandler as _keyHandler, swipeStart as _swipeStart, swipeMove as _swipeMove, swipeEnd as _swipeEnd, getPreClones, getPostClones, getTrackLeft, getTrackCSS } from './utils/innerSliderUtils';\nimport Track from './track';\nimport Dots from './dots';\nimport { PrevArrow, NextArrow } from './arrows';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nVue.use(ref, { name: 'ant-ref' });\n\nfunction noop() {}\n\nexport default {\n props: _extends({}, defaultProps),\n mixins: [BaseMixin],\n data: function data() {\n this.preProps = _extends({}, this.$props);\n this.list = null;\n this.track = null;\n this.callbackTimers = [];\n this.clickable = true;\n this.debouncedResize = null;\n return _extends({}, initialState, {\n currentSlide: this.initialSlide,\n slideCount: this.children.length\n });\n },\n\n methods: {\n listRefHandler: function listRefHandler(ref) {\n this.list = ref;\n },\n trackRefHandler: function trackRefHandler(ref) {\n this.track = ref;\n },\n adaptHeight: function adaptHeight() {\n if (this.adaptiveHeight && this.list) {\n var elem = this.list.querySelector('[data-index=\"' + this.currentSlide + '\"]');\n this.list.style.height = getHeight(elem) + 'px';\n }\n },\n onWindowResized: function onWindowResized(setTrackStyle) {\n var _this = this;\n\n if (this.debouncedResize) this.debouncedResize.cancel();\n this.debouncedResize = debounce(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n this.debouncedResize();\n },\n resizeWindow: function resizeWindow() {\n var _this2 = this;\n\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (!this.track) return;\n var spec = _extends({\n listRef: this.list,\n trackRef: this.track,\n children: this.children\n }, this.$props, this.$data);\n this.updateState(spec, setTrackStyle, function () {\n if (_this2.autoplay) {\n _this2.handleAutoPlay('update');\n } else {\n _this2.pause('paused');\n }\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: function updateState(spec, setTrackStyle, callback) {\n var updatedState = initializedState(spec);\n spec = _extends({}, spec, updatedState, { slideIndex: updatedState.currentSlide });\n var targetLeft = getTrackLeft(spec);\n spec = _extends({}, spec, { left: targetLeft });\n var trackStyle = getTrackCSS(spec);\n if (setTrackStyle || this.children.length !== spec.children.length) {\n updatedState['trackStyle'] = trackStyle;\n }\n this.setState(updatedState, callback);\n },\n ssrInit: function ssrInit() {\n var children = this.children;\n if (this.variableWidth) {\n var _trackWidth = 0;\n var _trackLeft = 0;\n var childrenWidths = [];\n var preClones = getPreClones(_extends({}, this.$props, this.$data, {\n slideCount: children.length\n }));\n var postClones = getPostClones(_extends({}, this.$props, this.$data, {\n slideCount: children.length\n }));\n children.forEach(function (child) {\n var childWidth = getStyle(child).width.split('px')[0];\n childrenWidths.push(childWidth);\n _trackWidth += childWidth;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < this.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + 'px',\n left: -_trackLeft + 'px'\n };\n if (this.centerMode) {\n var currentWidth = childrenWidths[this.currentSlide] + 'px';\n _trackStyle.left = 'calc(' + _trackStyle.left + ' + (100% - ' + currentWidth + ') / 2 ) ';\n }\n this.setState({\n trackStyle: _trackStyle\n });\n return;\n }\n var childrenCount = children.length;\n var spec = _extends({}, this.$props, this.$data, { slideCount: childrenCount });\n var slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n var trackWidth = 100 / this.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * (getPreClones(spec) + this.currentSlide) * trackWidth / 100;\n if (this.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + '%',\n left: trackLeft + '%'\n };\n this.setState({\n slideWidth: slideWidth + '%',\n trackStyle: trackStyle\n });\n },\n checkImagesLoad: function checkImagesLoad() {\n var _this3 = this;\n\n var images = document.querySelectorAll('.slick-slide img');\n var imagesCount = images.length;\n var loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this3.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this3.$props.lazyLoad) {\n image.onload = function () {\n _this3.adaptHeight();\n _this3.callbackTimers.push(setTimeout(_this3.onWindowResized, _this3.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this3.$emit('lazyLoadError');\n };\n }\n }\n });\n },\n progressiveLazyLoad: function progressiveLazyLoad() {\n var slidesToLoad = [];\n var spec = _extends({}, this.$props, this.$data);\n for (var index = this.currentSlide; index < this.slideCount + getPostClones(spec); index++) {\n if (this.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = this.currentSlide - 1; _index >= -getPreClones(spec); _index--) {\n if (this.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n this.$emit('lazyLoad', slidesToLoad);\n } else {\n if (this.lazyLoadTimer) {\n clearInterval(this.lazyLoadTimer);\n delete this.lazyLoadTimer;\n }\n }\n },\n slideHandler: function slideHandler(index) {\n var _this4 = this;\n\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _$props = this.$props,\n asNavFor = _$props.asNavFor,\n currentSlide = _$props.currentSlide,\n beforeChange = _$props.beforeChange,\n speed = _$props.speed,\n afterChange = _$props.afterChange;\n\n var _slideHandler2 = _slideHandler(_extends({\n index: index\n }, this.$props, this.$data, {\n trackRef: this.track,\n useCSS: this.useCSS && !dontAnimate\n })),\n state = _slideHandler2.state,\n nextState = _slideHandler2.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this4.lazyLoadedList.indexOf(value) < 0;\n });\n if (getListeners(this).lazyLoad && slidesToLoad.length > 0) {\n this.$emit('lazyLoad', slidesToLoad);\n }\n this.setState(state, function () {\n asNavFor && asNavFor.innerSlider.currentSlide !== currentSlide && asNavFor.innerSlider.slideHandler(index);\n if (!nextState) return;\n _this4.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, ['animating']);\n\n _this4.setState(firstBatch, function () {\n _this4.callbackTimers.push(setTimeout(function () {\n return _this4.setState({ animating: animating });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this4.animationEndCallback;\n });\n }, speed);\n });\n },\n changeSlide: function changeSlide(options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _extends({}, this.$props, this.$data);\n var 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 },\n clickHandler: function clickHandler(e) {\n if (this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.clickable = true;\n },\n keyHandler: function keyHandler(e) {\n var dir = _keyHandler(e, this.accessibility, this.rtl);\n dir !== '' && this.changeSlide({ message: dir });\n },\n selectHandler: function selectHandler(options) {\n this.changeSlide(options);\n },\n disableBodyScroll: function disableBodyScroll() {\n var preventDefault = function 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: function enableBodyScroll() {\n window.ontouchmove = null;\n },\n swipeStart: function swipeStart(e) {\n if (this.verticalSwiping) {\n this.disableBodyScroll();\n }\n var state = _swipeStart(e, this.swipe, this.draggable);\n state !== '' && this.setState(state);\n },\n swipeMove: function swipeMove(e) {\n var state = _swipeMove(e, _extends({}, this.$props, this.$data, {\n trackRef: this.track,\n listRef: this.list,\n slideIndex: this.currentSlide\n }));\n if (!state) return;\n if (state['swiping']) {\n this.clickable = false;\n }\n this.setState(state);\n },\n swipeEnd: function swipeEnd(e) {\n var state = _swipeEnd(e, _extends({}, this.$props, this.$data, {\n trackRef: this.track,\n listRef: this.list,\n slideIndex: this.currentSlide\n }));\n if (!state) return;\n var 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 slickPrev: function slickPrev() {\n var _this5 = this;\n\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n this.callbackTimers.push(setTimeout(function () {\n return _this5.changeSlide({ message: 'previous' });\n }, 0));\n },\n slickNext: function slickNext() {\n var _this6 = this;\n\n this.callbackTimers.push(setTimeout(function () {\n return _this6.changeSlide({ message: 'next' });\n }, 0));\n },\n slickGoTo: function slickGoTo(slide) {\n var _this7 = this;\n\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n slide = Number(slide);\n if (isNaN(slide)) return '';\n this.callbackTimers.push(setTimeout(function () {\n return _this7.changeSlide({\n message: 'index',\n index: slide,\n currentSlide: _this7.currentSlide\n }, dontAnimate);\n }, 0));\n },\n play: function play() {\n var nextIndex = void 0;\n if (this.rtl) {\n nextIndex = this.currentSlide - this.slidesToScroll;\n } else {\n if (canGoNext(_extends({}, this.$props, this.$data))) {\n nextIndex = this.currentSlide + this.slidesToScroll;\n } else {\n return false;\n }\n }\n\n this.slideHandler(nextIndex);\n },\n handleAutoPlay: function handleAutoPlay(playType) {\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n }\n var autoplaying = this.autoplaying;\n if (playType === 'update') {\n if (autoplaying === 'hovered' || autoplaying === 'focused' || autoplaying === 'paused') {\n return;\n }\n } else if (playType === 'leave') {\n if (autoplaying === 'paused' || autoplaying === 'focused') {\n return;\n }\n } else if (playType === 'blur') {\n if (autoplaying === 'paused' || autoplaying === 'hovered') {\n return;\n }\n }\n this.autoplayTimer = setInterval(this.play, this.autoplaySpeed + 50);\n this.setState({ autoplaying: 'playing' });\n },\n pause: function pause(pauseType) {\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n var autoplaying = this.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: function onDotsOver() {\n this.autoplay && this.pause('hovered');\n },\n onDotsLeave: function onDotsLeave() {\n this.autoplay && this.autoplaying === 'hovered' && this.handleAutoPlay('leave');\n },\n onTrackOver: function onTrackOver() {\n this.autoplay && this.pause('hovered');\n },\n onTrackLeave: function onTrackLeave() {\n this.autoplay && this.autoplaying === 'hovered' && this.handleAutoPlay('leave');\n },\n onSlideFocus: function onSlideFocus() {\n this.autoplay && this.pause('focused');\n },\n onSlideBlur: function onSlideBlur() {\n this.autoplay && this.autoplaying === 'focused' && this.handleAutoPlay('blur');\n },\n customPaging: function customPaging(_ref) {\n var i = _ref.i;\n var h = this.$createElement;\n\n return h('button', [i + 1]);\n },\n appendDots: function appendDots(_ref2) {\n var dots = _ref2.dots;\n var h = this.$createElement;\n\n return h(\n 'ul',\n { style: { display: 'block' } },\n [dots]\n );\n }\n },\n beforeMount: function beforeMount() {\n this.ssrInit();\n this.$emit('init');\n if (this.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_extends({}, this.$props, this.$data));\n if (slidesToLoad.length > 0) {\n this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n this.$emit('lazyLoad', slidesToLoad);\n }\n }\n },\n mounted: function mounted() {\n var _this8 = this;\n\n this.$nextTick(function () {\n var spec = _extends({\n listRef: _this8.list,\n trackRef: _this8.track,\n children: _this8.children\n }, _this8.$props);\n _this8.updateState(spec, true, function () {\n _this8.adaptHeight();\n _this8.autoplay && _this8.handleAutoPlay('update');\n });\n if (_this8.lazyLoad === 'progressive') {\n _this8.lazyLoadTimer = setInterval(_this8.progressiveLazyLoad, 1000);\n }\n _this8.ro = new ResizeObserver(function () {\n if (_this8.animating) {\n _this8.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this8.callbackTimers.push(setTimeout(function () {\n return _this8.onWindowResized();\n }, _this8.speed));\n } else {\n _this8.onWindowResized();\n }\n });\n _this8.ro.observe(_this8.list);\n Array.prototype.forEach.call(document.querySelectorAll('.slick-slide'), function (slide) {\n slide.onfocus = _this8.$props.pauseOnFocus ? _this8.onSlideFocus : null;\n slide.onblur = _this8.$props.pauseOnFocus ? _this8.onSlideBlur : null;\n });\n // To support server-side rendering\n if (!window) {\n return;\n }\n if (window.addEventListener) {\n window.addEventListener('resize', _this8.onWindowResized);\n } else {\n window.attachEvent('onresize', _this8.onWindowResized);\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\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(function (timer) {\n return clearTimeout(timer);\n });\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 },\n updated: function updated() {\n this.checkImagesLoad();\n this.$emit('reInit');\n if (this.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_extends({}, this.$props, this.$data));\n if (slidesToLoad.length > 0) {\n this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n this.$emit('lazyLoad');\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n this.adaptHeight();\n },\n\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n var _this9 = this;\n\n var nextProps = this.$props;\n var spec = _extends({\n listRef: this.list,\n trackRef: this.track\n }, nextProps, this.$data);\n var setTrackStyle = false;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = Object.keys(this.preProps)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n if (!nextProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(nextProps[key]) === 'object' || typeof nextProps[key] === 'function' || _typeof(nextProps[key]) === 'symbol') {\n continue;\n }\n if (nextProps[key] !== this.preProps[key]) {\n setTrackStyle = true;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n this.updateState(spec, setTrackStyle, function () {\n if (_this9.currentSlide >= nextProps.children.length) {\n _this9.changeSlide({\n message: 'index',\n index: nextProps.children.length - nextProps.slidesToShow,\n currentSlide: _this9.currentSlide\n });\n }\n if (nextProps.autoplay) {\n _this9.handleAutoPlay('update');\n } else {\n _this9.pause('paused');\n }\n });\n this.preProps = _extends({}, nextProps);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var className = classnames('slick-slider', {\n 'slick-vertical': this.vertical,\n 'slick-initialized': true\n });\n var spec = _extends({}, this.$props, this.$data);\n var trackProps = extractObject(spec, ['fade', 'cssEase', 'speed', 'infinite', 'centerMode', 'focusOnSelect', 'currentSlide', 'lazyLoad', 'lazyLoadedList', 'rtl', 'slideWidth', 'slideHeight', 'listHeight', 'vertical', 'slidesToShow', 'slidesToScroll', 'slideCount', 'trackStyle', 'variableWidth', 'unslick', 'centerPadding']);\n var pauseOnHover = this.$props.pauseOnHover;\n\n trackProps = {\n props: _extends({}, trackProps, {\n focusOnSelect: this.focusOnSelect ? this.selectHandler : null\n }),\n directives: [{\n name: 'ant-ref',\n value: this.trackRefHandler\n }],\n on: {\n mouseenter: pauseOnHover ? this.onTrackOver : noop,\n mouseleave: pauseOnHover ? this.onTrackLeave : noop,\n mouseover: pauseOnHover ? this.onTrackOver : noop\n }\n };\n\n var dots = void 0;\n if (this.dots === true && this.slideCount >= this.slidesToShow) {\n var dotProps = extractObject(spec, ['dotsClass', 'slideCount', 'slidesToShow', 'currentSlide', 'slidesToScroll', 'clickHandler', 'children', 'infinite', 'appendDots']);\n dotProps.customPaging = this.customPaging;\n dotProps.appendDots = this.appendDots;\n var _$scopedSlots = this.$scopedSlots,\n customPaging = _$scopedSlots.customPaging,\n appendDots = _$scopedSlots.appendDots;\n\n if (customPaging) {\n dotProps.customPaging = customPaging;\n }\n if (appendDots) {\n dotProps.appendDots = appendDots;\n }\n var pauseOnDotsHover = this.$props.pauseOnDotsHover;\n\n dotProps = {\n props: _extends({}, dotProps, {\n clickHandler: this.changeSlide\n }),\n on: {\n mouseenter: pauseOnDotsHover ? this.onDotsLeave : noop,\n mouseover: pauseOnDotsHover ? this.onDotsOver : noop,\n mouseleave: pauseOnDotsHover ? this.onDotsLeave : noop\n }\n };\n dots = h(Dots, dotProps);\n }\n\n var prevArrow = void 0,\n nextArrow = void 0;\n var arrowProps = extractObject(spec, ['infinite', 'centerMode', 'currentSlide', 'slideCount', 'slidesToShow']);\n arrowProps.clickHandler = this.changeSlide;\n var _$scopedSlots2 = this.$scopedSlots,\n prevArrowCustom = _$scopedSlots2.prevArrow,\n nextArrowCustom = _$scopedSlots2.nextArrow;\n\n if (prevArrowCustom) {\n arrowProps.prevArrow = prevArrowCustom;\n }\n if (nextArrowCustom) {\n arrowProps.nextArrow = nextArrowCustom;\n }\n if (this.arrows) {\n prevArrow = h(PrevArrow, { props: arrowProps });\n nextArrow = h(NextArrow, { props: arrowProps });\n }\n var verticalHeightStyle = null;\n\n if (this.vertical) {\n verticalHeightStyle = {\n height: typeof this.listHeight === 'number' ? this.listHeight + 'px' : this.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (this.vertical === false) {\n if (this.centerMode === true) {\n centerPaddingStyle = {\n padding: '0px ' + this.centerPadding\n };\n }\n } else {\n if (this.centerMode === true) {\n centerPaddingStyle = {\n padding: this.centerPadding + ' 0px'\n };\n }\n }\n\n var listStyle = _extends({}, verticalHeightStyle, centerPaddingStyle);\n var touchMove = this.touchMove;\n var listProps = {\n directives: [{\n name: 'ant-ref',\n value: this.listRefHandler\n }],\n 'class': 'slick-list',\n style: listStyle,\n on: {\n click: this.clickHandler,\n mousedown: touchMove ? this.swipeStart : noop,\n mousemove: this.dragging && touchMove ? this.swipeMove : noop,\n mouseup: touchMove ? this.swipeEnd : noop,\n mouseleave: this.dragging && touchMove ? this.swipeEnd : noop,\n touchstart: touchMove ? this.swipeStart : noop,\n touchmove: this.dragging && touchMove ? this.swipeMove : noop,\n touchend: touchMove ? this.swipeEnd : noop,\n touchcancel: this.dragging && touchMove ? this.swipeEnd : noop,\n keydown: this.accessibility ? this.keyHandler : noop\n }\n };\n\n var innerSliderProps = {\n 'class': className,\n props: {\n dir: 'ltr'\n }\n };\n\n if (this.unslick) {\n listProps = {\n 'class': 'slick-list',\n directives: [{\n name: 'ant-ref',\n value: this.listRefHandler\n }]\n };\n innerSliderProps = { 'class': className };\n }\n return h(\n 'div',\n innerSliderProps,\n [!this.unslick ? prevArrow : '', h(\n 'div',\n listProps,\n [h(\n Track,\n trackProps,\n [this.children]\n )]\n ), !this.unslick ? nextArrow : '', !this.unslick ? dots : '']\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport json2mq from 'json2mq';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { cloneElement } from '../../_util/vnode';\nimport { getStyle, getListeners } from '../../_util/props-util';\nimport InnerSlider from './inner-slider';\nimport defaultProps from './default-props';\nimport { canUseDOM } from './utils/innerSliderUtils';\nvar enquire = canUseDOM() && require('enquire.js');\n\nVue.use(ref, { name: 'ant-ref' });\n\nexport default {\n props: _extends({}, defaultProps),\n mixins: [BaseMixin],\n data: function data() {\n this._responsiveMediaHandlers = [];\n return {\n breakpoint: null\n };\n },\n\n methods: {\n innerSliderRefHandler: function innerSliderRefHandler(ref) {\n this.innerSlider = ref;\n },\n media: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({ query: query, handler: handler });\n },\n slickPrev: function slickPrev() {\n this.innerSlider.slickPrev();\n },\n slickNext: function slickNext() {\n this.innerSlider.slickNext();\n },\n slickGoTo: function slickGoTo(slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n this.innerSlider.slickGoTo(slide, dontAnimate);\n },\n slickPause: function slickPause() {\n this.innerSlider.pause('paused');\n },\n slickPlay: function slickPlay() {\n this.innerSlider.handleAutoPlay('play');\n }\n },\n // handles responsive breakpoints\n beforeMount: function beforeMount() {\n var _this = this;\n\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.responsive) {\n var breakpoints = this.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery = void 0;\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() && _this.media(bQuery, function () {\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 var query = json2mq({ minWidth: breakpoints.slice(-1)[0] });\n\n canUseDOM() && this.media(query, function () {\n _this.setState({ breakpoint: null });\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n\n var settings = void 0;\n var newProps = void 0;\n if (this.breakpoint) {\n newProps = this.responsive.filter(function (resp) {\n return resp.breakpoint === _this2.breakpoint;\n });\n settings = newProps[0].settings === 'unslick' ? 'unslick' : _extends({}, this.$props, newProps[0].settings);\n } else {\n settings = _extends({}, this.$props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== 'production') {\n console.warn('slidesToScroll should be equal to 1 in centerMode, you are using ' + settings.slidesToScroll);\n }\n 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('slidesToShow should be equal to 1 when fade is true, you\\'re using ' + settings.slidesToShow);\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== 'production') {\n console.warn('slidesToScroll should be equal to 1 when fade is true, you\\'re using ' + settings.slidesToScroll);\n }\n 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 var children = this.$slots['default'] || [];\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(function (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 (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn('variableWidth is not supported in case of rows > 1 or slidesPerRow > 1');\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && getStyle(children[k])) {\n currentWidth = getStyle(children[k]).width;\n }\n if (k >= children.length) break;\n row.push(cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n attrs: {\n tabIndex: -1\n },\n style: {\n width: 100 / settings.slidesPerRow + '%',\n display: 'inline-block'\n }\n }));\n }\n newSlide.push(h(\n 'div',\n { key: 10 * i + j },\n [row]\n ));\n }\n if (settings.variableWidth) {\n newChildren.push(h(\n 'div',\n { key: i, style: { width: currentWidth } },\n [newSlide]\n ));\n } else {\n newChildren.push(h(\n 'div',\n { key: i },\n [newSlide]\n ));\n }\n }\n\n if (settings === 'unslick') {\n var className = 'regular slider ' + (this.className || '');\n return h(\n 'div',\n { 'class': className },\n [newChildren]\n );\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n var sliderProps = {\n props: _extends({}, settings, {\n children: newChildren,\n __propsSymbol__: Symbol()\n }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.innerSliderRefHandler\n }],\n scopedSlots: this.$scopedSlots\n };\n return h(InnerSlider, sliderProps);\n }\n};","// base react-slick 0.23.2\nimport Slider from './slider';\n\nexport default Slider;"],"sourceRoot":""}