{"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-resize-observer/index.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/utils.js","webpack:///./node_modules/ant-design-vue/es/vc-select/util.js","webpack:///./node_modules/ant-design-vue/es/vc-select/DropdownMenu.js","webpack:///./node_modules/ant-design-vue/es/vc-select/SelectTrigger.js","webpack:///./node_modules/ant-design-vue/es/vc-select/PropTypes.js","webpack:///./node_modules/ant-design-vue/es/vc-select/Select.js","webpack:///./node_modules/ant-design-vue/es/vc-slider/src/Handle.js","webpack:///./node_modules/ant-design-vue/es/vc-rate/src/Star.js","webpack:///./node_modules/ant-design-vue/es/vc-rate/src/Rate.js","webpack:///./node_modules/ant-design-vue/es/vc-rate/src/util.js","webpack:///./node_modules/ant-design-vue/es/vc-rate/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-rate/index.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-select/OptGroup.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","webpack:///./node_modules/ant-design-vue/es/vc-select/Option.js"],"names":["i","Slider","name","mixins","props","defaultValue","number","value","disabled","bool","autoFocus","tabIndex","reverse","min","max","data","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","c","Track","functional","render","context","_ref2","_context$props","_context$data","positonStyle","elStyle","VueResizeObserver","Boolean","currentElement","resizeObserver","width","height","mounted","onComponentUpdated","updated","beforeDestroy","destroyObserver","element","$el","onResize","observe","entries","_target$getBoundingCl","target","getBoundingClientRect","fixedWidth","Math","floor","fixedHeight","size","disconnect","$slots","isEventFromHandle","Object","keys","some","key","error","isValueOutOfRange","isNotTouchEvent","touches","type","toLowerCase","getClosestPoint","marks","step","points","map","parseFloat","base","pow","getPrecision","maxSteps","steps","closestStep","round","push","diffs","point","abs","indexOf","apply","stepString","toString","precision","getMousePosition","zoom","window","visualViewport","document","body","toFixed","clientY","pageX","getTouchPosition","getHandleCenterPosition","coords","top","pageXOffset","left","ensureValueInRange","_ref3","ensureValuePrecision","closestPoint","isFinite","pauseEvent","stopPropagation","preventDefault","getKeyboardValueMutator","increase","decrease","method","keyCode","UP","RIGHT","DOWN","LEFT","END","HOME","PAGE_UP","PAGE_DOWN","func","operations","a","b","indexToGet","JSON","stringify","keyToGet","calculateNextValue","toTitle","title","trim","getValuePropValue","child","isSelectOptGroup","label","Error","getPropValue","prop","newChild","componentOptions","children","tag","text","isCombobox","combobox","isMultipleOrTags","multiple","tags","isMultipleOrTagsOrCombobox","isSingleMode","toArray","ret","Array","isArray","getMapKey","preventDefaultEvent","findIndexInValueBySingleValue","singleValue","getLabelFromPropsValue","getSelectKeys","menuItems","selectedKeys","forEach","item","isMenuItemGroup","concat","itemValue","itemKey","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","unselectable","findFirstMenuItem","found","defaultFilterFn","input","optionFilterProp","String","validateOptionValue","isMultiple","saveRef","instance","node","generateUUID","d","Date","getTime","uuid","replace","r","random","BaseMixin","ariaId","string","defaultActiveFirstOption","any","dropdownMenuStyle","object","inputValue","visible","backfillValue","firstActiveValue","menuItemSelectedIcon","$nextTick","scrollActiveItemToView","lastVisible","created","rafInstance","lastInputValue","_this2","prevVisible","cancel","_this3","itemComponent","firstActiveItem","scrollIntoViewOpts","onlyScrollIfNeeded","alignWithTop","$refs","menuRef","renderMenu","_this4","_getListeners","menuDeselect","menuSelect","popupScroll","menuProps","itemIcon","ref","role","scroll","deselect","select","click","activeKeyProps","defaultActiveFirst","clonedMenuItems","activeKey","foundFirst","clone","lastValue","_getListeners2","popupFocus","overflow","transform","id","BUILT_IN_PLACEMENTS","bottomLeft","adjustX","adjustY","topLeft","dropdownMatchSelectWidth","dropdownAlign","showSearch","dropdownClassName","dropdownStyle","filterOption","empty","options","popupClassName","array","showAction","arrayOf","animation","transitionName","getPopupContainer","dropdownRender","dropdownWidth","saveDropdownMenuRef","saveTriggerRef","setDropdownWidth","cancelRafInstance","offsetWidth","getInnerMenu","dropdownMenuRef","getPopupDOMNode","triggerRef","getPopupDomNode","getDropdownElement","newProps","getDropdownPrefixCls","dropdownMenuProps","menuNode","DropdownMenu","getDropdownTransitionName","_popupClassName","mouseenter","mouseleave","dropdownVisibleChange","dropdownPrefixCls","popupElement","hideAction","popupStyle","widthProp","triggerProps","popupPlacement","builtinPlacements","popupTransitionName","popupAlign","popupVisible","popupVisibleChange","slot","SelectPropTypes","allowClear","showArrow","optionLabelProp","choiceTransitionName","open","defaultOpen","placeholder","labelInValue","loading","maxTagTextLength","maxTagCount","maxTagPlaceholder","tokenSeparators","getInputElement","clearIcon","inputIcon","removeIcon","mode","oneOf","backfill","notFoundContent","oneOfType","Number","use","noop","chaining","_len","fns","_key","_len2","args","_key2","Select","inheritAttrs","Option","OptGroup","def","autoClearSearchValue","menu","model","event","saveInputRef","saveInputMirrorRef","saveTopCtrlRef","saveSelectTriggerRef","saveRootRef","saveSelectionRef","_focused","_mouseDown","_options","_empty","optionsInfo","getOptionsInfoFromProps","__propsSymbol__","isDisabledExist","_value","getValueFromProps","_inputValue","getInputValueForCombobox","_open","_optionsInfo","_backfillValue","_skipBuildOptionsInfo","_ariaId","_mirrorInputValue","getDerivedState","$data","inputNode","getInputDOMNode","mirrorNode","getInputMirrorDOMNode","clientWidth","forcePopupAlign","clearFocusTime","clearBlurTime","clearComboboxTime","dropdownContainer","removeChild","prevState","newState","getOptionsFromChildren","useDefaultValue","getLabelFromOption","option","preState","oldOptionsInfo","onInputChange","_e$target","composing","_$data$_inputValue","isComposing","str","separators","lastIndexOf","includesSeparators","getValueByInput","fireChange","setOpenState","needFocus","setInputValue","onDropdownVisibleChange","timeoutFocus","updateFocusClassName","onKeyDown","onInputKeydown","KeyCode","ENTER","maybeFocus","SPACE","_this5","isRealOpen","getRealOpenState","BACKSPACE","openIfHasChildren","comboboxTimer","setTimeout","ESC","selectTriggerRef","handleBackfill","removeSelected","onMenuSelect","selectedValue","skipTrigger","fireSearch","fireSelect","onMenuDeselect","domEvent","offsetParent","isHidden","onArrowClick","onPlaceholderClick","onPopupFocus","onClearSelection","onChoiceAnimationLeave","getOptionInfoBySingleValue","info","defaultLabel","valueLabel","defaultValueLabel","getOptionBySingleValue","getOptionsBySingleValue","values","_this6","getValueByLabel","_this7","oldLable","join","getVLBySingleValue","getLabelBySingleValue","getVLForOnChange","vlsS","_this8","vls","vl","getDropdownContainer","createElement","appendChild","getPlaceholderElement","hidden","mousedown","display","inputClick","inputBlur","_this9","relatedTarget","activeElement","arrow","contains","blurTimer","firstOption","tmpValue","inputFocus","rootRef","_getInputElement","_$data","defaultInput","autoComplete","inputElement","inputCls","inputEvents","domProps","keydown","inputKeydown","topCtrlRef","querySelector","inputRef","inputMirrorRef","getPopupMenuComponent","_this10","config","__emit","_this11","_$props2","hasNewValue","reg","RegExp","split","filter","token","splitBySeparators","selectionRef","markMouseDown","markMouseLeave","_filterOption","defaultFilter","_$data2","filterFn","bind","call","_this12","focusTimer","clearTimeout","add","remove","selectedKey","isChildDisabled","_valueOptions","renderFilterOptions","_$props3","childrenKeys","renderFilterOptionsFromChildren","sort","val1","val2","menuItem","MenuItem","every","p","unshift","_p","_this13","sel","childChildren","innerItems","subChild","childValueSub","MenuItemGroup","_innerItems","isSelectOption","childValue","renderTopControlNode","_this14","_$data3","innerNode","showSelectedValue","opacity","_getOptionInfoBySingl3","selectedValueNodes","limitedCountValue","maxTagPlaceholderEl","slice","omittedValues","content","choiceClassName","transitionProps","getTransitionProps","afterLeave","topCtrlContainerClick","renderArrow","_$props4","_$props4$showArrow","defaultIcon","renderClear","_$props5","_$data4","clear","selectionRefClick","selectionRefFocus","selectionRefBlur","_rootCls","_props$showArrow","ctrlNode","_$data5","filterOptions","realOpen","_getListeners$mouseen","_getListeners$mousele","_getListeners$popupSc","selectionProps","extraSelectionProps","rootCls","SelectTrigger","proxyComponent","clickFocused","onMouseUpListener","handleMouseUp","setClickFocus","focused","handleBlur","handleKeyDown","clickFocus","handleMousedown","_getOptionProps","positionStyle","ariaProps","_tabIndex","handleProps","allowHalf","character","characterRender","count","onHover","onClick","getClassName","starValue","star","rateProps","cleanedValue","hoverValue","getStarValue","onMouseLeave","isReset","changeValue","getStarDOM","x","starEle","leftDis","el","pos","elem","y","doc","ownerDocument","docElem","documentElement","box","clientLeft","clientTop","getClientPosition","w","defaultView","parentWindow","pageYOffset","getScroll","getOffsetLeft","rateRef","stars","disabledClass","$scopedSlots","starProps","hover","Star","_trimAlignValue","bounds","allowCross","pushable","thershold","valInRange","valNotConflict","rangeProps","Range","displayName","initialValue","sHandle","recent","nextBounds","newValues","controlledState","closestBound","getClosestBound","getBoundNeedMoving","moveTo","oldValue","isFromKeyboardEvent","boundNeedMoving","isAtTheSamePoint","getPoints","cache","_getPointsCache","pointsObject","nextHandle","pushSurroundingHandles","handlesRefs","threshold","direction","diffToNext","pushHandle","amount","originalValue","currentValue","pushHandleOnePoint","nextPointIndex","ensureValueNotConflict","offsets","_","_classNames","trackClassName","handleClassName","_classNames2","dots","warning","Steps","lowerBound","upperBound","dotStyle","activeDotStyle","range","elements","isActived","pointClassName","Marks","clickLabel","listeners","marksKeys","markPoint","markPointIsObject","markLabel","isActive","markClassName","bottomStyle","marginBottom","leftStyle","msTransform","markStyle","createSlider","Component","propTypes","maximumTrackStyle","railStyle","isPointDiffEven","sliderRef","restProps","Handle","onMouseDown","button","isVertical","utils","handlePosition","dragOffset","addDocumentMouseEvents","onTouchStart","addDocumentTouchEvents","onMouseUp","onMouseMove","onTouchMove","onClickMarkLabel","getSliderStart","slider","rect","bottom","right","getSliderLength","onTouchMoveListener","addEventListener","onTouchUpListener","onMouseMoveListener","calcValue","ratio","pixelOffset","_renderSlider","sliderClassName","markProps","accessibility","adaptiveHeight","afterChange","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","dotsClass","draggable","unslick","easing","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","verticalSwiping","asNavFor","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rows","rtl","slide","slidesPerRow","slidesToScroll","slidesToShow","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","waitForAnimate","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","getHeight","offsetHeight","getSwipeDirection","swipeAngle","xDist","yDist","atan2","PI","canGoNext","canGo","extractObject","newObject","animationSlide","finalSlide","animationLeft","finalLeft","getTrackLeft","getTrackAnimateCSS","previousInt","slideOffset","targetSlide","indexOffset","message","siblingDirection","checkNavigable","navigables","breakpoint","counter","indexes","getNavigableIndexes","prevNavigable","n","getSlideCount","centerOffset","swipedSlide","slides","listRef","querySelectorAll","from","offsetTop","offsetLeft","currentIndex","dataset","checkSpecKeys","keysArray","reduce","hasOwnProperty","console","trackHeight","trackChildren","getTotalSlides","transition","WebkitTransition","WebkitTransform","attachEvent","marginTop","marginLeft","trackRef","targetLeft","slidesToOffset","getPreClones","targetSlideIndex","trackElem","childNodes","getPostClones","slidesOnRight","slidesOnLeft","canUseDOM","getSlideClasses","slickActive","slickCenter","slickCloned","getKey","fallbackKey","re","preCloneSlides","postCloneSlides","childrenCount","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","mouseover","mouseEvents","trackProps","getDotCount","ceil","appendDots","customPaging","clickHandler","dotCount","leftBound","rightBound","dotOptions","PrevArrow","prevClasses","prevHandler","prevArrowProps","customProps","prevArrow","NextArrow","nextClasses","nextHandler","nextArrowProps","nextArrow","preProps","list","track","callbackTimers","clickable","debouncedResize","listRefHandler","trackRefHandler","adaptHeight","onWindowResized","setTrackStyle","resizeWindow","updateState","handleAutoPlay","pause","animationEndCallback","callback","updatedState","centerPaddingAdj","slidesToLoad","initializedState","ssrInit","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","childWidth","_i","_i2","currentWidth","trackLeft","checkImagesLoad","images","imagesCount","loadedCount","prototype","image","onclick","prevClickHandler","parentNode","onload","onerror","progressiveLazyLoad","_index","lazyLoadTimer","clearInterval","slideHandler","dontAnimate","_slideHandler2","innerSlider","firstBatch","changeSlide","keyHandler","dir","tagName","match","selectHandler","disableBodyScroll","ontouchmove","returnValue","enableBodyScroll","swipeStart","clientX","pageY","swipeMove","onEdge","curLeft","swipeLength","sqrt","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","swipeEnd","onSwipe","minSwipe","newSlide","triggerSlideHandler","slickPrev","slickNext","slickGoTo","isNaN","play","nextIndex","playType","autoplayTimer","setInterval","pauseType","onDotsOver","onDotsLeave","onTrackOver","onTrackLeave","onSlideFocus","onSlideBlur","beforeMount","ro","onfocus","onblur","timer","removeEventListener","detachEvent","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","err","dotProps","_$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","bQuery","minWidth","maxWidth","obj","unregister","settings","resp","warn","newChildren","j","row","k","sliderProps","scopedSlots"],"mappings":"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","file":"js/chunk-vendors~d0d0374e.f0094f61.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;","// based on rc-resize-observer 0.1.3\nimport ResizeObserver from 'resize-observer-polyfill';\n\n// Still need to be compatible with React 15, we use class component here\nvar VueResizeObserver = {\n name: 'ResizeObserver',\n props: {\n disabled: Boolean\n },\n data: function data() {\n this.currentElement = null;\n this.resizeObserver = null;\n return {\n width: 0,\n height: 0\n };\n },\n mounted: function mounted() {\n this.onComponentUpdated();\n },\n updated: function updated() {\n this.onComponentUpdated();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyObserver();\n },\n\n methods: {\n onComponentUpdated: function onComponentUpdated() {\n var disabled = this.$props.disabled;\n\n // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n }\n\n // Unregister if element changed\n var element = this.$el;\n var elementChanged = element !== this.currentElement;\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n }\n },\n onResize: function onResize(entries) {\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (this.width !== fixedWidth || this.height !== fixedHeight) {\n var size = { width: fixedWidth, height: fixedHeight };\n this.width = fixedWidth;\n this.height = fixedHeight;\n this.$emit('resize', size);\n }\n },\n destroyObserver: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n },\n\n render: function render() {\n return this.$slots['default'][0];\n }\n};\n\nexport default VueResizeObserver;","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 _typeof from 'babel-runtime/helpers/typeof';\nimport { getPropsData, getSlotOptions, getKey, getAttrs, getComponentFromProp } from '../_util/props-util';\nimport { cloneVNodes } from '../_util/vnode';\n\nexport function toTitle(title) {\n if (typeof title === 'string') {\n return title.trim();\n }\n return '';\n}\nexport function getValuePropValue(child) {\n if (!child) {\n return null;\n }\n var props = getPropsData(child);\n if ('value' in props) {\n return props.value;\n }\n if (getKey(child) !== undefined) {\n return getKey(child);\n }\n if (getSlotOptions(child).isSelectOptGroup) {\n var label = getComponentFromProp(child, 'label');\n if (label) {\n return label;\n }\n }\n throw new Error('Need at least a key or a value or a label (only for OptGroup) for ' + child);\n}\n\nexport function getPropValue(child, prop) {\n if (prop === 'value') {\n return getValuePropValue(child);\n }\n if (prop === 'children') {\n var newChild = child.$slots ? cloneVNodes(child.$slots['default'], true) : cloneVNodes(child.componentOptions.children, true);\n if (newChild.length === 1 && !newChild[0].tag) {\n return newChild[0].text;\n }\n return newChild;\n }\n var data = getPropsData(child);\n if (prop in data) {\n return data[prop];\n } else {\n return getAttrs(child)[prop];\n }\n}\n\nexport function isMultiple(props) {\n return props.multiple;\n}\n\nexport function isCombobox(props) {\n return props.combobox;\n}\n\nexport function isMultipleOrTags(props) {\n return props.multiple || props.tags;\n}\n\nexport function isMultipleOrTagsOrCombobox(props) {\n return isMultipleOrTags(props) || isCombobox(props);\n}\n\nexport function isSingleMode(props) {\n return !isMultipleOrTagsOrCombobox(props);\n}\n\nexport function toArray(value) {\n var ret = value;\n if (value === undefined) {\n ret = [];\n } else if (!Array.isArray(value)) {\n ret = [value];\n }\n return ret;\n}\n\nexport function getMapKey(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '-' + value;\n}\n\nexport function preventDefaultEvent(e) {\n e.preventDefault();\n}\n\nexport function findIndexInValueBySingleValue(value, singleValue) {\n var index = -1;\n if (value) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === singleValue) {\n index = i;\n break;\n }\n }\n }\n return index;\n}\n\nexport function getLabelFromPropsValue(value, key) {\n var label = void 0;\n value = toArray(value);\n if (value) {\n for (var i = 0; i < value.length; i++) {\n if (value[i].key === key) {\n label = value[i].label;\n break;\n }\n }\n }\n return label;\n}\n\nexport function getSelectKeys(menuItems, value) {\n if (value === null || value === undefined) {\n return [];\n }\n var selectedKeys = [];\n menuItems.forEach(function (item) {\n if (getSlotOptions(item).isMenuItemGroup) {\n selectedKeys = selectedKeys.concat(getSelectKeys(item.componentOptions.children, value));\n } else {\n var itemValue = getValuePropValue(item);\n var itemKey = item.key;\n if (findIndexInValueBySingleValue(value, itemValue) !== -1 && itemKey !== undefined) {\n selectedKeys.push(itemKey);\n }\n }\n });\n return selectedKeys;\n}\n\nexport var UNSELECTABLE_STYLE = {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n};\n\nexport var UNSELECTABLE_ATTRIBUTE = {\n unselectable: 'on'\n};\n\nexport function findFirstMenuItem(children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n var props = getPropsData(child);\n if (getSlotOptions(child).isMenuItemGroup) {\n var found = findFirstMenuItem(child.componentOptions.children);\n if (found) {\n return found;\n }\n } else if (!(props.disabled || props.disabled === '')) {\n return child;\n }\n }\n return null;\n}\n\nexport function includesSeparators(str, separators) {\n for (var i = 0; i < separators.length; ++i) {\n if (str.lastIndexOf(separators[i]) > 0) {\n return true;\n }\n }\n return false;\n}\n\nexport function splitBySeparators(str, separators) {\n var reg = new RegExp('[' + separators.join() + ']');\n return str.split(reg).filter(function (token) {\n return token;\n });\n}\n\nexport function defaultFilterFn(input, child) {\n var props = getPropsData(child);\n if (props.disabled) {\n return false;\n }\n var value = getPropValue(child, this.optionFilterProp);\n if (value.length && value[0].text) {\n value = value[0].text;\n } else {\n value = String(value);\n }\n return value.toLowerCase().indexOf(input.toLowerCase()) > -1;\n}\n\nexport function validateOptionValue(value, props) {\n if (isSingleMode(props) || isMultiple(props)) {\n return;\n }\n if (typeof value !== 'string') {\n throw new Error('Invalid `value` of type `' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '` supplied to Option, ' + 'expected `string` when `tags/combobox` is `true`.');\n }\n}\n\nexport function saveRef(instance, name) {\n return function (node) {\n instance[name] = node;\n };\n}\n\nexport function generateUUID() {\n if (process.env.NODE_ENV === 'test') {\n return 'test-uuid';\n }\n var d = new Date().getTime();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : r & 0x7 | 0x8).toString(16);\n });\n return uuid;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport raf from 'raf';\nimport PropTypes from '../_util/vue-types';\nimport Menu from '../vc-menu';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport { getSelectKeys, preventDefaultEvent } from './util';\nimport { cloneElement } from '../_util/vnode';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getSlotOptions, getComponentFromProp, getListeners } from '../_util/props-util';\n\nexport default {\n name: 'DropdownMenu',\n mixins: [BaseMixin],\n props: {\n ariaId: PropTypes.string,\n defaultActiveFirstOption: PropTypes.bool,\n value: PropTypes.any,\n dropdownMenuStyle: PropTypes.object,\n multiple: PropTypes.bool,\n // onPopupFocus: PropTypes.func,\n // onPopupScroll: PropTypes.func,\n // onMenuDeSelect: PropTypes.func,\n // onMenuSelect: PropTypes.func,\n prefixCls: PropTypes.string,\n menuItems: PropTypes.any,\n inputValue: PropTypes.string,\n visible: PropTypes.bool,\n backfillValue: PropTypes.any,\n firstActiveValue: PropTypes.string,\n menuItemSelectedIcon: PropTypes.any\n },\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (!val) {\n this.lastVisible = val;\n } else {\n this.$nextTick(function () {\n _this.scrollActiveItemToView();\n });\n }\n }\n },\n\n created: function created() {\n this.rafInstance = null;\n this.lastInputValue = this.$props.inputValue;\n this.lastVisible = false;\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.scrollActiveItemToView();\n });\n this.lastVisible = this.$props.visible;\n },\n updated: function updated() {\n var props = this.$props;\n // if (!this.prevVisible && props.visible) {\n // this.$nextTick(() => {\n // this.scrollActiveItemToView();\n // });\n // }\n this.lastVisible = props.visible;\n this.lastInputValue = props.inputValue;\n this.prevVisible = this.visible;\n },\n beforeDestroy: function beforeDestroy() {\n if (this.rafInstance) {\n raf.cancel(this.rafInstance);\n }\n },\n\n methods: {\n scrollActiveItemToView: function scrollActiveItemToView() {\n var _this3 = this;\n\n // scroll into view\n var itemComponent = this.firstActiveItem && this.firstActiveItem.$el;\n var props = this.$props;\n var value = props.value,\n visible = props.visible,\n firstActiveValue = props.firstActiveValue;\n\n if (!itemComponent || !visible) {\n return;\n }\n var scrollIntoViewOpts = {\n onlyScrollIfNeeded: true\n };\n if ((!value || value.length === 0) && firstActiveValue) {\n scrollIntoViewOpts.alignWithTop = true;\n }\n // Delay to scroll since current frame item position is not ready when pre view is by filter\n // https://github.com/ant-design/ant-design/issues/11268#issuecomment-406634462\n this.rafInstance = raf(function () {\n scrollIntoView(itemComponent, _this3.$refs.menuRef.$el, scrollIntoViewOpts);\n });\n },\n renderMenu: function renderMenu() {\n var _this4 = this;\n\n var h = this.$createElement;\n\n var props = this.$props;\n var menuItems = props.menuItems,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n value = props.value,\n prefixCls = props.prefixCls,\n multiple = props.multiple,\n inputValue = props.inputValue,\n firstActiveValue = props.firstActiveValue,\n dropdownMenuStyle = props.dropdownMenuStyle,\n backfillValue = props.backfillValue,\n visible = props.visible;\n\n var menuItemSelectedIcon = getComponentFromProp(this, 'menuItemSelectedIcon');\n\n var _getListeners = getListeners(this),\n menuDeselect = _getListeners.menuDeselect,\n menuSelect = _getListeners.menuSelect,\n popupScroll = _getListeners.popupScroll;\n\n if (menuItems && menuItems.length) {\n var selectedKeys = getSelectKeys(menuItems, value);\n var menuProps = {\n props: {\n multiple: multiple,\n itemIcon: multiple ? menuItemSelectedIcon : null,\n selectedKeys: selectedKeys,\n prefixCls: prefixCls + '-menu'\n },\n on: {},\n style: dropdownMenuStyle,\n ref: 'menuRef',\n attrs: {\n role: 'listbox'\n }\n };\n if (popupScroll) {\n menuProps.on.scroll = popupScroll;\n }\n if (multiple) {\n menuProps.on.deselect = menuDeselect;\n menuProps.on.select = menuSelect;\n } else {\n menuProps.on.click = menuSelect;\n }\n var activeKeyProps = {};\n\n var defaultActiveFirst = defaultActiveFirstOption;\n var clonedMenuItems = menuItems;\n if (selectedKeys.length || firstActiveValue) {\n if (props.visible && !this.lastVisible) {\n activeKeyProps.activeKey = selectedKeys[0] || firstActiveValue;\n } else if (!visible) {\n // Do not trigger auto active since we already have selectedKeys\n if (selectedKeys[0]) {\n defaultActiveFirst = false;\n }\n activeKeyProps.activeKey = undefined;\n }\n var foundFirst = false;\n // set firstActiveItem via cloning menus\n // for scroll into view\n var clone = function clone(item) {\n if (!foundFirst && selectedKeys.indexOf(item.key) !== -1 || !foundFirst && !selectedKeys.length && firstActiveValue.indexOf(item.key) !== -1) {\n foundFirst = true;\n return cloneElement(item, {\n directives: [{\n name: 'ant-ref',\n value: function value(ref) {\n _this4.firstActiveItem = ref;\n }\n }]\n });\n }\n return item;\n };\n\n clonedMenuItems = menuItems.map(function (item) {\n if (getSlotOptions(item).isMenuItemGroup) {\n var children = item.componentOptions.children.map(clone);\n return cloneElement(item, { children: children });\n }\n return clone(item);\n });\n } else {\n // Clear firstActiveItem when dropdown menu items was empty\n // Avoid `Unable to find node on an unmounted component`\n // https://github.com/ant-design/ant-design/issues/10774\n this.firstActiveItem = null;\n }\n\n // clear activeKey when inputValue change\n var lastValue = value && value[value.length - 1];\n if (inputValue !== this.lastInputValue && (!lastValue || lastValue !== backfillValue)) {\n activeKeyProps.activeKey = '';\n }\n menuProps.props = _extends({}, activeKeyProps, menuProps.props, { defaultActiveFirst: defaultActiveFirst });\n return h(\n Menu,\n menuProps,\n [clonedMenuItems]\n );\n }\n return null;\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var renderMenu = this.renderMenu();\n\n var _getListeners2 = getListeners(this),\n popupFocus = _getListeners2.popupFocus,\n popupScroll = _getListeners2.popupScroll;\n\n return renderMenu ? h(\n 'div',\n {\n style: {\n overflow: 'auto',\n transform: 'translateZ(0)'\n },\n attrs: { id: this.$props.ariaId,\n tabIndex: '-1'\n },\n on: {\n 'focus': popupFocus,\n 'mousedown': preventDefaultEvent,\n 'scroll': popupScroll\n },\n\n ref: 'menuContainer'\n },\n [renderMenu]\n ) : null;\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport raf from 'raf';\nimport Trigger from '../vc-trigger';\nimport PropTypes from '../_util/vue-types';\nimport DropdownMenu from './DropdownMenu';\nimport { isSingleMode, saveRef } from './util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getListeners } from '../_util/props-util';\n\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\n\nexport default {\n name: 'SelectTrigger',\n mixins: [BaseMixin],\n props: {\n // onPopupFocus: PropTypes.func,\n // onPopupScroll: PropTypes.func,\n dropdownMatchSelectWidth: PropTypes.bool,\n defaultActiveFirstOption: PropTypes.bool,\n dropdownAlign: PropTypes.object,\n visible: PropTypes.bool,\n disabled: PropTypes.bool,\n showSearch: PropTypes.bool,\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n dropdownMenuStyle: PropTypes.object,\n multiple: PropTypes.bool,\n inputValue: PropTypes.string,\n filterOption: PropTypes.any,\n empty: PropTypes.bool,\n options: PropTypes.any,\n prefixCls: PropTypes.string,\n popupClassName: PropTypes.string,\n value: PropTypes.array,\n // children: PropTypes.any,\n showAction: PropTypes.arrayOf(PropTypes.string),\n combobox: PropTypes.bool,\n animation: PropTypes.string,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n backfillValue: PropTypes.any,\n menuItemSelectedIcon: PropTypes.any,\n dropdownRender: PropTypes.func,\n ariaId: PropTypes.string\n },\n data: function data() {\n return {\n dropdownWidth: 0\n };\n },\n created: function created() {\n this.rafInstance = null;\n this.saveDropdownMenuRef = saveRef(this, 'dropdownMenuRef');\n this.saveTriggerRef = saveRef(this, 'triggerRef');\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setDropdownWidth();\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setDropdownWidth();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.cancelRafInstance();\n },\n\n methods: {\n setDropdownWidth: function setDropdownWidth() {\n var _this3 = this;\n\n this.cancelRafInstance();\n this.rafInstance = raf(function () {\n var width = _this3.$el.offsetWidth;\n if (width !== _this3.dropdownWidth) {\n _this3.setState({ dropdownWidth: width });\n }\n });\n },\n cancelRafInstance: function cancelRafInstance() {\n if (this.rafInstance) {\n raf.cancel(this.rafInstance);\n }\n },\n getInnerMenu: function getInnerMenu() {\n return this.dropdownMenuRef && this.dropdownMenuRef.$refs.menuRef;\n },\n getPopupDOMNode: function getPopupDOMNode() {\n return this.triggerRef.getPopupDomNode();\n },\n getDropdownElement: function getDropdownElement(newProps) {\n var h = this.$createElement;\n var value = this.value,\n firstActiveValue = this.firstActiveValue,\n defaultActiveFirstOption = this.defaultActiveFirstOption,\n dropdownMenuStyle = this.dropdownMenuStyle,\n getDropdownPrefixCls = this.getDropdownPrefixCls,\n backfillValue = this.backfillValue,\n menuItemSelectedIcon = this.menuItemSelectedIcon;\n\n var _getListeners = getListeners(this),\n menuSelect = _getListeners.menuSelect,\n menuDeselect = _getListeners.menuDeselect,\n popupScroll = _getListeners.popupScroll;\n\n var props = this.$props;\n\n var dropdownRender = props.dropdownRender,\n ariaId = props.ariaId;\n\n var dropdownMenuProps = {\n props: _extends({}, newProps.props, {\n ariaId: ariaId,\n prefixCls: getDropdownPrefixCls(),\n value: value,\n firstActiveValue: firstActiveValue,\n defaultActiveFirstOption: defaultActiveFirstOption,\n dropdownMenuStyle: dropdownMenuStyle,\n backfillValue: backfillValue,\n menuItemSelectedIcon: menuItemSelectedIcon\n }),\n on: _extends({}, newProps.on, {\n menuSelect: menuSelect,\n menuDeselect: menuDeselect,\n popupScroll: popupScroll\n }),\n directives: [{\n name: 'ant-ref',\n value: this.saveDropdownMenuRef\n }]\n };\n var menuNode = h(DropdownMenu, dropdownMenuProps);\n\n if (dropdownRender) {\n return dropdownRender(menuNode, props);\n }\n return null;\n },\n getDropdownTransitionName: function getDropdownTransitionName() {\n var props = this.$props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = this.getDropdownPrefixCls() + '-' + props.animation;\n }\n return transitionName;\n },\n getDropdownPrefixCls: function getDropdownPrefixCls() {\n return this.prefixCls + '-dropdown';\n }\n },\n\n render: function render() {\n var _popupClassName;\n\n var h = arguments[0];\n var $props = this.$props,\n $slots = this.$slots;\n var multiple = $props.multiple,\n visible = $props.visible,\n inputValue = $props.inputValue,\n dropdownAlign = $props.dropdownAlign,\n disabled = $props.disabled,\n showSearch = $props.showSearch,\n dropdownClassName = $props.dropdownClassName,\n dropdownStyle = $props.dropdownStyle,\n dropdownMatchSelectWidth = $props.dropdownMatchSelectWidth,\n options = $props.options,\n getPopupContainer = $props.getPopupContainer,\n showAction = $props.showAction,\n empty = $props.empty;\n\n var _getListeners2 = getListeners(this),\n mouseenter = _getListeners2.mouseenter,\n mouseleave = _getListeners2.mouseleave,\n popupFocus = _getListeners2.popupFocus,\n dropdownVisibleChange = _getListeners2.dropdownVisibleChange;\n\n var dropdownPrefixCls = this.getDropdownPrefixCls();\n var popupClassName = (_popupClassName = {}, _defineProperty(_popupClassName, dropdownClassName, !!dropdownClassName), _defineProperty(_popupClassName, dropdownPrefixCls + '--' + (multiple ? 'multiple' : 'single'), 1), _defineProperty(_popupClassName, dropdownPrefixCls + '--empty', empty), _popupClassName);\n var popupElement = this.getDropdownElement({\n props: {\n menuItems: options,\n multiple: multiple,\n inputValue: inputValue,\n visible: visible\n },\n on: {\n popupFocus: popupFocus\n }\n });\n var hideAction = void 0;\n if (disabled) {\n hideAction = [];\n } else if (isSingleMode($props) && !showSearch) {\n hideAction = ['click'];\n } else {\n hideAction = ['blur'];\n }\n var popupStyle = _extends({}, dropdownStyle);\n var widthProp = dropdownMatchSelectWidth ? 'width' : 'minWidth';\n if (this.dropdownWidth) {\n popupStyle[widthProp] = this.dropdownWidth + 'px';\n }\n var triggerProps = {\n props: _extends({}, $props, {\n showAction: disabled ? [] : showAction,\n hideAction: hideAction,\n ref: 'triggerRef',\n popupPlacement: 'bottomLeft',\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: this.getDropdownTransitionName(),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classnames(popupClassName),\n popupStyle: popupStyle\n }),\n on: {\n popupVisibleChange: dropdownVisibleChange\n },\n directives: [{\n name: 'ant-ref',\n value: this.saveTriggerRef\n }]\n };\n if (mouseenter) {\n triggerProps.on.mouseenter = mouseenter;\n }\n if (mouseleave) {\n triggerProps.on.mouseleave = mouseleave;\n }\n return h(\n Trigger,\n triggerProps,\n [$slots['default'], h(\n 'template',\n { slot: 'popup' },\n [popupElement]\n )]\n );\n }\n};","import PropTypes from '../_util/vue-types';\n\nexport var SelectPropTypes = {\n defaultActiveFirstOption: PropTypes.bool,\n multiple: PropTypes.bool,\n filterOption: PropTypes.any,\n // children: PropTypes.any,\n showSearch: PropTypes.bool,\n disabled: PropTypes.bool,\n allowClear: PropTypes.bool,\n showArrow: PropTypes.bool,\n tags: PropTypes.bool,\n prefixCls: PropTypes.string,\n // className: PropTypes.string,\n transitionName: PropTypes.string,\n optionLabelProp: PropTypes.string,\n optionFilterProp: PropTypes.string,\n animation: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n // onChange: PropTypes.func,\n // onBlur: PropTypes.func,\n // onFocus: PropTypes.func,\n // onSelect: PropTypes.func,\n // onSearch: PropTypes.func,\n // onPopupScroll: PropTypes.func,\n // onMouseEnter: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n // onInputKeyDown: PropTypes.func,\n placeholder: PropTypes.any,\n // onDeselect: PropTypes.func,\n labelInValue: PropTypes.bool,\n loading: PropTypes.bool,\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n dropdownStyle: PropTypes.object,\n dropdownClassName: PropTypes.string,\n maxTagTextLength: PropTypes.number,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.any,\n tokenSeparators: PropTypes.arrayOf(PropTypes.string),\n getInputElement: PropTypes.func,\n showAction: PropTypes.arrayOf(PropTypes.string),\n autoFocus: PropTypes.bool,\n getPopupContainer: PropTypes.func,\n clearIcon: PropTypes.any,\n inputIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n menuItemSelectedIcon: PropTypes.any,\n dropdownRender: PropTypes.func,\n mode: PropTypes.oneOf(['multiple', 'tags']),\n backfill: PropTypes.bool,\n dropdownAlign: PropTypes.any,\n dropdownMatchSelectWidth: PropTypes.bool,\n dropdownMenuStyle: PropTypes.object,\n notFoundContent: PropTypes.oneOfType([String, Number]),\n tabIndex: PropTypes.oneOfType([String, Number])\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport KeyCode from '../_util/KeyCode';\nimport PropTypes from '../_util/vue-types';\nimport classnames from 'classnames';\nimport classes from 'component-classes';\nimport { Item as MenuItem, ItemGroup as MenuItemGroup } from '../vc-menu';\nimport warning from 'warning';\nimport Vue from 'vue';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nimport { hasProp, getSlotOptions, getPropsData, getValueByProp as getValue, getComponentFromProp, getEvents, getClass, getStyle, getAttrs, getOptionProps, getSlots, getListeners } from '../_util/props-util';\nimport getTransitionProps from '../_util/getTransitionProps';\nimport { cloneElement } from '../_util/vnode';\nimport BaseMixin from '../_util/BaseMixin';\nimport proxyComponent from '../_util/proxyComponent';\nimport ref from 'vue-ref';\nimport SelectTrigger from './SelectTrigger';\nimport { defaultFilterFn, findFirstMenuItem, findIndexInValueBySingleValue, generateUUID, getLabelFromPropsValue, getMapKey, getPropValue, getValuePropValue, includesSeparators, isCombobox, isMultipleOrTags, isMultipleOrTagsOrCombobox, isSingleMode, preventDefaultEvent, saveRef, splitBySeparators, toArray, toTitle, UNSELECTABLE_ATTRIBUTE, UNSELECTABLE_STYLE, validateOptionValue } from './util';\nimport { SelectPropTypes } from './PropTypes';\nimport contains from '../vc-util/Dom/contains';\nimport { isIE, isEdge } from '../_util/env';\n\nVue.use(ref, { name: 'ant-ref' });\nvar SELECT_EMPTY_VALUE_KEY = 'RC_SELECT_EMPTY_VALUE_KEY';\n\nvar noop = function noop() {\n return null;\n};\n\n// Where el is the DOM element you'd like to test for visibility\nfunction isHidden(node) {\n return !node || node.offsetParent === null;\n}\n\nfunction chaining() {\n for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n // eslint-disable-line\n // eslint-disable-line\n for (var i = 0; i < fns.length; i++) {\n if (fns[i] && typeof fns[i] === 'function') {\n fns[i].apply(chaining, args);\n }\n }\n };\n}\nvar Select = {\n inheritAttrs: false,\n Option: Option,\n OptGroup: OptGroup,\n name: 'Select',\n mixins: [BaseMixin],\n props: _extends({}, SelectPropTypes, {\n prefixCls: SelectPropTypes.prefixCls.def('rc-select'),\n defaultOpen: PropTypes.bool.def(false),\n labelInValue: SelectPropTypes.labelInValue.def(false),\n defaultActiveFirstOption: SelectPropTypes.defaultActiveFirstOption.def(true),\n showSearch: SelectPropTypes.showSearch.def(true),\n allowClear: SelectPropTypes.allowClear.def(false),\n placeholder: SelectPropTypes.placeholder.def(''),\n // showArrow: SelectPropTypes.showArrow.def(true),\n dropdownMatchSelectWidth: PropTypes.bool.def(true),\n dropdownStyle: SelectPropTypes.dropdownStyle.def(function () {\n return {};\n }),\n dropdownMenuStyle: PropTypes.object.def(function () {\n return {};\n }),\n optionFilterProp: SelectPropTypes.optionFilterProp.def('value'),\n optionLabelProp: SelectPropTypes.optionLabelProp.def('value'),\n notFoundContent: PropTypes.any.def('Not Found'),\n backfill: PropTypes.bool.def(false),\n showAction: SelectPropTypes.showAction.def(['click']),\n combobox: PropTypes.bool.def(false),\n tokenSeparators: PropTypes.arrayOf(PropTypes.string).def([]),\n autoClearSearchValue: PropTypes.bool.def(true),\n tabIndex: PropTypes.any.def(0),\n dropdownRender: PropTypes.func.def(function (menu) {\n return menu;\n })\n // onChange: noop,\n // onFocus: noop,\n // onBlur: noop,\n // onSelect: noop,\n // onSearch: noop,\n // onDeselect: noop,\n // onInputKeydown: noop,\n }),\n model: {\n prop: 'value',\n event: 'change'\n },\n created: function created() {\n this.saveInputRef = saveRef(this, 'inputRef');\n this.saveInputMirrorRef = saveRef(this, 'inputMirrorRef');\n this.saveTopCtrlRef = saveRef(this, 'topCtrlRef');\n this.saveSelectTriggerRef = saveRef(this, 'selectTriggerRef');\n this.saveRootRef = saveRef(this, 'rootRef');\n this.saveSelectionRef = saveRef(this, 'selectionRef');\n this._focused = false;\n this._mouseDown = false;\n this._options = [];\n this._empty = false;\n },\n data: function data() {\n var props = getOptionProps(this);\n var optionsInfo = this.getOptionsInfoFromProps(props);\n warning(this.__propsSymbol__, 'Replace slots.default with props.children and pass props.__propsSymbol__');\n if (props.tags && typeof props.filterOption !== 'function') {\n var isDisabledExist = Object.keys(optionsInfo).some(function (key) {\n return optionsInfo[key].disabled;\n });\n warning(!isDisabledExist, 'Please avoid setting option to disabled in tags mode since user can always type text as tag.');\n }\n var state = {\n _value: this.getValueFromProps(props, true), // true: use default value\n _inputValue: props.combobox ? this.getInputValueForCombobox(props, optionsInfo, true // use default value\n ) : '',\n _open: props.defaultOpen,\n _optionsInfo: optionsInfo,\n _backfillValue: '',\n // a flag for aviod redundant getOptionsInfoFromProps call\n _skipBuildOptionsInfo: true,\n _ariaId: generateUUID()\n };\n return _extends({}, state, {\n _mirrorInputValue: state._inputValue }, this.getDerivedState(props, state));\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // when defaultOpen is true, we should auto focus search input\n // https://github.com/ant-design/ant-design/issues/14254\n if (_this.autoFocus || _this._open) {\n _this.focus();\n }\n // this.setState({\n // _ariaId: generateUUID(),\n // });\n });\n },\n\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n _extends(this.$data, this.getDerivedState(getOptionProps(this), this.$data));\n },\n '$data._inputValue': function $data_inputValue(val) {\n this.$data._mirrorInputValue = val;\n }\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n if (isMultipleOrTags(_this2.$props)) {\n var inputNode = _this2.getInputDOMNode();\n var mirrorNode = _this2.getInputMirrorDOMNode();\n if (inputNode && inputNode.value && mirrorNode) {\n inputNode.style.width = '';\n inputNode.style.width = mirrorNode.clientWidth + 10 + 'px';\n } else if (inputNode) {\n inputNode.style.width = '';\n }\n }\n _this2.forcePopupAlign();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFocusTime();\n this.clearBlurTime();\n this.clearComboboxTime();\n if (this.dropdownContainer) {\n document.body.removeChild(this.dropdownContainer);\n this.dropdownContainer = null;\n }\n },\n\n methods: {\n getDerivedState: function getDerivedState(nextProps, prevState) {\n var optionsInfo = prevState._skipBuildOptionsInfo ? prevState._optionsInfo : this.getOptionsInfoFromProps(nextProps, prevState);\n\n var newState = {\n _optionsInfo: optionsInfo,\n _skipBuildOptionsInfo: false\n };\n\n if ('open' in nextProps) {\n newState._open = nextProps.open;\n }\n\n if ('value' in nextProps) {\n var value = this.getValueFromProps(nextProps);\n newState._value = value;\n if (nextProps.combobox) {\n newState._inputValue = this.getInputValueForCombobox(nextProps, optionsInfo);\n }\n }\n return newState;\n },\n getOptionsFromChildren: function getOptionsFromChildren() {\n var _this3 = this;\n\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n children.forEach(function (child) {\n if (!child.data || child.data.slot !== undefined) {\n return;\n }\n if (getSlotOptions(child).isSelectOptGroup) {\n _this3.getOptionsFromChildren(child.componentOptions.children, options);\n } else {\n options.push(child);\n }\n });\n return options;\n },\n getInputValueForCombobox: function getInputValueForCombobox(props, optionsInfo, useDefaultValue) {\n var value = [];\n if ('value' in props && !useDefaultValue) {\n value = toArray(props.value);\n }\n if ('defaultValue' in props && useDefaultValue) {\n value = toArray(props.defaultValue);\n }\n if (value.length) {\n value = value[0];\n } else {\n return '';\n }\n var label = value;\n if (props.labelInValue) {\n label = value.label;\n } else if (optionsInfo[getMapKey(value)]) {\n label = optionsInfo[getMapKey(value)].label;\n }\n if (label === undefined) {\n label = '';\n }\n return label;\n },\n getLabelFromOption: function getLabelFromOption(props, option) {\n return getPropValue(option, props.optionLabelProp);\n },\n getOptionsInfoFromProps: function getOptionsInfoFromProps(props, preState) {\n var _this4 = this;\n\n var options = this.getOptionsFromChildren(this.$props.children);\n var optionsInfo = {};\n options.forEach(function (option) {\n var singleValue = getValuePropValue(option);\n optionsInfo[getMapKey(singleValue)] = {\n option: option,\n value: singleValue,\n label: _this4.getLabelFromOption(props, option),\n title: getValue(option, 'title'),\n disabled: getValue(option, 'disabled')\n };\n });\n if (preState) {\n // keep option info in pre state value.\n var oldOptionsInfo = preState._optionsInfo;\n var value = preState._value;\n if (value) {\n value.forEach(function (v) {\n var key = getMapKey(v);\n if (!optionsInfo[key] && oldOptionsInfo[key] !== undefined) {\n optionsInfo[key] = oldOptionsInfo[key];\n }\n });\n }\n }\n return optionsInfo;\n },\n getValueFromProps: function getValueFromProps(props, useDefaultValue) {\n var value = [];\n if ('value' in props && !useDefaultValue) {\n value = toArray(props.value);\n }\n if ('defaultValue' in props && useDefaultValue) {\n value = toArray(props.defaultValue);\n }\n if (props.labelInValue) {\n value = value.map(function (v) {\n return v.key;\n });\n }\n return value;\n },\n onInputChange: function onInputChange(e) {\n var _e$target = e.target,\n val = _e$target.value,\n composing = _e$target.composing;\n\n var _$data$_inputValue = this.$data._inputValue,\n _inputValue = _$data$_inputValue === undefined ? '' : _$data$_inputValue;\n\n if (e.isComposing || composing || _inputValue === val) {\n this.setState({\n _mirrorInputValue: val\n });\n return;\n }\n var tokenSeparators = this.$props.tokenSeparators;\n\n if (isMultipleOrTags(this.$props) && tokenSeparators.length && includesSeparators(val, tokenSeparators)) {\n var nextValue = this.getValueByInput(val);\n if (nextValue !== undefined) {\n this.fireChange(nextValue);\n }\n this.setOpenState(false, { needFocus: true });\n this.setInputValue('', false);\n return;\n }\n this.setInputValue(val);\n this.setState({\n _open: true\n });\n if (isCombobox(this.$props)) {\n this.fireChange([val]);\n }\n },\n onDropdownVisibleChange: function onDropdownVisibleChange(open) {\n if (open && !this._focused) {\n this.clearBlurTime();\n this.timeoutFocus();\n this._focused = true;\n this.updateFocusClassName();\n }\n this.setOpenState(open);\n },\n\n\n // combobox ignore\n onKeyDown: function onKeyDown(event) {\n var open = this.$data._open;\n var disabled = this.$props.disabled;\n\n if (disabled) {\n return;\n }\n var keyCode = event.keyCode;\n if (open && !this.getInputDOMNode()) {\n this.onInputKeydown(event);\n } else if (keyCode === KeyCode.ENTER || keyCode === KeyCode.DOWN) {\n // vue state是同步更新,onKeyDown在onMenuSelect后会再次调用,单选时不在调用setOpenState\n // https://github.com/vueComponent/ant-design-vue/issues/1142\n if (keyCode === KeyCode.ENTER && !isMultipleOrTags(this.$props)) {\n this.maybeFocus(true);\n } else if (!open) {\n this.setOpenState(true);\n }\n event.preventDefault();\n } else if (keyCode === KeyCode.SPACE) {\n // Not block space if popup is shown\n if (!open) {\n this.setOpenState(true);\n event.preventDefault();\n }\n }\n },\n onInputKeydown: function onInputKeydown(event) {\n var _this5 = this;\n\n var _$props = this.$props,\n disabled = _$props.disabled,\n combobox = _$props.combobox,\n defaultActiveFirstOption = _$props.defaultActiveFirstOption;\n\n if (disabled) {\n return;\n }\n var state = this.$data;\n var isRealOpen = this.getRealOpenState(state);\n var keyCode = event.keyCode;\n if (isMultipleOrTags(this.$props) && !event.target.value && keyCode === KeyCode.BACKSPACE) {\n event.preventDefault();\n var value = state._value;\n\n if (value.length) {\n this.removeSelected(value[value.length - 1]);\n }\n return;\n }\n if (keyCode === KeyCode.DOWN) {\n if (!state._open) {\n this.openIfHasChildren();\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n } else if (keyCode === KeyCode.ENTER && state._open) {\n // Aviod trigger form submit when select item\n // https://github.com/ant-design/ant-design/issues/10861\n // https://github.com/ant-design/ant-design/issues/14544\n if (isRealOpen || !combobox) {\n event.preventDefault();\n }\n // Hard close popup to avoid lock of non option in combobox mode\n if (isRealOpen && combobox && defaultActiveFirstOption === false) {\n this.comboboxTimer = setTimeout(function () {\n _this5.setOpenState(false);\n });\n }\n } else if (keyCode === KeyCode.ESC) {\n if (state._open) {\n this.setOpenState(false);\n event.preventDefault();\n event.stopPropagation();\n }\n return;\n }\n\n if (isRealOpen && this.selectTriggerRef) {\n var menu = this.selectTriggerRef.getInnerMenu();\n if (menu && menu.onKeyDown(event, this.handleBackfill)) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n onMenuSelect: function onMenuSelect(_ref) {\n var item = _ref.item;\n\n if (!item) {\n return;\n }\n var value = this.$data._value;\n var props = this.$props;\n var selectedValue = getValuePropValue(item);\n var lastValue = value[value.length - 1];\n var skipTrigger = false;\n\n if (isMultipleOrTags(props)) {\n if (findIndexInValueBySingleValue(value, selectedValue) !== -1) {\n skipTrigger = true;\n } else {\n value = value.concat([selectedValue]);\n }\n } else {\n if (!isCombobox(props) && lastValue !== undefined && lastValue === selectedValue && selectedValue !== this.$data._backfillValue) {\n this.setOpenState(false, { needFocus: true, fireSearch: false });\n skipTrigger = true;\n } else {\n value = [selectedValue];\n this.setOpenState(false, { needFocus: true, fireSearch: false });\n }\n }\n if (!skipTrigger) {\n this.fireChange(value);\n }\n if (!skipTrigger) {\n this.fireSelect(selectedValue);\n var inputValue = isCombobox(props) ? getPropValue(item, props.optionLabelProp) : '';\n\n if (props.autoClearSearchValue) {\n this.setInputValue(inputValue, false);\n }\n }\n },\n onMenuDeselect: function onMenuDeselect(_ref2) {\n var item = _ref2.item,\n domEvent = _ref2.domEvent;\n\n if (domEvent.type === 'keydown' && domEvent.keyCode === KeyCode.ENTER) {\n var menuItemDomNode = item.$el;\n // https://github.com/ant-design/ant-design/issues/20465#issuecomment-569033796\n if (!isHidden(menuItemDomNode)) {\n this.removeSelected(getValuePropValue(item));\n }\n return;\n }\n if (domEvent.type === 'click') {\n this.removeSelected(getValuePropValue(item));\n }\n if (this.autoClearSearchValue) {\n this.setInputValue('');\n }\n },\n onArrowClick: function onArrowClick(e) {\n e.stopPropagation();\n e.preventDefault();\n this.clearBlurTime();\n if (!this.disabled) {\n this.setOpenState(!this.$data._open, { needFocus: !this.$data._open });\n }\n },\n onPlaceholderClick: function onPlaceholderClick() {\n if (this.getInputDOMNode() && this.getInputDOMNode()) {\n this.getInputDOMNode().focus();\n }\n },\n onPopupFocus: function onPopupFocus() {\n // fix ie scrollbar, focus element again\n this.maybeFocus(true, true);\n },\n onClearSelection: function onClearSelection(event) {\n var props = this.$props;\n var state = this.$data;\n if (props.disabled) {\n return;\n }\n var inputValue = state._inputValue,\n value = state._value;\n\n event.stopPropagation();\n if (inputValue || value.length) {\n if (value.length) {\n this.fireChange([]);\n }\n this.setOpenState(false, { needFocus: true });\n if (inputValue) {\n this.setInputValue('');\n }\n }\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n this.forcePopupAlign();\n },\n getOptionInfoBySingleValue: function getOptionInfoBySingleValue(value, optionsInfo) {\n var h = this.$createElement;\n\n var info = void 0;\n optionsInfo = optionsInfo || this.$data._optionsInfo;\n if (optionsInfo[getMapKey(value)]) {\n info = optionsInfo[getMapKey(value)];\n }\n if (info) {\n return info;\n }\n var defaultLabel = value;\n if (this.$props.labelInValue) {\n var valueLabel = getLabelFromPropsValue(this.$props.value, value);\n var defaultValueLabel = getLabelFromPropsValue(this.$props.defaultValue, value);\n if (valueLabel !== undefined) {\n defaultLabel = valueLabel;\n } else if (defaultValueLabel !== undefined) {\n defaultLabel = defaultValueLabel;\n }\n }\n var defaultInfo = {\n option: h(\n Option,\n {\n attrs: { value: value },\n key: value },\n [value]\n ),\n value: value,\n label: defaultLabel\n };\n return defaultInfo;\n },\n getOptionBySingleValue: function getOptionBySingleValue(value) {\n var _getOptionInfoBySingl = this.getOptionInfoBySingleValue(value),\n option = _getOptionInfoBySingl.option;\n\n return option;\n },\n getOptionsBySingleValue: function getOptionsBySingleValue(values) {\n var _this6 = this;\n\n return values.map(function (value) {\n return _this6.getOptionBySingleValue(value);\n });\n },\n getValueByLabel: function getValueByLabel(label) {\n var _this7 = this;\n\n if (label === undefined) {\n return null;\n }\n var value = null;\n Object.keys(this.$data._optionsInfo).forEach(function (key) {\n var info = _this7.$data._optionsInfo[key];\n var disabled = info.disabled;\n\n if (disabled) {\n return;\n }\n var oldLable = toArray(info.label);\n if (oldLable && oldLable.join('') === label) {\n value = info.value;\n }\n });\n return value;\n },\n getVLBySingleValue: function getVLBySingleValue(value) {\n if (this.$props.labelInValue) {\n return {\n key: value,\n label: this.getLabelBySingleValue(value)\n };\n }\n return value;\n },\n getVLForOnChange: function getVLForOnChange(vlsS) {\n var _this8 = this;\n\n var vls = vlsS;\n if (vls !== undefined) {\n if (!this.labelInValue) {\n vls = vls.map(function (v) {\n return v;\n });\n } else {\n vls = vls.map(function (vl) {\n return {\n key: vl,\n label: _this8.getLabelBySingleValue(vl)\n };\n });\n }\n return isMultipleOrTags(this.$props) ? vls : vls[0];\n }\n return vls;\n },\n getLabelBySingleValue: function getLabelBySingleValue(value, optionsInfo) {\n var _getOptionInfoBySingl2 = this.getOptionInfoBySingleValue(value, optionsInfo),\n label = _getOptionInfoBySingl2.label;\n\n return label;\n },\n getDropdownContainer: function getDropdownContainer() {\n if (!this.dropdownContainer) {\n this.dropdownContainer = document.createElement('div');\n document.body.appendChild(this.dropdownContainer);\n }\n return this.dropdownContainer;\n },\n getPlaceholderElement: function getPlaceholderElement() {\n var h = this.$createElement;\n var props = this.$props,\n state = this.$data;\n\n var hidden = false;\n if (state._mirrorInputValue) {\n hidden = true;\n }\n var value = state._value;\n if (value.length) {\n hidden = true;\n }\n if (!state._mirrorInputValue && isCombobox(props) && value.length === 1 && state._value && !state._value[0]) {\n hidden = false;\n }\n var placeholder = props.placeholder;\n if (placeholder) {\n var p = {\n on: {\n mousedown: preventDefaultEvent,\n click: this.onPlaceholderClick\n },\n attrs: UNSELECTABLE_ATTRIBUTE,\n style: _extends({\n display: hidden ? 'none' : 'block'\n }, UNSELECTABLE_STYLE),\n 'class': props.prefixCls + '-selection__placeholder'\n };\n return h(\n 'div',\n p,\n [placeholder]\n );\n }\n return null;\n },\n inputClick: function inputClick(e) {\n if (this.$data._open) {\n this.clearBlurTime();\n e.stopPropagation();\n } else {\n this._focused = false;\n }\n },\n inputBlur: function inputBlur(e) {\n var _this9 = this;\n\n var target = e.relatedTarget || document.activeElement;\n\n // https://github.com/vueComponent/ant-design-vue/issues/999\n // https://github.com/vueComponent/ant-design-vue/issues/1223\n if ((isIE || isEdge) && (e.relatedTarget === this.$refs.arrow || target && this.selectTriggerRef && this.selectTriggerRef.getInnerMenu() && this.selectTriggerRef.getInnerMenu().$el === target || contains(e.target, target))) {\n e.target.focus();\n e.preventDefault();\n return;\n }\n this.clearBlurTime();\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n this.blurTimer = setTimeout(function () {\n _this9._focused = false;\n _this9.updateFocusClassName();\n var props = _this9.$props;\n var value = _this9.$data._value;\n var inputValue = _this9.$data._inputValue;\n\n if (isSingleMode(props) && props.showSearch && inputValue && props.defaultActiveFirstOption) {\n var options = _this9._options || [];\n if (options.length) {\n var firstOption = findFirstMenuItem(options);\n if (firstOption) {\n value = [getValuePropValue(firstOption)];\n _this9.fireChange(value);\n }\n }\n } else if (isMultipleOrTags(props) && inputValue) {\n if (_this9._mouseDown) {\n // need update dropmenu when not blur\n _this9.setInputValue('');\n } else {\n // why not use setState?\n _this9.$data._inputValue = '';\n if (_this9.getInputDOMNode && _this9.getInputDOMNode()) {\n _this9.getInputDOMNode().value = '';\n }\n }\n var tmpValue = _this9.getValueByInput(inputValue);\n if (tmpValue !== undefined) {\n value = tmpValue;\n _this9.fireChange(value);\n }\n }\n // if click the rest space of Select in multiple mode\n if (isMultipleOrTags(props) && _this9._mouseDown) {\n _this9.maybeFocus(true, true);\n _this9._mouseDown = false;\n return;\n }\n _this9.setOpenState(false);\n _this9.$emit('blur', _this9.getVLForOnChange(value));\n }, 200);\n },\n inputFocus: function inputFocus(e) {\n if (this.$props.disabled) {\n e.preventDefault();\n return;\n }\n this.clearBlurTime();\n\n // In IE11, onOuterFocus will be trigger twice when focus input\n // First one: e.target is div\n // Second one: e.target is input\n // other browser only trigger second one\n // https://github.com/ant-design/ant-design/issues/15942\n // Here we ignore the first one when e.target is div\n var inputNode = this.getInputDOMNode();\n if (inputNode && e.target === this.rootRef) {\n return;\n }\n if (!isMultipleOrTagsOrCombobox(this.$props) && e.target === inputNode) {\n return;\n }\n if (this._focused) {\n return;\n }\n this._focused = true;\n this.updateFocusClassName();\n // only effect multiple or tag mode\n if (!isMultipleOrTags(this.$props) || !this._mouseDown) {\n this.timeoutFocus();\n }\n },\n _getInputElement: function _getInputElement() {\n var h = this.$createElement;\n\n var props = this.$props;\n var _$data = this.$data,\n inputValue = _$data._inputValue,\n _mirrorInputValue = _$data._mirrorInputValue;\n\n var attrs = getAttrs(this);\n var defaultInput = h('input', {\n attrs: { id: attrs.id, autoComplete: 'off' }\n });\n\n var inputElement = props.getInputElement ? props.getInputElement() : defaultInput;\n var inputCls = classnames(getClass(inputElement), _defineProperty({}, props.prefixCls + '-search__field', true));\n var inputEvents = getEvents(inputElement);\n // https://github.com/ant-design/ant-design/issues/4992#issuecomment-281542159\n // Add space to the end of the inputValue as the width measurement tolerance\n inputElement.data = inputElement.data || {};\n return h(\n 'div',\n { 'class': props.prefixCls + '-search__field__wrap', on: {\n 'click': this.inputClick\n }\n },\n [cloneElement(inputElement, {\n props: {\n disabled: props.disabled,\n value: inputValue\n },\n attrs: _extends({}, inputElement.data.attrs || {}, {\n disabled: props.disabled,\n value: inputValue\n }),\n domProps: {\n value: inputValue\n },\n 'class': inputCls,\n directives: [{\n name: 'ant-ref',\n value: this.saveInputRef\n }, {\n name: 'ant-input'\n }],\n on: {\n input: this.onInputChange,\n keydown: chaining(this.onInputKeydown, inputEvents.keydown, getListeners(this).inputKeydown),\n focus: chaining(this.inputFocus, inputEvents.focus),\n blur: chaining(this.inputBlur, inputEvents.blur)\n }\n }), h(\n 'span',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.saveInputMirrorRef\n }]\n }, {\n // ref='inputMirrorRef'\n 'class': props.prefixCls + '-search__field__mirror'\n }]),\n [_mirrorInputValue, '\\xA0']\n )]\n );\n },\n getInputDOMNode: function getInputDOMNode() {\n return this.topCtrlRef ? this.topCtrlRef.querySelector('input,textarea,div[contentEditable]') : this.inputRef;\n },\n getInputMirrorDOMNode: function getInputMirrorDOMNode() {\n return this.inputMirrorRef;\n },\n getPopupDOMNode: function getPopupDOMNode() {\n if (this.selectTriggerRef) {\n return this.selectTriggerRef.getPopupDOMNode();\n }\n },\n getPopupMenuComponent: function getPopupMenuComponent() {\n if (this.selectTriggerRef) {\n return this.selectTriggerRef.getInnerMenu();\n }\n },\n setOpenState: function setOpenState(open) {\n var _this10 = this;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = this.$props,\n state = this.$data;\n var needFocus = config.needFocus,\n fireSearch = config.fireSearch;\n\n if (state._open === open) {\n this.maybeFocus(open, !!needFocus);\n return;\n }\n this.__emit('dropdownVisibleChange', open);\n var nextState = {\n _open: open,\n _backfillValue: ''\n };\n // clear search input value when open is false in singleMode.\n if (!open && isSingleMode(props) && props.showSearch) {\n this.setInputValue('', fireSearch);\n }\n if (!open) {\n this.maybeFocus(open, !!needFocus);\n }\n this.setState(nextState, function () {\n if (open) {\n _this10.maybeFocus(open, !!needFocus);\n }\n });\n },\n setInputValue: function setInputValue(inputValue) {\n var fireSearch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (inputValue !== this.$data._inputValue) {\n this.setState({\n _inputValue: inputValue\n }, this.forcePopupAlign);\n if (fireSearch) {\n this.$emit('search', inputValue);\n }\n }\n },\n getValueByInput: function getValueByInput(str) {\n var _this11 = this;\n\n var _$props2 = this.$props,\n multiple = _$props2.multiple,\n tokenSeparators = _$props2.tokenSeparators;\n\n var nextValue = this.$data._value;\n var hasNewValue = false;\n splitBySeparators(str, tokenSeparators).forEach(function (label) {\n var selectedValue = [label];\n if (multiple) {\n var value = _this11.getValueByLabel(label);\n if (value && findIndexInValueBySingleValue(nextValue, value) === -1) {\n nextValue = nextValue.concat(value);\n hasNewValue = true;\n _this11.fireSelect(value);\n }\n } else if (findIndexInValueBySingleValue(nextValue, label) === -1) {\n nextValue = nextValue.concat(selectedValue);\n hasNewValue = true;\n _this11.fireSelect(label);\n }\n });\n return hasNewValue ? nextValue : undefined;\n },\n getRealOpenState: function getRealOpenState(state) {\n var _open = this.$props.open;\n\n if (typeof _open === 'boolean') {\n return _open;\n }\n\n var open = (state || this.$data)._open;\n var options = this._options || [];\n if (isMultipleOrTagsOrCombobox(this.$props) || !this.$props.showSearch) {\n if (open && !options.length) {\n open = false;\n }\n }\n return open;\n },\n focus: function focus() {\n if (isSingleMode(this.$props) && this.selectionRef) {\n this.selectionRef.focus();\n } else if (this.getInputDOMNode()) {\n this.getInputDOMNode().focus();\n }\n },\n blur: function blur() {\n if (isSingleMode(this.$props) && this.selectionRef) {\n this.selectionRef.blur();\n } else if (this.getInputDOMNode()) {\n this.getInputDOMNode().blur();\n }\n },\n markMouseDown: function markMouseDown() {\n this._mouseDown = true;\n },\n markMouseLeave: function markMouseLeave() {\n this._mouseDown = false;\n },\n handleBackfill: function handleBackfill(item) {\n if (!this.backfill || !(isSingleMode(this.$props) || isCombobox(this.$props))) {\n return;\n }\n\n var key = getValuePropValue(item);\n\n if (isCombobox(this.$props)) {\n this.setInputValue(key, false);\n }\n\n this.setState({\n _value: [key],\n _backfillValue: key\n });\n },\n _filterOption: function _filterOption(input, child) {\n var defaultFilter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultFilterFn;\n var _$data2 = this.$data,\n value = _$data2._value,\n backfillValue = _$data2._backfillValue;\n\n var lastValue = value[value.length - 1];\n if (!input || lastValue && lastValue === backfillValue) {\n return true;\n }\n var filterFn = this.$props.filterOption;\n if (hasProp(this, 'filterOption')) {\n if (filterFn === true) {\n filterFn = defaultFilter.bind(this);\n }\n } else {\n filterFn = defaultFilter.bind(this);\n }\n if (!filterFn) {\n return true;\n } else if (typeof filterFn === 'function') {\n return filterFn.call(this, input, child);\n } else if (getValue(child, 'disabled')) {\n return false;\n }\n return true;\n },\n timeoutFocus: function timeoutFocus() {\n var _this12 = this;\n\n if (this.focusTimer) {\n this.clearFocusTime();\n }\n this.focusTimer = window.setTimeout(function () {\n // this._focused = true\n // this.updateFocusClassName()\n _this12.$emit('focus');\n }, 10);\n },\n clearFocusTime: function clearFocusTime() {\n if (this.focusTimer) {\n clearTimeout(this.focusTimer);\n this.focusTimer = null;\n }\n },\n clearBlurTime: function clearBlurTime() {\n if (this.blurTimer) {\n clearTimeout(this.blurTimer);\n this.blurTimer = null;\n }\n },\n clearComboboxTime: function clearComboboxTime() {\n if (this.comboboxTimer) {\n clearTimeout(this.comboboxTimer);\n this.comboboxTimer = null;\n }\n },\n updateFocusClassName: function updateFocusClassName() {\n var rootRef = this.rootRef,\n prefixCls = this.prefixCls;\n // avoid setState and its side effect\n\n if (this._focused) {\n classes(rootRef).add(prefixCls + '-focused');\n } else {\n classes(rootRef).remove(prefixCls + '-focused');\n }\n },\n maybeFocus: function maybeFocus(open, needFocus) {\n if (needFocus || open) {\n var input = this.getInputDOMNode();\n var _document = document,\n activeElement = _document.activeElement;\n\n if (input && (open || isMultipleOrTagsOrCombobox(this.$props))) {\n if (activeElement !== input) {\n input.focus();\n this._focused = true;\n }\n } else if (activeElement !== this.selectionRef && this.selectionRef) {\n this.selectionRef.focus();\n this._focused = true;\n }\n }\n },\n removeSelected: function removeSelected(selectedKey, e) {\n var props = this.$props;\n if (props.disabled || this.isChildDisabled(selectedKey)) {\n return;\n }\n // Do not trigger Trigger popup\n if (e && e.stopPropagation) {\n e.stopPropagation();\n }\n var oldValue = this.$data._value;\n var value = oldValue.filter(function (singleValue) {\n return singleValue !== selectedKey;\n });\n var canMultiple = isMultipleOrTags(props);\n\n if (canMultiple) {\n var event = selectedKey;\n if (props.labelInValue) {\n event = {\n key: selectedKey,\n label: this.getLabelBySingleValue(selectedKey)\n };\n }\n this.$emit('deselect', event, this.getOptionBySingleValue(selectedKey));\n }\n this.fireChange(value);\n },\n openIfHasChildren: function openIfHasChildren() {\n var $props = this.$props;\n\n if ($props.children && $props.children.length || isSingleMode($props)) {\n this.setOpenState(true);\n }\n },\n fireSelect: function fireSelect(value) {\n this.$emit('select', this.getVLBySingleValue(value), this.getOptionBySingleValue(value));\n },\n fireChange: function fireChange(value) {\n if (!hasProp(this, 'value')) {\n this.setState({\n _value: value\n }, this.forcePopupAlign);\n }\n var vls = this.getVLForOnChange(value);\n var options = this.getOptionsBySingleValue(value);\n this._valueOptions = options;\n this.$emit('change', vls, isMultipleOrTags(this.$props) ? options : options[0]);\n },\n isChildDisabled: function isChildDisabled(key) {\n return (this.$props.children || []).some(function (child) {\n var childValue = getValuePropValue(child);\n return childValue === key && getValue(child, 'disabled');\n });\n },\n forcePopupAlign: function forcePopupAlign() {\n if (!this.$data._open) {\n return;\n }\n if (this.selectTriggerRef && this.selectTriggerRef.triggerRef) {\n this.selectTriggerRef.triggerRef.forcePopupAlign();\n }\n },\n renderFilterOptions: function renderFilterOptions() {\n var h = this.$createElement;\n var inputValue = this.$data._inputValue;\n var _$props3 = this.$props,\n children = _$props3.children,\n tags = _$props3.tags,\n notFoundContent = _$props3.notFoundContent;\n\n var menuItems = [];\n var childrenKeys = [];\n var empty = false;\n var options = this.renderFilterOptionsFromChildren(children, childrenKeys, menuItems);\n if (tags) {\n // tags value must be string\n var value = this.$data._value;\n value = value.filter(function (singleValue) {\n return childrenKeys.indexOf(singleValue) === -1 && (!inputValue || String(singleValue).indexOf(String(inputValue)) > -1);\n });\n\n // sort by length\n value.sort(function (val1, val2) {\n return val1.length - val2.length;\n });\n\n value.forEach(function (singleValue) {\n var key = singleValue;\n var attrs = _extends({}, UNSELECTABLE_ATTRIBUTE, {\n role: 'option'\n });\n var menuItem = h(\n MenuItem,\n _mergeJSXProps([{ style: UNSELECTABLE_STYLE }, { attrs: attrs }, {\n attrs: { value: key },\n key: key }]),\n [key]\n );\n options.push(menuItem);\n menuItems.push(menuItem);\n });\n // ref: https://github.com/ant-design/ant-design/issues/14090\n if (inputValue && menuItems.every(function (option) {\n return getValuePropValue(option) !== inputValue;\n })) {\n var p = {\n attrs: UNSELECTABLE_ATTRIBUTE,\n key: inputValue,\n props: {\n value: inputValue,\n role: 'option'\n },\n style: UNSELECTABLE_STYLE\n };\n options.unshift(h(\n MenuItem,\n p,\n [inputValue]\n ));\n }\n }\n\n if (!options.length && notFoundContent) {\n empty = true;\n var _p = {\n attrs: UNSELECTABLE_ATTRIBUTE,\n key: 'NOT_FOUND',\n props: {\n value: 'NOT_FOUND',\n disabled: true,\n role: 'option'\n },\n style: UNSELECTABLE_STYLE\n };\n options = [h(\n MenuItem,\n _p,\n [notFoundContent]\n )];\n }\n return { empty: empty, options: options };\n },\n renderFilterOptionsFromChildren: function renderFilterOptionsFromChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var _this13 = this;\n\n var childrenKeys = arguments[1];\n var menuItems = arguments[2];\n var h = this.$createElement;\n\n var sel = [];\n var props = this.$props;\n var inputValue = this.$data._inputValue;\n\n var tags = props.tags;\n children.forEach(function (child) {\n if (!child.data || child.data.slot !== undefined) {\n return;\n }\n if (getSlotOptions(child).isSelectOptGroup) {\n var label = getComponentFromProp(child, 'label');\n var key = child.key;\n if (!key && typeof label === 'string') {\n key = label;\n } else if (!label && key) {\n label = key;\n }\n var childChildren = getSlots(child)['default'];\n childChildren = typeof childChildren === 'function' ? childChildren() : childChildren;\n // Match option group label\n if (inputValue && _this13._filterOption(inputValue, child)) {\n var innerItems = childChildren.map(function (subChild) {\n var childValueSub = getValuePropValue(subChild) || subChild.key;\n return h(\n MenuItem,\n _mergeJSXProps([{ key: childValueSub, attrs: { value: childValueSub }\n }, subChild.data]),\n [subChild.componentOptions.children]\n );\n });\n\n sel.push(h(\n MenuItemGroup,\n { key: key, attrs: { title: label },\n 'class': getClass(child) },\n [innerItems]\n ));\n\n // Not match\n } else {\n var _innerItems = _this13.renderFilterOptionsFromChildren(childChildren, childrenKeys, menuItems);\n if (_innerItems.length) {\n sel.push(h(\n MenuItemGroup,\n _mergeJSXProps([{ key: key, attrs: { title: label }\n }, child.data]),\n [_innerItems]\n ));\n }\n }\n\n return;\n }\n warning(getSlotOptions(child).isSelectOption, 'the children of `Select` should be `Select.Option` or `Select.OptGroup`, ' + ('instead of `' + (getSlotOptions(child).name || getSlotOptions(child)) + '`.'));\n\n var childValue = getValuePropValue(child);\n\n validateOptionValue(childValue, _this13.$props);\n if (_this13._filterOption(inputValue, child)) {\n var p = {\n attrs: _extends({}, UNSELECTABLE_ATTRIBUTE, getAttrs(child)),\n key: childValue,\n props: _extends({\n value: childValue\n }, getPropsData(child), {\n role: 'option'\n }),\n style: UNSELECTABLE_STYLE,\n on: getEvents(child),\n 'class': getClass(child)\n };\n var menuItem = h(\n MenuItem,\n p,\n [child.componentOptions.children]\n );\n sel.push(menuItem);\n menuItems.push(menuItem);\n }\n if (tags) {\n childrenKeys.push(childValue);\n }\n });\n\n return sel;\n },\n renderTopControlNode: function renderTopControlNode() {\n var _this14 = this;\n\n var h = this.$createElement;\n var props = this.$props;\n var _$data3 = this.$data,\n value = _$data3._value,\n inputValue = _$data3._inputValue,\n open = _$data3._open;\n var choiceTransitionName = props.choiceTransitionName,\n prefixCls = props.prefixCls,\n maxTagTextLength = props.maxTagTextLength,\n maxTagCount = props.maxTagCount,\n maxTagPlaceholder = props.maxTagPlaceholder,\n showSearch = props.showSearch;\n\n var removeIcon = getComponentFromProp(this, 'removeIcon');\n var className = prefixCls + '-selection__rendered';\n // search input is inside topControlNode in single, multiple & combobox. 2016/04/13\n var innerNode = null;\n if (isSingleMode(props)) {\n var selectedValue = null;\n if (value.length) {\n var showSelectedValue = false;\n var opacity = 1;\n if (!showSearch) {\n showSelectedValue = true;\n } else if (open) {\n showSelectedValue = !inputValue;\n if (showSelectedValue) {\n opacity = 0.4;\n }\n } else {\n showSelectedValue = true;\n }\n var singleValue = value[0];\n\n var _getOptionInfoBySingl3 = this.getOptionInfoBySingleValue(singleValue),\n label = _getOptionInfoBySingl3.label,\n title = _getOptionInfoBySingl3.title;\n\n selectedValue = h(\n 'div',\n {\n key: 'value',\n 'class': prefixCls + '-selection-selected-value',\n attrs: { title: toTitle(title || label)\n },\n style: {\n display: showSelectedValue ? 'block' : 'none',\n opacity: opacity\n }\n },\n [label]\n );\n }\n if (!showSearch) {\n innerNode = [selectedValue];\n } else {\n innerNode = [selectedValue, h(\n 'div',\n {\n 'class': prefixCls + '-search ' + prefixCls + '-search--inline',\n key: 'input',\n style: {\n display: open ? 'block' : 'none'\n }\n },\n [this._getInputElement()]\n )];\n }\n } else {\n var selectedValueNodes = [];\n var limitedCountValue = value;\n var maxTagPlaceholderEl = void 0;\n if (maxTagCount !== undefined && value.length > maxTagCount) {\n limitedCountValue = limitedCountValue.slice(0, maxTagCount);\n var omittedValues = this.getVLForOnChange(value.slice(maxTagCount, value.length));\n var content = '+ ' + (value.length - maxTagCount) + ' ...';\n if (maxTagPlaceholder) {\n content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n }\n var attrs = _extends({}, UNSELECTABLE_ATTRIBUTE, {\n role: 'presentation',\n title: toTitle(content)\n });\n maxTagPlaceholderEl = h(\n 'li',\n _mergeJSXProps([{\n style: UNSELECTABLE_STYLE\n }, { attrs: attrs }, {\n on: {\n 'mousedown': preventDefaultEvent\n },\n\n 'class': prefixCls + '-selection__choice ' + prefixCls + '-selection__choice__disabled',\n key: 'maxTagPlaceholder'\n }]),\n [h(\n 'div',\n { 'class': prefixCls + '-selection__choice__content' },\n [content]\n )]\n );\n }\n if (isMultipleOrTags(props)) {\n selectedValueNodes = limitedCountValue.map(function (singleValue) {\n var info = _this14.getOptionInfoBySingleValue(singleValue);\n var content = info.label;\n var title = info.title || content;\n if (maxTagTextLength && typeof content === 'string' && content.length > maxTagTextLength) {\n content = content.slice(0, maxTagTextLength) + '...';\n }\n var disabled = _this14.isChildDisabled(singleValue);\n var choiceClassName = disabled ? prefixCls + '-selection__choice ' + prefixCls + '-selection__choice__disabled' : prefixCls + '-selection__choice';\n // attrs 放在一起,避免动态title混乱问题,很奇怪的问题 https://github.com/vueComponent/ant-design-vue/issues/588\n var attrs = _extends({}, UNSELECTABLE_ATTRIBUTE, {\n role: 'presentation',\n title: toTitle(title)\n });\n return h(\n 'li',\n _mergeJSXProps([{\n style: UNSELECTABLE_STYLE\n }, { attrs: attrs }, {\n on: {\n 'mousedown': preventDefaultEvent\n },\n\n 'class': choiceClassName,\n key: singleValue || SELECT_EMPTY_VALUE_KEY\n }]),\n [h(\n 'div',\n { 'class': prefixCls + '-selection__choice__content' },\n [content]\n ), disabled ? null : h(\n 'span',\n {\n on: {\n 'click': function click(event) {\n _this14.removeSelected(singleValue, event);\n }\n },\n\n 'class': prefixCls + '-selection__choice__remove'\n },\n [removeIcon || h(\n 'i',\n { 'class': prefixCls + '-selection__choice__remove-icon' },\n ['\\xD7']\n )]\n )]\n );\n });\n }\n if (maxTagPlaceholderEl) {\n selectedValueNodes.push(maxTagPlaceholderEl);\n }\n selectedValueNodes.push(h(\n 'li',\n { 'class': prefixCls + '-search ' + prefixCls + '-search--inline', key: '__input' },\n [this._getInputElement()]\n ));\n\n if (isMultipleOrTags(props) && choiceTransitionName) {\n var transitionProps = getTransitionProps(choiceTransitionName, {\n tag: 'ul',\n afterLeave: this.onChoiceAnimationLeave\n });\n innerNode = h(\n 'transition-group',\n transitionProps,\n [selectedValueNodes]\n );\n } else {\n innerNode = h('ul', [selectedValueNodes]);\n }\n }\n return h(\n 'div',\n _mergeJSXProps([{\n 'class': className\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.saveTopCtrlRef\n }]\n }, {\n on: {\n 'click': this.topCtrlContainerClick\n }\n }]),\n [this.getPlaceholderElement(), innerNode]\n );\n },\n renderArrow: function renderArrow(multiple) {\n var h = this.$createElement;\n\n // showArrow : Set to true if not multiple by default but keep set value.\n var _$props4 = this.$props,\n _$props4$showArrow = _$props4.showArrow,\n showArrow = _$props4$showArrow === undefined ? !multiple : _$props4$showArrow,\n loading = _$props4.loading,\n prefixCls = _$props4.prefixCls;\n\n var inputIcon = getComponentFromProp(this, 'inputIcon');\n if (!showArrow && !loading) {\n return null;\n }\n // if loading have loading icon\n var defaultIcon = loading ? h('i', { 'class': prefixCls + '-arrow-loading' }) : h('i', { 'class': prefixCls + '-arrow-icon' });\n return h(\n 'span',\n _mergeJSXProps([{\n key: 'arrow',\n 'class': prefixCls + '-arrow',\n style: UNSELECTABLE_STYLE\n }, { attrs: UNSELECTABLE_ATTRIBUTE }, {\n on: {\n 'click': this.onArrowClick\n },\n\n ref: 'arrow'\n }]),\n [inputIcon || defaultIcon]\n );\n },\n topCtrlContainerClick: function topCtrlContainerClick(e) {\n if (this.$data._open && !isSingleMode(this.$props)) {\n e.stopPropagation();\n }\n },\n renderClear: function renderClear() {\n var h = this.$createElement;\n var _$props5 = this.$props,\n prefixCls = _$props5.prefixCls,\n allowClear = _$props5.allowClear;\n var _$data4 = this.$data,\n value = _$data4._value,\n inputValue = _$data4._inputValue;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n var clear = h(\n 'span',\n _mergeJSXProps([{\n key: 'clear',\n 'class': prefixCls + '-selection__clear',\n on: {\n 'mousedown': preventDefaultEvent\n },\n\n style: UNSELECTABLE_STYLE\n }, { attrs: UNSELECTABLE_ATTRIBUTE }, {\n on: {\n 'click': this.onClearSelection\n }\n }]),\n [clearIcon || h(\n 'i',\n { 'class': prefixCls + '-selection__clear-icon' },\n ['\\xD7']\n )]\n );\n if (!allowClear) {\n return null;\n }\n if (isCombobox(this.$props)) {\n if (inputValue) {\n return clear;\n }\n return null;\n }\n if (inputValue || value.length) {\n return clear;\n }\n return null;\n },\n selectionRefClick: function selectionRefClick() {\n //e.stopPropagation();\n if (!this.disabled) {\n var input = this.getInputDOMNode();\n if (this._focused && this.$data._open) {\n // this._focused = false;\n this.setOpenState(false, false);\n input && input.blur();\n } else {\n this.clearBlurTime();\n //this._focused = true;\n this.setOpenState(true, true);\n input && input.focus();\n }\n }\n },\n selectionRefFocus: function selectionRefFocus(e) {\n if (this._focused || this.disabled || isMultipleOrTagsOrCombobox(this.$props)) {\n e.preventDefault();\n return;\n }\n this._focused = true;\n this.updateFocusClassName();\n this.$emit('focus');\n },\n selectionRefBlur: function selectionRefBlur(e) {\n if (isMultipleOrTagsOrCombobox(this.$props)) {\n e.preventDefault();\n return;\n }\n this.inputBlur(e);\n }\n },\n\n render: function render() {\n var _rootCls;\n\n var h = arguments[0];\n\n var props = this.$props;\n var multiple = isMultipleOrTags(props);\n // Default set showArrow to true if not set (not set directly in defaultProps to handle multiple case)\n var _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === undefined ? true : _props$showArrow;\n\n var state = this.$data;\n var disabled = props.disabled,\n prefixCls = props.prefixCls,\n loading = props.loading;\n\n var ctrlNode = this.renderTopControlNode();\n var _$data5 = this.$data,\n open = _$data5._open,\n inputValue = _$data5._inputValue,\n value = _$data5._value;\n\n if (open) {\n var filterOptions = this.renderFilterOptions();\n this._empty = filterOptions.empty;\n this._options = filterOptions.options;\n }\n var realOpen = this.getRealOpenState();\n var empty = this._empty;\n var options = this._options || [];\n\n var _getListeners = getListeners(this),\n _getListeners$mouseen = _getListeners.mouseenter,\n mouseenter = _getListeners$mouseen === undefined ? noop : _getListeners$mouseen,\n _getListeners$mousele = _getListeners.mouseleave,\n mouseleave = _getListeners$mousele === undefined ? noop : _getListeners$mousele,\n _getListeners$popupSc = _getListeners.popupScroll,\n popupScroll = _getListeners$popupSc === undefined ? noop : _getListeners$popupSc;\n\n var selectionProps = {\n props: {},\n attrs: {\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true',\n 'aria-expanded': realOpen,\n 'aria-controls': this.$data._ariaId\n },\n on: {\n // click: this.selectionRefClick,\n },\n 'class': prefixCls + '-selection ' + prefixCls + '-selection--' + (multiple ? 'multiple' : 'single'),\n // directives: [\n // {\n // name: 'ant-ref',\n // value: this.saveSelectionRef,\n // },\n // ],\n key: 'selection'\n };\n //if (!isMultipleOrTagsOrCombobox(props)) {\n // selectionProps.on.keydown = this.onKeyDown;\n // selectionProps.on.focus = this.selectionRefFocus;\n // selectionProps.on.blur = this.selectionRefBlur;\n // selectionProps.attrs.tabIndex = props.disabled ? -1 : props.tabIndex;\n //}\n var extraSelectionProps = { attrs: { tabIndex: -1 } };\n if (!isMultipleOrTagsOrCombobox(props)) {\n extraSelectionProps.attrs.tabIndex = props.disabled ? -1 : props.tabIndex;\n }\n var rootCls = (_rootCls = {}, _defineProperty(_rootCls, prefixCls, true), _defineProperty(_rootCls, prefixCls + '-open', open), _defineProperty(_rootCls, prefixCls + '-focused', open || !!this._focused), _defineProperty(_rootCls, prefixCls + '-combobox', isCombobox(props)), _defineProperty(_rootCls, prefixCls + '-disabled', disabled), _defineProperty(_rootCls, prefixCls + '-enabled', !disabled), _defineProperty(_rootCls, prefixCls + '-allow-clear', !!props.allowClear), _defineProperty(_rootCls, prefixCls + '-no-arrow', !showArrow), _defineProperty(_rootCls, prefixCls + '-loading', !!loading), _rootCls);\n return h(\n SelectTrigger,\n _mergeJSXProps([{\n attrs: {\n dropdownAlign: props.dropdownAlign,\n dropdownClassName: props.dropdownClassName,\n dropdownMatchSelectWidth: props.dropdownMatchSelectWidth,\n defaultActiveFirstOption: props.defaultActiveFirstOption,\n dropdownMenuStyle: props.dropdownMenuStyle,\n transitionName: props.transitionName,\n animation: props.animation,\n prefixCls: props.prefixCls,\n dropdownStyle: props.dropdownStyle,\n combobox: props.combobox,\n showSearch: props.showSearch,\n options: options,\n empty: empty,\n multiple: multiple,\n disabled: disabled,\n visible: realOpen,\n inputValue: inputValue,\n value: value,\n backfillValue: state._backfillValue,\n firstActiveValue: props.firstActiveValue,\n\n getPopupContainer: props.getPopupContainer,\n\n showAction: props.showAction,\n menuItemSelectedIcon: getComponentFromProp(this, 'menuItemSelectedIcon')\n },\n on: {\n 'dropdownVisibleChange': this.onDropdownVisibleChange,\n 'menuSelect': this.onMenuSelect,\n 'menuDeselect': this.onMenuDeselect,\n 'popupScroll': popupScroll,\n 'popupFocus': this.onPopupFocus,\n 'mouseenter': mouseenter,\n 'mouseleave': mouseleave\n }\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.saveSelectTriggerRef\n }]\n }, {\n attrs: {\n dropdownRender: props.dropdownRender,\n ariaId: this.$data._ariaId\n }\n }]),\n [h(\n 'div',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: chaining(this.saveRootRef, this.saveSelectionRef)\n }]\n }, {\n style: getStyle(this),\n 'class': classnames(rootCls),\n on: {\n 'mousedown': this.markMouseDown,\n 'mouseup': this.markMouseLeave,\n 'mouseout': this.markMouseLeave\n }\n }, extraSelectionProps, {\n on: {\n 'blur': this.selectionRefBlur,\n 'focus': this.selectionRefFocus,\n 'click': this.selectionRefClick,\n 'keydown': isMultipleOrTagsOrCombobox(props) ? noop : this.onKeyDown\n }\n }]),\n [h(\n 'div',\n selectionProps,\n [ctrlNode, this.renderClear(), this.renderArrow(!!multiple)]\n )]\n )]\n );\n }\n};\nexport { Select };\nexport default proxyComponent(Select);","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 PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getComponentFromProp } from '../../_util/props-util';\nfunction noop() {}\n\nexport default {\n name: 'Star',\n mixins: [BaseMixin],\n props: {\n value: PropTypes.number,\n index: PropTypes.number,\n prefixCls: PropTypes.string,\n allowHalf: PropTypes.bool,\n disabled: PropTypes.bool,\n character: PropTypes.any,\n characterRender: PropTypes.func,\n focused: PropTypes.bool,\n count: PropTypes.number\n },\n methods: {\n onHover: function onHover(e) {\n var index = this.index;\n\n this.$emit('hover', e, index);\n },\n onClick: function onClick(e) {\n var index = this.index;\n\n this.$emit('click', e, index);\n },\n onKeyDown: function onKeyDown(e) {\n var index = this.$props.index;\n\n if (e.keyCode === 13) {\n this.__emit('click', e, index);\n }\n },\n getClassName: function getClassName() {\n var prefixCls = this.prefixCls,\n index = this.index,\n value = this.value,\n allowHalf = this.allowHalf,\n focused = this.focused;\n\n var starValue = index + 1;\n var className = prefixCls;\n if (value === 0 && index === 0 && focused) {\n className += ' ' + prefixCls + '-focused';\n } else if (allowHalf && value + 0.5 === starValue) {\n className += ' ' + prefixCls + '-half ' + prefixCls + '-active';\n if (focused) {\n className += ' ' + prefixCls + '-focused';\n }\n } else {\n className += starValue <= value ? ' ' + prefixCls + '-full' : ' ' + prefixCls + '-zero';\n if (starValue === value && focused) {\n className += ' ' + prefixCls + '-focused';\n }\n }\n return className;\n }\n },\n render: function render() {\n var h = arguments[0];\n var onHover = this.onHover,\n onClick = this.onClick,\n onKeyDown = this.onKeyDown,\n disabled = this.disabled,\n prefixCls = this.prefixCls,\n characterRender = this.characterRender,\n index = this.index,\n count = this.count,\n value = this.value;\n\n\n var character = getComponentFromProp(this, 'character');\n var star = h(\n 'li',\n { 'class': this.getClassName() },\n [h(\n 'div',\n {\n on: {\n 'click': disabled ? noop : onClick,\n 'keydown': disabled ? noop : onKeyDown,\n 'mousemove': disabled ? noop : onHover\n },\n attrs: {\n role: 'radio',\n 'aria-checked': value > index ? 'true' : 'false',\n 'aria-posinset': index + 1,\n 'aria-setsize': count,\n tabIndex: 0\n }\n },\n [h(\n 'div',\n { 'class': prefixCls + '-first' },\n [character]\n ), h(\n 'div',\n { 'class': prefixCls + '-second' },\n [character]\n )]\n )]\n );\n if (characterRender) {\n star = characterRender(star, this.$props);\n }\n return star;\n }\n};","import PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport KeyCode from '../../_util/KeyCode';\nimport { initDefaultProps, hasProp, getOptionProps, getComponentFromProp } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOffsetLeft } from './util';\nimport Star from './Star';\n\nvar rateProps = {\n disabled: PropTypes.bool,\n value: PropTypes.number,\n defaultValue: PropTypes.number,\n count: PropTypes.number,\n allowHalf: PropTypes.bool,\n allowClear: PropTypes.bool,\n prefixCls: PropTypes.string,\n character: PropTypes.any,\n characterRender: PropTypes.func,\n tabIndex: PropTypes.number,\n autoFocus: PropTypes.bool\n};\n\nfunction noop() {}\n\nexport default {\n name: 'Rate',\n mixins: [BaseMixin],\n model: {\n prop: 'value',\n event: 'change'\n },\n props: initDefaultProps(rateProps, {\n defaultValue: 0,\n count: 5,\n allowHalf: false,\n allowClear: true,\n prefixCls: 'rc-rate',\n tabIndex: 0,\n character: '★'\n }),\n data: function data() {\n var value = this.value;\n if (!hasProp(this, 'value')) {\n value = this.defaultValue;\n }\n return {\n sValue: value,\n focused: false,\n cleanedValue: null,\n hoverValue: undefined\n };\n },\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus && !_this.disabled) {\n _this.focus();\n }\n });\n },\n\n methods: {\n onHover: function onHover(event, index) {\n var hoverValue = this.getStarValue(index, event.pageX);\n var cleanedValue = this.cleanedValue;\n\n if (hoverValue !== cleanedValue) {\n this.setState({\n hoverValue: hoverValue,\n cleanedValue: null\n });\n }\n this.$emit('hoverChange', hoverValue);\n },\n onMouseLeave: function onMouseLeave() {\n this.setState({\n hoverValue: undefined,\n cleanedValue: null\n });\n this.$emit('hoverChange', undefined);\n },\n onClick: function onClick(event, index) {\n var allowClear = this.allowClear,\n value = this.sValue;\n\n var newValue = this.getStarValue(index, event.pageX);\n var isReset = false;\n if (allowClear) {\n isReset = newValue === value;\n }\n this.onMouseLeave(true);\n this.changeValue(isReset ? 0 : newValue);\n this.setState({\n cleanedValue: isReset ? newValue : null\n });\n },\n onFocus: function onFocus() {\n this.setState({\n focused: true\n });\n this.$emit('focus');\n },\n onBlur: function onBlur() {\n this.setState({\n focused: false\n });\n this.$emit('blur');\n },\n onKeyDown: function onKeyDown(event) {\n var keyCode = event.keyCode;\n var count = this.count,\n allowHalf = this.allowHalf;\n var sValue = this.sValue;\n\n if (keyCode === KeyCode.RIGHT && sValue < count) {\n if (allowHalf) {\n sValue += 0.5;\n } else {\n sValue += 1;\n }\n this.changeValue(sValue);\n event.preventDefault();\n } else if (keyCode === KeyCode.LEFT && sValue > 0) {\n if (allowHalf) {\n sValue -= 0.5;\n } else {\n sValue -= 1;\n }\n this.changeValue(sValue);\n event.preventDefault();\n }\n this.$emit('keydown', event);\n },\n getStarDOM: function getStarDOM(index) {\n return this.$refs['stars' + index].$el;\n },\n getStarValue: function getStarValue(index, x) {\n var value = index + 1;\n if (this.allowHalf) {\n var starEle = this.getStarDOM(index);\n var leftDis = getOffsetLeft(starEle);\n var width = starEle.clientWidth;\n if (x - leftDis < width / 2) {\n value -= 0.5;\n }\n }\n return value;\n },\n focus: function focus() {\n if (!this.disabled) {\n this.$refs.rateRef.focus();\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n this.$refs.rateRef.blur();\n }\n },\n changeValue: function changeValue(value) {\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: value\n });\n }\n this.$emit('change', value);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n count = _getOptionProps.count,\n allowHalf = _getOptionProps.allowHalf,\n prefixCls = _getOptionProps.prefixCls,\n disabled = _getOptionProps.disabled,\n tabIndex = _getOptionProps.tabIndex;\n\n var sValue = this.sValue,\n hoverValue = this.hoverValue,\n focused = this.focused;\n\n var stars = [];\n var disabledClass = disabled ? prefixCls + '-disabled' : '';\n var character = getComponentFromProp(this, 'character');\n var characterRender = this.characterRender || this.$scopedSlots.characterRender;\n for (var index = 0; index < count; index++) {\n var starProps = {\n props: {\n index: index,\n count: count,\n disabled: disabled,\n prefixCls: prefixCls + '-star',\n allowHalf: allowHalf,\n value: hoverValue === undefined ? sValue : hoverValue,\n character: character,\n characterRender: characterRender,\n focused: focused\n },\n on: {\n click: this.onClick,\n hover: this.onHover\n },\n key: index,\n ref: 'stars' + index\n };\n stars.push(h(Star, starProps));\n }\n return h(\n 'ul',\n {\n 'class': classNames(prefixCls, disabledClass),\n on: {\n 'mouseleave': disabled ? noop : this.onMouseLeave,\n 'focus': disabled ? noop : this.onFocus,\n 'blur': disabled ? noop : this.onBlur,\n 'keydown': disabled ? noop : this.onKeyDown\n },\n attrs: {\n tabIndex: disabled ? -1 : tabIndex,\n\n role: 'radiogroup'\n },\n\n ref: 'rateRef' },\n [stars]\n );\n }\n};","function getScroll(w, top) {\n var ret = top ? w.pageYOffset : w.pageXOffset;\n var method = top ? 'scrollTop' : 'scrollLeft';\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getClientPosition(elem) {\n var x = void 0;\n var y = void 0;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n var box = elem.getBoundingClientRect();\n x = box.left;\n y = box.top;\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nexport function getOffsetLeft(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n return pos.left;\n}","import Rate from './Rate';\nexport default Rate;","// based on rc-rate 2.5.0\nimport Rate from './src/';\nexport default Rate;","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';\nexport default {\n props: {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n },\n isSelectOptGroup: true\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;","import PropTypes from '../_util/vue-types';\n\nexport default {\n props: {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n },\n isSelectOption: true\n};"],"sourceRoot":""}