{"version":3,"file":"js/chunk-vendors-d6ebd464.aa6a6e54.js","mappings":"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","sources":["webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-m-feedback/src/PropTypes.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-m-feedback/src/TouchFeedback.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-m-feedback/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-input-number/src/InputHandler.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-input-number/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-lazy-load/src/utils/parentScroll.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-lazy-load/src/utils/getElementPosition.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-lazy-load/src/utils/inViewport.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-lazy-load/src/LazyLoad.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-lazy-load/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/src/Option.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/src/DropdownMenu.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/src/KeywordTrigger.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/src/Mentions.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/src/mentionsProps.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/src/placement.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-mentions/src/util.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/Divider.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/MenuItem.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/MenuItemGroup.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/placements.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/SubMenu.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/DOMWrap.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/SubPopupMenu.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/commonPropsType.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/Menu.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/utils/isMobile.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-menu/util.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-notification/Notice.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-notification/Notification.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-notification/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-pagination/Pager.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-pagination/KeyCode.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-pagination/Options.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-pagination/locale/zh_CN.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-pagination/Pagination.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-pagination/locale/en_US.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-progress/src/enhancer.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-progress/src/types.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-progress/src/Circle.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-rate/src/util.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-rate/src/Star.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-rate/src/Rate.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-rate/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-rate/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-resize-observer/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-select/OptGroup.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-select/Option.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-select/util.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-select/DropdownMenu.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-select/SelectTrigger.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-select/PropTypes.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-select/Select.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/default-props.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/initial-state.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/utils/innerSliderUtils.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/track.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/dots.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/arrows.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/inner-slider.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/slider.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slick/src/index.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/Handle.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/Range.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/Slider.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/common/Track.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/common/Steps.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/common/Marks.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/common/createSlider.js","webpack://dicom-frontend/./node_modules/ant-design-vue/es/vc-slider/src/utils.js"],"sourcesContent":["import PropTypes from '../../_util/vue-types';\n\nexport var ITouchProps = {\n disabled: PropTypes.bool,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.any\n // onTouchStart: PropTypes.func,\n // onTouchEnd: PropTypes.func,\n // onTouchCancel: PropTypes.func,\n // onMouseDown: PropTypes.func,\n // onMouseUp: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n};","import _extends from 'babel-runtime/helpers/extends';\nimport { initDefaultProps } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport warning from '../../_util/warning';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { ITouchProps } from './PropTypes';\n\nexport default {\n name: 'TouchFeedback',\n mixins: [BaseMixin],\n props: initDefaultProps(ITouchProps, {\n disabled: false\n }),\n data: function data() {\n return {\n active: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.disabled && _this.active) {\n _this.setState({\n active: false\n });\n }\n });\n },\n\n methods: {\n triggerEvent: function triggerEvent(type, isActive, ev) {\n // ęš‚ę—¶ä»…ęœ‰input-numberē”Ø到ļ¼Œäŗ‹ä»¶ē›“ęŽ„åˆ°ęŒ‚č½½åˆ°TouchableäøŠļ¼Œäøéœ€č¦åƒantdé‚£ę ·ä»Žå­ē»„ä»¶č§¦å‘\n this.$emit(type, ev);\n if (isActive !== this.active) {\n this.setState({\n active: isActive\n });\n }\n },\n onTouchStart: function onTouchStart(e) {\n this.triggerEvent('touchstart', true, e);\n },\n onTouchMove: function onTouchMove(e) {\n this.triggerEvent('touchmove', false, e);\n },\n onTouchEnd: function onTouchEnd(e) {\n this.triggerEvent('touchend', false, e);\n },\n onTouchCancel: function onTouchCancel(e) {\n this.triggerEvent('touchcancel', false, e);\n },\n onMouseDown: function onMouseDown(e) {\n // pc simulate mobile\n this.triggerEvent('mousedown', true, e);\n },\n onMouseUp: function onMouseUp(e) {\n this.triggerEvent('mouseup', false, e);\n },\n onMouseLeave: function onMouseLeave(e) {\n this.triggerEvent('mouseleave', false, e);\n }\n },\n render: function render() {\n var _$props = this.$props,\n disabled = _$props.disabled,\n _$props$activeClassNa = _$props.activeClassName,\n activeClassName = _$props$activeClassNa === undefined ? '' : _$props$activeClassNa,\n _$props$activeStyle = _$props.activeStyle,\n activeStyle = _$props$activeStyle === undefined ? {} : _$props$activeStyle;\n\n\n var child = this.$slots['default'];\n if (child.length !== 1) {\n warning(false, 'm-feedbackē»„件åŖčƒ½åŒ…å«äø€äøŖ子元ē“ ');\n return null;\n }\n var childProps = {\n on: disabled ? {} : {\n touchstart: this.onTouchStart,\n touchmove: this.onTouchMove,\n touchend: this.onTouchEnd,\n touchcancel: this.onTouchCancel,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n mouseleave: this.onMouseLeave\n }\n };\n\n if (!disabled && this.active) {\n childProps = _extends({}, childProps, {\n style: activeStyle,\n 'class': activeClassName\n });\n }\n\n return cloneElement(child, childProps);\n }\n};","// based on 2.0.0\nimport TouchFeedback from './src/TouchFeedback';\nexport default TouchFeedback;","import PropTypes from '../../_util/vue-types';\nimport Touchable from '../../vc-m-feedback';\nimport { getListeners } from '../../_util/props-util';\n\nvar InputHandler = {\n name: 'InputHandler',\n props: {\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool\n },\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n disabled = _$props.disabled;\n\n var touchableProps = {\n props: {\n disabled: disabled,\n activeClassName: prefixCls + '-handler-active'\n },\n on: getListeners(this)\n };\n return h(\n Touchable,\n touchableProps,\n [h('span', [this.$slots['default']])]\n );\n }\n};\n\nexport default InputHandler;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\n// based on rc-input-number 4.5.5\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { initDefaultProps, hasProp, getOptionProps, getListeners } from '../../_util/props-util';\nimport classNames from 'classnames';\nimport KeyCode from '../../_util/KeyCode';\nimport InputHandler from './InputHandler';\n\nfunction noop() {}\n\nfunction preventDefault(e) {\n e.preventDefault();\n}\n\nfunction defaultParser(input) {\n return input.replace(/[^\\w\\.-]+/g, '');\n}\n\n/**\n * When click and hold on a button - the speed of auto changin the value.\n */\nvar SPEED = 200;\n\n/**\n * When click and hold on a button - the delay before auto changin the value.\n */\nvar DELAY = 600;\n\n/**\n * Max Safe Integer -- on IE this is not available, so manually set the number in that case.\n * The reason this is used, instead of Infinity is because numbers above the MSI are unstable\n */\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar isValidProps = function isValidProps(value) {\n return value !== undefined && value !== null;\n};\n\nvar isEqual = function isEqual(oldValue, newValue) {\n return newValue === oldValue || typeof newValue === 'number' && typeof oldValue === 'number' && isNaN(newValue) && isNaN(oldValue);\n};\n\nvar inputNumberProps = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n focusOnUpDown: PropTypes.bool,\n autoFocus: PropTypes.bool,\n // onChange: PropTypes.func,\n // onKeyDown: PropTypes.func,\n // onKeyUp: PropTypes.func,\n prefixCls: PropTypes.string,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n // onFocus: PropTypes.func,\n // onBlur: PropTypes.func,\n readonly: PropTypes.bool,\n max: PropTypes.number,\n min: PropTypes.number,\n step: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n upHandler: PropTypes.any,\n downHandler: PropTypes.any,\n useTouch: PropTypes.bool,\n formatter: PropTypes.func,\n parser: PropTypes.func,\n // onMouseEnter: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n // onMouseOver: PropTypes.func,\n // onMouseOut: PropTypes.func,\n precision: PropTypes.number,\n required: PropTypes.bool,\n pattern: PropTypes.string,\n decimalSeparator: PropTypes.string,\n autoComplete: PropTypes.string,\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.string,\n id: PropTypes.string\n};\n\nexport default {\n name: 'VCInputNumber',\n mixins: [BaseMixin],\n model: {\n prop: 'value',\n event: 'change'\n },\n props: initDefaultProps(inputNumberProps, {\n focusOnUpDown: true,\n useTouch: false,\n prefixCls: 'rc-input-number',\n min: -MAX_SAFE_INTEGER,\n step: 1,\n parser: defaultParser,\n required: false,\n autoComplete: 'off'\n }),\n data: function data() {\n var props = getOptionProps(this);\n this.prevProps = _extends({}, props);\n var value = void 0;\n if ('value' in props) {\n value = this.value;\n } else {\n value = this.defaultValue;\n }\n var validValue = this.getValidValue(this.toNumber(value));\n return {\n inputValue: this.toPrecisionAsStep(validValue),\n sValue: validValue,\n focused: this.autoFocus\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 _this.updatedFunc();\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n var _$props = this.$props,\n value = _$props.value,\n max = _$props.max,\n min = _$props.min;\n var focused = this.$data.focused;\n var prevProps = this.prevProps;\n\n var props = getOptionProps(this);\n // Don't trigger in componentDidMount\n if (prevProps) {\n if (!isEqual(prevProps.value, value) || !isEqual(prevProps.max, max) || !isEqual(prevProps.min, min)) {\n var validValue = focused ? value : this.getValidValue(value);\n var nextInputValue = void 0;\n if (this.pressingUpOrDown) {\n nextInputValue = validValue;\n } else if (this.inputting) {\n nextInputValue = this.rawInput;\n } else {\n nextInputValue = this.toPrecisionAsStep(validValue);\n }\n this.setState({\n // eslint-disable-line\n sValue: validValue,\n inputValue: nextInputValue\n });\n }\n\n // Trigger onChange when max or min change\n // https://github.com/ant-design/ant-design/issues/11574\n var nextValue = 'value' in props ? value : this.sValue;\n // ref: null < 20 === true\n // https://github.com/ant-design/ant-design/issues/14277\n if ('max' in props && prevProps.max !== max && typeof nextValue === 'number' && nextValue > max) {\n this.$emit('change', max);\n }\n if ('min' in props && prevProps.min !== min && typeof nextValue === 'number' && nextValue < min) {\n this.$emit('change', min);\n }\n }\n this.prevProps = _extends({}, props);\n this.$nextTick(function () {\n _this2.updatedFunc();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.stop();\n },\n\n methods: {\n updatedFunc: function updatedFunc() {\n var inputElem = this.$refs.inputRef;\n // Restore cursor\n try {\n // Firefox set the input cursor after it get focused.\n // This caused that if an input didn't init with the selection,\n // set will cause cursor not correct when first focus.\n // Safari will focus input if set selection. We need skip this.\n if (this.cursorStart !== undefined && this.focused) {\n // In most cases, the string after cursor is stable.\n // We can move the cursor before it\n\n if (\n // If not match full str, try to match part of str\n !this.partRestoreByAfter(this.cursorAfter) && this.sValue !== this.value) {\n // If not match any of then, let's just keep the position\n // TODO: Logic should not reach here, need check if happens\n var pos = this.cursorStart + 1;\n\n // If not have last string, just position to the end\n if (!this.cursorAfter) {\n pos = inputElem.value.length;\n } else if (this.lastKeyCode === KeyCode.BACKSPACE) {\n pos = this.cursorStart - 1;\n } else if (this.lastKeyCode === KeyCode.DELETE) {\n pos = this.cursorStart;\n }\n this.fixCaret(pos, pos);\n } else if (this.currentValue === inputElem.value) {\n // Handle some special key code\n switch (this.lastKeyCode) {\n case KeyCode.BACKSPACE:\n this.fixCaret(this.cursorStart - 1, this.cursorStart - 1);\n break;\n case KeyCode.DELETE:\n this.fixCaret(this.cursorStart + 1, this.cursorStart + 1);\n break;\n default:\n // Do nothing\n }\n }\n }\n } catch (e) {}\n // Do nothing\n\n // Reset last key\n this.lastKeyCode = null;\n\n // pressingUpOrDown is true means that someone just click up or down button\n if (!this.pressingUpOrDown) {\n return;\n }\n if (this.focusOnUpDown && this.focused) {\n if (document.activeElement !== inputElem) {\n this.focus();\n }\n }\n\n this.pressingUpOrDown = false;\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === KeyCode.UP) {\n var ratio = this.getRatio(e);\n this.up(e, ratio);\n this.stop();\n } else if (e.keyCode === KeyCode.DOWN) {\n var _ratio = this.getRatio(e);\n this.down(e, _ratio);\n this.stop();\n } else if (e.keyCode === KeyCode.ENTER) {\n this.$emit('pressEnter', e);\n }\n // Trigger user key down\n this.recordCursorPosition();\n this.lastKeyCode = e.keyCode;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n this.$emit.apply(this, ['keydown', e].concat(_toConsumableArray(args)));\n },\n onKeyUp: function onKeyUp(e) {\n this.stop();\n\n this.recordCursorPosition();\n\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n this.$emit.apply(this, ['keyup', e].concat(_toConsumableArray(args)));\n },\n onTrigger: function onTrigger(e) {\n if (e.target.composing) return false;\n this.onChange(e);\n },\n onChange: function onChange(e) {\n if (this.focused) {\n this.inputting = true;\n }\n this.rawInput = this.parser(this.getValueFromEvent(e));\n this.setState({ inputValue: this.rawInput });\n this.$emit('change', this.toNumber(this.rawInput)); // valid number or invalid string\n },\n onFocus: function onFocus() {\n this.setState({\n focused: true\n });\n\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this.$emit.apply(this, ['focus'].concat(_toConsumableArray(args)));\n },\n onBlur: function onBlur() {\n this.inputting = false;\n this.setState({\n focused: false\n });\n var value = this.getCurrentValidValue(this.inputValue);\n var newValue = this.setValue(value);\n if (this.$listeners.blur) {\n var originValue = this.$refs.inputRef.value;\n var inputValue = this.getInputDisplayValue({ focused: false, sValue: newValue });\n this.$refs.inputRef.value = inputValue;\n\n for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this.$emit.apply(this, ['blur'].concat(_toConsumableArray(args)));\n this.$refs.inputRef.value = originValue;\n }\n },\n getCurrentValidValue: function getCurrentValidValue(value) {\n var val = value;\n if (val === '') {\n val = '';\n } else if (!this.isNotCompleteNumber(parseFloat(val, 10))) {\n val = this.getValidValue(val);\n } else {\n val = this.sValue;\n }\n return this.toNumber(val);\n },\n getRatio: function getRatio(e) {\n var ratio = 1;\n if (e.metaKey || e.ctrlKey) {\n ratio = 0.1;\n } else if (e.shiftKey) {\n ratio = 10;\n }\n return ratio;\n },\n getValueFromEvent: function getValueFromEvent(e) {\n // optimize for chinese input expierence\n // https://github.com/ant-design/ant-design/issues/8196\n var value = e.target.value.trim().replace(/怂/g, '.');\n\n if (isValidProps(this.decimalSeparator)) {\n value = value.replace(this.decimalSeparator, '.');\n }\n\n return value;\n },\n getValidValue: function getValidValue(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.min;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.max;\n\n var val = parseFloat(value, 10);\n // https://github.com/ant-design/ant-design/issues/7358\n if (isNaN(val)) {\n return value;\n }\n if (val < min) {\n val = min;\n }\n if (val > max) {\n val = max;\n }\n return val;\n },\n setValue: function setValue(v, callback) {\n // trigger onChange\n var precision = this.$props.precision;\n\n var newValue = this.isNotCompleteNumber(parseFloat(v, 10)) ? null : parseFloat(v, 10);\n var _$data = this.$data,\n _$data$sValue = _$data.sValue,\n value = _$data$sValue === undefined ? null : _$data$sValue,\n _$data$inputValue = _$data.inputValue,\n inputValue = _$data$inputValue === undefined ? null : _$data$inputValue;\n // https://github.com/ant-design/ant-design/issues/7363\n // https://github.com/ant-design/ant-design/issues/16622\n\n var newValueInString = typeof newValue === 'number' ? newValue.toFixed(precision) : '' + newValue;\n var changed = newValue !== value || newValueInString !== '' + inputValue;\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: newValue,\n inputValue: this.toPrecisionAsStep(v)\n }, callback);\n } else {\n // always set input value same as value\n this.setState({\n inputValue: this.toPrecisionAsStep(this.sValue)\n }, callback);\n }\n if (changed) {\n this.$emit('change', newValue);\n }\n return newValue;\n },\n getPrecision: function getPrecision(value) {\n if (isValidProps(this.precision)) {\n return this.precision;\n }\n var valueString = value.toString();\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n var precision = 0;\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n },\n\n // step={1.0} value={1.51}\n // press +\n // then value should be 2.51, rather than 2.5\n // if this.$props.precision is undefined\n // https://github.com/react-component/input-number/issues/39\n getMaxPrecision: function getMaxPrecision(currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if (isValidProps(this.precision)) {\n return this.precision;\n }\n var step = this.step;\n\n var ratioPrecision = this.getPrecision(ratio);\n var stepPrecision = this.getPrecision(step);\n var currentValuePrecision = this.getPrecision(currentValue);\n if (!currentValue) {\n return ratioPrecision + stepPrecision;\n }\n return Math.max(currentValuePrecision, ratioPrecision + stepPrecision);\n },\n getPrecisionFactor: function getPrecisionFactor(currentValue) {\n var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var precision = this.getMaxPrecision(currentValue, ratio);\n return Math.pow(10, precision);\n },\n getInputDisplayValue: function getInputDisplayValue(state) {\n var _ref = state || this.$data,\n focused = _ref.focused,\n inputValue = _ref.inputValue,\n sValue = _ref.sValue;\n\n var inputDisplayValue = void 0;\n if (focused) {\n inputDisplayValue = inputValue;\n } else {\n inputDisplayValue = this.toPrecisionAsStep(sValue);\n }\n\n if (inputDisplayValue === undefined || inputDisplayValue === null) {\n inputDisplayValue = '';\n }\n\n var inputDisplayValueFormat = this.formatWrapper(inputDisplayValue);\n if (isValidProps(this.$props.decimalSeparator)) {\n inputDisplayValueFormat = inputDisplayValueFormat.toString().replace('.', this.$props.decimalSeparator);\n }\n\n return inputDisplayValueFormat;\n },\n recordCursorPosition: function recordCursorPosition() {\n // Record position\n try {\n var inputElem = this.$refs.inputRef;\n this.cursorStart = inputElem.selectionStart;\n this.cursorEnd = inputElem.selectionEnd;\n this.currentValue = inputElem.value;\n this.cursorBefore = inputElem.value.substring(0, this.cursorStart);\n this.cursorAfter = inputElem.value.substring(this.cursorEnd);\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n },\n fixCaret: function fixCaret(start, end) {\n if (start === undefined || end === undefined || !this.$refs.inputRef || !this.$refs.inputRef.value) {\n return;\n }\n\n try {\n var inputElem = this.$refs.inputRef;\n var currentStart = inputElem.selectionStart;\n var currentEnd = inputElem.selectionEnd;\n\n if (start !== currentStart || end !== currentEnd) {\n inputElem.setSelectionRange(start, end);\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n },\n restoreByAfter: function restoreByAfter(str) {\n if (str === undefined) return false;\n\n var fullStr = this.$refs.inputRef.value;\n var index = fullStr.lastIndexOf(str);\n\n if (index === -1) return false;\n\n var prevCursorPos = this.cursorBefore.length;\n if (this.lastKeyCode === KeyCode.DELETE && this.cursorBefore.charAt(prevCursorPos - 1) === str[0]) {\n this.fixCaret(prevCursorPos, prevCursorPos);\n return true;\n }\n if (index + str.length === fullStr.length) {\n this.fixCaret(index, index);\n\n return true;\n }\n return false;\n },\n partRestoreByAfter: function partRestoreByAfter(str) {\n var _this3 = this;\n\n if (str === undefined) return false;\n\n // For loop from full str to the str with last char to map. e.g. 123\n // -> 123\n // -> 23\n // -> 3\n return Array.prototype.some.call(str, function (_, start) {\n var partStr = str.substring(start);\n\n return _this3.restoreByAfter(partStr);\n });\n },\n focus: function focus() {\n this.$refs.inputRef.focus();\n this.recordCursorPosition();\n },\n blur: function blur() {\n this.$refs.inputRef.blur();\n },\n formatWrapper: function formatWrapper(num) {\n // http://2ality.com/2012/03/signedzero.html\n // https://github.com/ant-design/ant-design/issues/9439\n if (this.formatter) {\n return this.formatter(num);\n }\n return num;\n },\n toPrecisionAsStep: function toPrecisionAsStep(num) {\n if (this.isNotCompleteNumber(num) || num === '') {\n return num;\n }\n var precision = Math.abs(this.getMaxPrecision(num));\n if (!isNaN(precision)) {\n return Number(num).toFixed(precision);\n }\n return num.toString();\n },\n\n // '1.' '1x' 'xx' '' => are not complete numbers\n isNotCompleteNumber: function isNotCompleteNumber(num) {\n return isNaN(num) || num === '' || num === null || num && num.toString().indexOf('.') === num.toString().length - 1;\n },\n toNumber: function toNumber(num) {\n var _$props2 = this.$props,\n precision = _$props2.precision,\n autoFocus = _$props2.autoFocus;\n var _focused = this.focused,\n focused = _focused === undefined ? autoFocus : _focused;\n // num.length > 16 => This is to prevent input of large numbers\n\n var numberIsTooLarge = num && num.length > 16 && focused;\n if (this.isNotCompleteNumber(num) || numberIsTooLarge) {\n return num;\n }\n if (isValidProps(precision)) {\n return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision);\n }\n return Number(num);\n },\n upStep: function upStep(val, rat) {\n var step = this.step;\n\n var precisionFactor = this.getPrecisionFactor(val, rat);\n var precision = Math.abs(this.getMaxPrecision(val, rat));\n var result = ((precisionFactor * val + precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n },\n downStep: function downStep(val, rat) {\n var step = this.step;\n\n var precisionFactor = this.getPrecisionFactor(val, rat);\n var precision = Math.abs(this.getMaxPrecision(val, rat));\n var result = ((precisionFactor * val - precisionFactor * step * rat) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n },\n stepFn: function stepFn(type, e) {\n var _this4 = this;\n\n var ratio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var recursive = arguments[3];\n\n this.stop();\n if (e) {\n // e.persist()\n e.preventDefault();\n }\n if (this.disabled) {\n return;\n }\n var max = this.max,\n min = this.min;\n\n var value = this.getCurrentValidValue(this.inputValue) || 0;\n if (this.isNotCompleteNumber(value)) {\n return;\n }\n var val = this[type + 'Step'](value, ratio);\n var outOfRange = val > max || val < min;\n if (val > max) {\n val = max;\n } else if (val < min) {\n val = min;\n }\n this.setValue(val);\n this.setState({\n focused: true\n });\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(function () {\n _this4[type](e, ratio, true);\n }, recursive ? SPEED : DELAY);\n },\n stop: function stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n },\n down: function down(e, ratio, recursive) {\n this.pressingUpOrDown = true;\n this.stepFn('down', e, ratio, recursive);\n },\n up: function up(e, ratio, recursive) {\n this.pressingUpOrDown = true;\n this.stepFn('up', e, ratio, recursive);\n },\n handleInputClick: function handleInputClick() {\n this.$emit('click');\n },\n onCompositionstart: function onCompositionstart(e) {\n e.target.composing = true;\n },\n onCompositionend: function onCompositionend(e) {\n this.onChange(e);\n e.target.composing = false;\n }\n },\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props3 = this.$props,\n prefixCls = _$props3.prefixCls,\n disabled = _$props3.disabled,\n readonly = _$props3.readonly,\n useTouch = _$props3.useTouch,\n autoComplete = _$props3.autoComplete,\n upHandler = _$props3.upHandler,\n downHandler = _$props3.downHandler;\n\n var classes = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-focused', this.focused), _classNames));\n var upDisabledClass = '';\n var downDisabledClass = '';\n var sValue = this.sValue;\n\n if (sValue || sValue === 0) {\n if (!isNaN(sValue)) {\n var val = Number(sValue);\n if (val >= this.max) {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n }\n if (val <= this.min) {\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n } else {\n upDisabledClass = prefixCls + '-handler-up-disabled';\n downDisabledClass = prefixCls + '-handler-down-disabled';\n }\n }\n\n var editable = !this.readonly && !this.disabled;\n\n // focus state, show input value\n // unfocus state, show valid value\n var inputDisplayValue = this.getInputDisplayValue();\n\n var upEvents = void 0;\n var downEvents = void 0;\n if (useTouch) {\n upEvents = {\n touchstart: editable && !upDisabledClass ? this.up : noop,\n touchend: this.stop\n };\n downEvents = {\n touchstart: editable && !downDisabledClass ? this.down : noop,\n touchend: this.stop\n };\n } else {\n upEvents = {\n mousedown: editable && !upDisabledClass ? this.up : noop,\n mouseup: this.stop,\n mouseleave: this.stop\n };\n downEvents = {\n mousedown: editable && !downDisabledClass ? this.down : noop,\n mouseup: this.stop,\n mouseleave: this.stop\n };\n }\n var isUpDisabled = !!upDisabledClass || disabled || readonly;\n var isDownDisabled = !!downDisabledClass || disabled || readonly;\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$mouseov = _getListeners.mouseover,\n mouseover = _getListeners$mouseov === undefined ? noop : _getListeners$mouseov,\n _getListeners$mouseou = _getListeners.mouseout,\n mouseout = _getListeners$mouseou === undefined ? noop : _getListeners$mouseou;\n\n var contentProps = {\n on: { mouseenter: mouseenter, mouseleave: mouseleave, mouseover: mouseover, mouseout: mouseout },\n 'class': classes,\n attrs: { title: this.$props.title }\n };\n var upHandlerProps = {\n props: {\n disabled: isUpDisabled,\n prefixCls: prefixCls\n },\n attrs: {\n unselectable: 'unselectable',\n role: 'button',\n 'aria-label': 'Increase Value',\n 'aria-disabled': !!isUpDisabled\n },\n 'class': prefixCls + '-handler ' + prefixCls + '-handler-up ' + upDisabledClass,\n on: upEvents,\n ref: 'up'\n };\n var downHandlerProps = {\n props: {\n disabled: isDownDisabled,\n prefixCls: prefixCls\n },\n attrs: {\n unselectable: 'unselectable',\n role: 'button',\n 'aria-label': 'Decrease Value',\n 'aria-disabled': !!isDownDisabled\n },\n 'class': prefixCls + '-handler ' + prefixCls + '-handler-down ' + downDisabledClass,\n on: downEvents,\n ref: 'down'\n };\n // ref for test\n return h(\n 'div',\n contentProps,\n [h(\n 'div',\n { 'class': prefixCls + '-handler-wrap' },\n [h(\n InputHandler,\n upHandlerProps,\n [upHandler || h('span', {\n attrs: {\n unselectable: 'unselectable'\n },\n 'class': prefixCls + '-handler-up-inner',\n on: {\n 'click': preventDefault\n }\n })]\n ), h(\n InputHandler,\n downHandlerProps,\n [downHandler || h('span', {\n attrs: {\n unselectable: 'unselectable'\n },\n 'class': prefixCls + '-handler-down-inner',\n on: {\n 'click': preventDefault\n }\n })]\n )]\n ), h(\n 'div',\n { 'class': prefixCls + '-input-wrap' },\n [h('input', {\n attrs: {\n role: 'spinbutton',\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': sValue,\n required: this.required,\n type: this.type,\n placeholder: this.placeholder,\n\n tabIndex: this.tabIndex,\n autoComplete: autoComplete,\n\n readonly: this.readonly,\n disabled: this.disabled,\n max: this.max,\n min: this.min,\n step: this.step,\n name: this.name,\n title: this.title,\n id: this.id,\n\n pattern: this.pattern\n },\n on: {\n 'click': this.handleInputClick,\n 'focus': this.onFocus,\n 'blur': this.onBlur,\n 'keydown': editable ? this.onKeyDown : noop,\n 'keyup': editable ? this.onKeyUp : noop,\n 'input': this.onTrigger,\n 'compositionstart': this.onCompositionstart,\n 'compositionend': this.onCompositionend\n },\n\n 'class': prefixCls + '-input',\n ref: 'inputRef',\n domProps: {\n 'value': inputDisplayValue\n }\n })]\n )]\n );\n }\n};","var style = function style(element, prop) {\n var styleVal = '';\n if (typeof getComputedStyle !== 'undefined') {\n styleVal = window.getComputedStyle(element, null).getPropertyValue(prop);\n } else {\n styleVal = element.style[prop];\n }\n return styleVal;\n};\n\nvar overflow = function overflow(element) {\n return style(element, 'overflow') + style(element, 'overflow-y') + style(element, 'overflow-x');\n};\n\nvar scrollParent = function scrollParent(element) {\n if (!(element instanceof window.HTMLElement)) {\n return window;\n }\n\n var parent = element;\n\n while (parent) {\n if (parent === document.body || parent === document.documentElement) {\n break;\n }\n\n if (!parent.parentNode) {\n break;\n }\n if (/(scroll|auto)/.test(overflow(parent))) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return window;\n};\n\nexport default scrollParent;","/*\n * Finds element's position relative to the whole document,\n * rather than to the viewport as it is the case with .getBoundingClientRect().\n */\nexport default function getElementPosition(element) {\n var rect = element.getBoundingClientRect();\n\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n}","import getElementPosition from './getElementPosition';\n\nvar isHidden = function isHidden(element) {\n return element.offsetParent === null;\n};\n\nexport default function inViewport(element, container, customOffset) {\n if (isHidden(element)) {\n return false;\n }\n\n var top = void 0;\n var bottom = void 0;\n var left = void 0;\n var right = void 0;\n\n if (typeof container === 'undefined' || container === window) {\n top = window.pageYOffset;\n left = window.pageXOffset;\n bottom = top + window.innerHeight;\n right = left + window.innerWidth;\n } else {\n var containerPosition = getElementPosition(container);\n\n top = containerPosition.top;\n left = containerPosition.left;\n bottom = top + container.offsetHeight;\n right = left + container.offsetWidth;\n }\n\n var elementPosition = getElementPosition(element);\n\n return top <= elementPosition.top + element.offsetHeight + customOffset.top && bottom >= elementPosition.top - customOffset.bottom && left <= elementPosition.left + element.offsetWidth + customOffset.left && right >= elementPosition.left - customOffset.right;\n}","import PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport addEventListener from '../../vc-util/Dom/addEventListener';\nimport { initDefaultProps } from '../../_util/props-util';\nimport warning from '../../_util/warning';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport parentScroll from './utils/parentScroll';\nimport inViewport from './utils/inViewport';\n\nvar lazyLoadProps = {\n debounce: PropTypes.bool,\n elementType: PropTypes.string,\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n offset: PropTypes.number,\n offsetBottom: PropTypes.number,\n offsetHorizontal: PropTypes.number,\n offsetLeft: PropTypes.number,\n offsetRight: PropTypes.number,\n offsetTop: PropTypes.number,\n offsetVertical: PropTypes.number,\n threshold: PropTypes.number,\n throttle: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n _propsSymbol: PropTypes.any\n};\n\nexport default {\n name: 'LazyLoad',\n mixins: [BaseMixin],\n props: initDefaultProps(lazyLoadProps, {\n elementType: 'div',\n debounce: true,\n offset: 0,\n offsetBottom: 0,\n offsetHorizontal: 0,\n offsetLeft: 0,\n offsetRight: 0,\n offsetTop: 0,\n offsetVertical: 0,\n throttle: 250\n }),\n data: function data() {\n if (this.throttle > 0) {\n if (this.debounce) {\n this.lazyLoadHandler = debounce(this.lazyLoadHandler, this.throttle);\n } else {\n this.lazyLoadHandler = throttle(this.lazyLoadHandler, this.throttle);\n }\n }\n return {\n visible: false\n };\n },\n\n watch: {\n _propsSymbol: function _propsSymbol() {\n if (!this.visible) {\n this.lazyLoadHandler();\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this._mounted = true;\n var eventNode = _this.getEventNode();\n\n _this.lazyLoadHandler();\n\n if (_this.lazyLoadHandler.flush) {\n _this.lazyLoadHandler.flush();\n }\n _this.resizeHander = addEventListener(window, 'resize', _this.lazyLoadHandler);\n _this.scrollHander = addEventListener(eventNode, 'scroll', _this.lazyLoadHandler);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this._mounted = false;\n if (this.lazyLoadHandler.cancel) {\n this.lazyLoadHandler.cancel();\n }\n\n this.detachListeners();\n },\n\n methods: {\n getEventNode: function getEventNode() {\n return parentScroll(this.$el);\n },\n getOffset: function getOffset() {\n var _$props = this.$props,\n offset = _$props.offset,\n offsetVertical = _$props.offsetVertical,\n offsetHorizontal = _$props.offsetHorizontal,\n offsetTop = _$props.offsetTop,\n offsetBottom = _$props.offsetBottom,\n offsetLeft = _$props.offsetLeft,\n offsetRight = _$props.offsetRight,\n threshold = _$props.threshold;\n\n\n var _offsetAll = threshold || offset;\n var _offsetVertical = offsetVertical || _offsetAll;\n var _offsetHorizontal = offsetHorizontal || _offsetAll;\n\n return {\n top: offsetTop || _offsetVertical,\n bottom: offsetBottom || _offsetVertical,\n left: offsetLeft || _offsetHorizontal,\n right: offsetRight || _offsetHorizontal\n };\n },\n lazyLoadHandler: function lazyLoadHandler() {\n var _this2 = this;\n\n if (!this._mounted) {\n return;\n }\n var offset = this.getOffset();\n var node = this.$el;\n var eventNode = this.getEventNode();\n\n if (inViewport(node, eventNode, offset)) {\n this.setState({ visible: true }, function () {\n _this2.__emit('contentVisible');\n });\n this.detachListeners();\n }\n },\n detachListeners: function detachListeners() {\n this.resizeHander && this.resizeHander.remove();\n this.scrollHander && this.scrollHander.remove();\n }\n },\n render: function render(createElement) {\n var children = this.$slots['default'];\n if (children.length !== 1) {\n warning(false, 'lazyLoadē»„件åŖčƒ½åŒ…å«äø€äøŖ子元ē“ ');\n return null;\n }\n var _$props2 = this.$props,\n height = _$props2.height,\n width = _$props2.width,\n elementType = _$props2.elementType;\n var visible = this.visible;\n\n\n var elStyles = {\n height: typeof height === 'number' ? height + 'px' : height,\n width: typeof width === 'number' ? width + 'px' : width\n };\n var elClasses = {\n LazyLoad: true,\n 'is-visible': visible\n };\n\n return createElement(elementType, {\n 'class': elClasses,\n style: elStyles\n }, [visible ? children[0] : null]);\n }\n};","import LazyLoad from './src/LazyLoad';\nexport default LazyLoad;","import PropTypes from '../../_util/vue-types';\n\nexport var OptionProps = {\n value: PropTypes.string,\n disabled: PropTypes.boolean,\n children: PropTypes.any\n};\n\nexport default {\n name: 'Option',\n props: OptionProps,\n render: function render() {\n return null;\n }\n};","import Menu, { MenuItem } from '../../vc-menu';\nimport PropTypes from '../../_util/vue-types';\nimport { OptionProps } from './Option';\n\nfunction noop() {}\nexport default {\n name: 'DropdownMenu',\n props: {\n prefixCls: PropTypes.string,\n options: PropTypes.arrayOf(OptionProps)\n },\n inject: {\n mentionsContext: { 'default': {} }\n },\n\n render: function render() {\n var h = arguments[0];\n var _mentionsContext = this.mentionsContext,\n notFoundContent = _mentionsContext.notFoundContent,\n activeIndex = _mentionsContext.activeIndex,\n setActiveIndex = _mentionsContext.setActiveIndex,\n selectOption = _mentionsContext.selectOption,\n _mentionsContext$onFo = _mentionsContext.onFocus,\n onFocus = _mentionsContext$onFo === undefined ? noop : _mentionsContext$onFo,\n _mentionsContext$onBl = _mentionsContext.onBlur,\n onBlur = _mentionsContext$onBl === undefined ? noop : _mentionsContext$onBl;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n options = _$props.options;\n\n var activeOption = options[activeIndex] || {};\n\n return h(\n Menu,\n {\n props: {\n prefixCls: prefixCls + '-menu',\n activeKey: activeOption.value\n },\n on: {\n select: function select(_ref) {\n var key = _ref.key;\n\n var option = options.find(function (_ref2) {\n var value = _ref2.value;\n return value === key;\n });\n selectOption(option);\n },\n focus: onFocus,\n blur: onBlur\n }\n },\n [options.map(function (option, index) {\n var value = option.value,\n disabled = option.disabled,\n children = option.children;\n\n return h(\n MenuItem,\n {\n key: value,\n attrs: { disabled: disabled\n },\n on: {\n 'mouseenter': function mouseenter() {\n setActiveIndex(index);\n }\n }\n },\n [children]\n );\n }), !options.length && h(\n MenuItem,\n {\n attrs: { disabled: true }\n },\n [notFoundContent]\n )]\n );\n }\n};","import PropTypes from '../../_util/vue-types';\nimport Trigger from '../../vc-trigger';\nimport DropdownMenu from './DropdownMenu';\nimport { OptionProps } from './Option';\nimport { PlaceMent } from './placement';\n\nvar BUILT_IN_PLACEMENTS = {\n bottomRight: {\n points: ['tl', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topRight: {\n points: ['bl', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\n\nexport default {\n name: 'KeywordTrigger',\n props: {\n loading: PropTypes.bool,\n options: PropTypes.arrayOf(OptionProps),\n prefixCls: PropTypes.string,\n placement: PropTypes.oneOf(PlaceMent),\n visible: PropTypes.bool,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func\n },\n methods: {\n getDropdownPrefix: function getDropdownPrefix() {\n return this.$props.prefixCls + '-dropdown';\n },\n getDropdownElement: function getDropdownElement() {\n var h = this.$createElement;\n var options = this.$props.options;\n\n return h(DropdownMenu, {\n attrs: { prefixCls: this.getDropdownPrefix(), options: options }\n });\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n visible = _$props.visible,\n placement = _$props.placement,\n transitionName = _$props.transitionName,\n getPopupContainer = _$props.getPopupContainer;\n var $slots = this.$slots;\n\n\n var children = $slots['default'];\n\n var popupElement = this.getDropdownElement();\n\n return h(\n Trigger,\n {\n attrs: {\n prefixCls: this.getDropdownPrefix(),\n popupVisible: visible,\n popup: popupElement,\n popupPlacement: placement === 'top' ? 'topRight' : 'bottomRight',\n popupTransitionName: transitionName,\n builtinPlacements: BUILT_IN_PLACEMENTS,\n getPopupContainer: getPopupContainer\n }\n },\n [children]\n );\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport omit from 'omit.js';\nimport KeyCode from '../../_util/KeyCode';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getSlots, hasProp, getOptionProps, getListeners, initDefaultProps } from '../../_util/props-util';\nimport warning from 'warning';\nimport { getBeforeSelectionText, getLastMeasureIndex, replaceWithMeasure, setInputSelection } from './util';\nimport KeywordTrigger from './KeywordTrigger';\nimport { vcMentionsProps, defaultProps } from './mentionsProps';\n\nfunction noop() {}\n\nvar Mentions = {\n name: 'Mentions',\n mixins: [BaseMixin],\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'change'\n },\n props: initDefaultProps(vcMentionsProps, defaultProps),\n provide: function provide() {\n return {\n mentionsContext: this\n };\n },\n data: function data() {\n var _$props = this.$props,\n _$props$value = _$props.value,\n value = _$props$value === undefined ? '' : _$props$value,\n _$props$defaultValue = _$props.defaultValue,\n defaultValue = _$props$defaultValue === undefined ? '' : _$props$defaultValue;\n\n warning(this.$props.children, 'please children prop replace slots.default');\n return {\n _value: !hasProp(this, 'value') ? defaultValue : value,\n measuring: false,\n measureLocation: 0,\n measureText: null,\n measurePrefix: '',\n activeIndex: 0,\n isFocus: false\n };\n },\n\n watch: {\n value: function value(val) {\n this.$data._value = val;\n }\n },\n updated: function updated() {\n var _this = this;\n\n this.$nextTick(function () {\n var measuring = _this.$data.measuring;\n\n // Sync measure div top with textarea for rc-trigger usage\n\n if (measuring) {\n _this.$refs.measure.scrollTop = _this.$refs.textarea.scrollTop;\n }\n });\n },\n\n methods: {\n triggerChange: function triggerChange(value) {\n var props = getOptionProps(this);\n if (!('value' in props)) {\n this.setState({ _value: value });\n } else {\n this.$forceUpdate();\n }\n this.$emit('change', value);\n },\n onChange: function onChange(_ref) {\n var _ref$target = _ref.target,\n value = _ref$target.value,\n composing = _ref$target.composing,\n isComposing = _ref.isComposing;\n\n if (isComposing || composing) return;\n this.triggerChange(value);\n },\n onKeyDown: function onKeyDown(event) {\n var which = event.which;\n var _$data = this.$data,\n activeIndex = _$data.activeIndex,\n measuring = _$data.measuring;\n // Skip if not measuring\n\n if (!measuring) {\n return;\n }\n\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n // Control arrow function\n var optionLen = this.getOptions().length;\n var offset = which === KeyCode.UP ? -1 : 1;\n var newActiveIndex = (activeIndex + offset + optionLen) % optionLen;\n this.setState({\n activeIndex: newActiveIndex\n });\n event.preventDefault();\n } else if (which === KeyCode.ESC) {\n this.stopMeasure();\n } else if (which === KeyCode.ENTER) {\n // Measure hit\n event.preventDefault();\n var options = this.getOptions();\n if (!options.length) {\n this.stopMeasure();\n return;\n }\n var option = options[activeIndex];\n this.selectOption(option);\n }\n },\n\n /**\n * When to start measure:\n * 1. When user press `prefix`\n * 2. When measureText !== prevMeasureText\n * - If measure hit\n * - If measuring\n *\n * When to stop measure:\n * 1. Selection is out of range\n * 2. Contains `space`\n * 3. ESC or select one\n */\n onKeyUp: function onKeyUp(event) {\n var key = event.key,\n which = event.which;\n var _$data2 = this.$data,\n prevMeasureText = _$data2.measureText,\n measuring = _$data2.measuring;\n var _$props2 = this.$props,\n _$props2$prefix = _$props2.prefix,\n prefix = _$props2$prefix === undefined ? '' : _$props2$prefix,\n validateSearch = _$props2.validateSearch;\n\n var target = event.target;\n var selectionStartText = getBeforeSelectionText(target);\n\n var _getLastMeasureIndex = getLastMeasureIndex(selectionStartText, prefix),\n measureIndex = _getLastMeasureIndex.location,\n measurePrefix = _getLastMeasureIndex.prefix;\n\n // Skip if match the white key list\n\n\n if ([KeyCode.ESC, KeyCode.UP, KeyCode.DOWN, KeyCode.ENTER].indexOf(which) !== -1) {\n return;\n }\n\n if (measureIndex !== -1) {\n var measureText = selectionStartText.slice(measureIndex + measurePrefix.length);\n var validateMeasure = validateSearch(measureText, this.$props);\n var matchOption = !!this.getOptions(measureText).length;\n\n if (validateMeasure) {\n if (key === measurePrefix || measuring || measureText !== prevMeasureText && matchOption) {\n this.startMeasure(measureText, measurePrefix, measureIndex);\n }\n } else if (measuring) {\n // Stop if measureText is invalidate\n this.stopMeasure();\n }\n\n /**\n * We will trigger `onSearch` to developer since they may use for async update.\n * If met `space` means user finished searching.\n */\n if (validateMeasure) {\n this.$emit('search', measureText, measurePrefix);\n }\n } else if (measuring) {\n this.stopMeasure();\n }\n },\n onInputFocus: function onInputFocus(event) {\n this.onFocus(event);\n },\n onInputBlur: function onInputBlur(event) {\n this.onBlur(event);\n },\n onDropdownFocus: function onDropdownFocus() {\n this.onFocus();\n },\n onDropdownBlur: function onDropdownBlur() {\n this.onBlur();\n },\n onFocus: function onFocus(event) {\n window.clearTimeout(this.focusId);\n var isFocus = this.$data.isFocus;\n\n if (!isFocus && event) {\n this.$emit('focus', event);\n }\n this.setState({ isFocus: true });\n },\n onBlur: function onBlur(event) {\n var _this2 = this;\n\n this.focusId = window.setTimeout(function () {\n _this2.setState({ isFocus: false });\n _this2.stopMeasure();\n _this2.$emit('blur', event);\n }, 0);\n },\n selectOption: function selectOption(option) {\n var _this3 = this;\n\n var _$data3 = this.$data,\n value = _$data3._value,\n measureLocation = _$data3.measureLocation,\n measurePrefix = _$data3.measurePrefix;\n var split = this.$props.split;\n var _option$value = option.value,\n mentionValue = _option$value === undefined ? '' : _option$value;\n\n var _replaceWithMeasure = replaceWithMeasure(value, {\n measureLocation: measureLocation,\n targetText: mentionValue,\n prefix: measurePrefix,\n selectionStart: this.$refs.textarea.selectionStart,\n split: split\n }),\n text = _replaceWithMeasure.text,\n selectionLocation = _replaceWithMeasure.selectionLocation;\n\n this.triggerChange(text);\n this.stopMeasure(function () {\n // We need restore the selection position\n setInputSelection(_this3.$refs.textarea, selectionLocation);\n });\n\n this.$emit('select', option, measurePrefix);\n },\n setActiveIndex: function setActiveIndex(activeIndex) {\n this.setState({\n activeIndex: activeIndex\n });\n },\n getOptions: function getOptions(measureText) {\n var targetMeasureText = measureText || this.$data.measureText || '';\n var _$props3 = this.$props,\n filterOption = _$props3.filterOption,\n _$props3$children = _$props3.children,\n children = _$props3$children === undefined ? [] : _$props3$children;\n\n var list = (Array.isArray(children) ? children : [children]).map(function (item) {\n var children = getSlots(item)['default'];\n return _extends({}, getOptionProps(item), { children: children });\n }).filter(function (option) {\n /** Return all result if `filterOption` is false. */\n if (filterOption === false) {\n return true;\n }\n return filterOption(targetMeasureText, option);\n });\n return list;\n },\n startMeasure: function startMeasure(measureText, measurePrefix, measureLocation) {\n this.setState({\n measuring: true,\n measureText: measureText,\n measurePrefix: measurePrefix,\n measureLocation: measureLocation,\n activeIndex: 0\n });\n },\n stopMeasure: function stopMeasure(callback) {\n this.setState({\n measuring: false,\n measureLocation: 0,\n measureText: null\n }, callback);\n },\n focus: function focus() {\n this.$refs.textarea.focus();\n },\n blur: function blur() {\n this.$refs.textarea.blur();\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$data4 = this.$data,\n value = _$data4._value,\n measureLocation = _$data4.measureLocation,\n measurePrefix = _$data4.measurePrefix,\n measuring = _$data4.measuring;\n\n var _getOptionProps = getOptionProps(this),\n prefixCls = _getOptionProps.prefixCls,\n placement = _getOptionProps.placement,\n transitionName = _getOptionProps.transitionName,\n autoFocus = _getOptionProps.autoFocus,\n notFoundContent = _getOptionProps.notFoundContent,\n getPopupContainer = _getOptionProps.getPopupContainer,\n restProps = _objectWithoutProperties(_getOptionProps, ['prefixCls', 'placement', 'transitionName', 'autoFocus', 'notFoundContent', 'getPopupContainer']);\n\n var inputProps = omit(restProps, ['value', 'defaultValue', 'prefix', 'split', 'children', 'validateSearch', 'filterOption']);\n\n var options = measuring ? this.getOptions() : [];\n\n return h(\n 'div',\n { 'class': prefixCls },\n [h('textarea', _mergeJSXProps([{\n ref: 'textarea'\n }, {\n directives: [{ name: 'ant-input' }],\n attrs: _extends({}, inputProps, this.$attrs),\n domProps: {\n value: value\n },\n on: _extends({}, getListeners(this), {\n select: noop,\n change: noop,\n input: this.onChange,\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n blur: this.onInputBlur\n })\n }])), measuring && h(\n 'div',\n { ref: 'measure', 'class': prefixCls + '-measure' },\n [value.slice(0, measureLocation), h(\n KeywordTrigger,\n {\n attrs: {\n prefixCls: prefixCls,\n transitionName: transitionName,\n placement: placement,\n options: options,\n visible: true,\n getPopupContainer: getPopupContainer\n }\n },\n [h('span', [measurePrefix])]\n ), value.slice(measureLocation + measurePrefix.length)]\n )]\n );\n }\n};\n\nexport default Mentions;","import Mentions from './src/Mentions';\nimport Option from './src/Option';\n\nMentions.Option = Option;\n\nexport default Mentions;","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport { initDefaultProps } from '../../_util/props-util';\nimport { filterOption as defaultFilterOption, validateSearch as defaultValidateSearch } from './util';\nimport { PlaceMent } from './placement';\n\nexport var mentionsProps = {\n autoFocus: PropTypes.bool,\n prefix: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n prefixCls: PropTypes.string,\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n disabled: PropTypes.bool,\n notFoundContent: PropTypes.any,\n split: PropTypes.string,\n transitionName: PropTypes.string,\n placement: PropTypes.oneOf(PlaceMent),\n character: PropTypes.any,\n characterRender: PropTypes.func,\n filterOption: PropTypes.func,\n validateSearch: PropTypes.func,\n getPopupContainer: PropTypes.func\n};\n\nexport var vcMentionsProps = _extends({}, mentionsProps, {\n children: PropTypes.any\n});\n\nexport var defaultProps = {\n prefix: '@',\n split: ' ',\n validateSearch: defaultValidateSearch,\n filterOption: defaultFilterOption\n};\n\nexport default initDefaultProps(vcMentionsProps, defaultProps);","export var PlaceMent = ['top', 'bottom'];","/**\n * Cut input selection into 2 part and return text before selection start\n */\nexport function getBeforeSelectionText(input) {\n var selectionStart = input.selectionStart;\n\n return input.value.slice(0, selectionStart);\n}\n\nfunction lower(char) {\n return (char || '').toLowerCase();\n}\n\n/**\n * Find the last match prefix index\n */\nexport function getLastMeasureIndex(text) {\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var prefixList = Array.isArray(prefix) ? prefix : [prefix];\n return prefixList.reduce(function (lastMatch, prefixStr) {\n var lastIndex = text.lastIndexOf(prefixStr);\n if (lastIndex > lastMatch.location) {\n return {\n location: lastIndex,\n prefix: prefixStr\n };\n }\n return lastMatch;\n }, { location: -1, prefix: '' });\n}\n\nfunction reduceText(text, targetText, split) {\n var firstChar = text[0];\n if (!firstChar || firstChar === split) {\n return text;\n }\n\n // Reuse rest text as it can\n var restText = text;\n var targetTextLen = targetText.length;\n for (var i = 0; i < targetTextLen; i += 1) {\n if (lower(restText[i]) !== lower(targetText[i])) {\n restText = restText.slice(i);\n break;\n } else if (i === targetTextLen - 1) {\n restText = restText.slice(targetTextLen);\n }\n }\n\n return restText;\n}\n\n/**\n * Paint targetText into current text:\n * text: little@litest\n * targetText: light\n * => little @light test\n */\nexport function replaceWithMeasure(text, measureConfig) {\n var measureLocation = measureConfig.measureLocation,\n prefix = measureConfig.prefix,\n targetText = measureConfig.targetText,\n selectionStart = measureConfig.selectionStart,\n split = measureConfig.split;\n\n // Before text will append one space if have other text\n\n var beforeMeasureText = text.slice(0, measureLocation);\n if (beforeMeasureText[beforeMeasureText.length - split.length] === split) {\n beforeMeasureText = beforeMeasureText.slice(0, beforeMeasureText.length - split.length);\n }\n if (beforeMeasureText) {\n beforeMeasureText = '' + beforeMeasureText + split;\n }\n\n // Cut duplicate string with current targetText\n var restText = reduceText(text.slice(selectionStart), targetText.slice(selectionStart - measureLocation - prefix.length), split);\n if (restText.slice(0, split.length) === split) {\n restText = restText.slice(split.length);\n }\n\n var connectedStartText = '' + beforeMeasureText + prefix + targetText + split;\n\n return {\n text: '' + connectedStartText + restText,\n selectionLocation: connectedStartText.length\n };\n}\n\nexport function setInputSelection(input, location) {\n input.setSelectionRange(location, location);\n\n /**\n * Reset caret into view.\n * Since this function always called by user control, it's safe to focus element.\n */\n input.blur();\n input.focus();\n}\n\nexport function validateSearch() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var split = props.split;\n\n return !split || text.indexOf(split) === -1;\n}\n\nexport function filterOption() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$value = _ref.value,\n value = _ref$value === undefined ? '' : _ref$value;\n\n var lowerCase = input.toLowerCase();\n return value.toLowerCase().indexOf(lowerCase) !== -1;\n}","export default {\n name: 'MenuDivider',\n props: {\n disabled: {\n type: Boolean,\n 'default': true\n },\n rootPrefixCls: String\n },\n render: function render() {\n var h = arguments[0];\n var rootPrefixCls = this.$props.rootPrefixCls;\n\n return h('li', { 'class': rootPrefixCls + '-item-divider' });\n }\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 PropTypes from '../_util/vue-types';\nimport KeyCode from '../_util/KeyCode';\nimport BaseMixin from '../_util/BaseMixin';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport { connect } from '../_util/store';\nimport { noop, menuAllProps } from './util';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\n\nvar props = {\n attribute: PropTypes.object,\n rootPrefixCls: PropTypes.string,\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n active: PropTypes.bool,\n selectedKeys: PropTypes.array,\n disabled: PropTypes.bool,\n title: PropTypes.any,\n index: PropTypes.number,\n inlineIndent: PropTypes.number.def(24),\n level: PropTypes.number.def(1),\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']).def('vertical'),\n parentMenu: PropTypes.object,\n multiple: PropTypes.bool,\n value: PropTypes.any,\n isSelected: PropTypes.bool,\n manualRef: PropTypes.func.def(noop),\n role: PropTypes.any,\n subMenuKey: PropTypes.string,\n itemIcon: PropTypes.any\n // clearSubMenuTimers: PropTypes.func.def(noop),\n};\nvar MenuItem = {\n name: 'MenuItem',\n props: props,\n mixins: [BaseMixin],\n isMenuItem: true,\n created: function created() {\n this.prevActive = this.active;\n // invoke customized ref to expose component to mixin\n this.callRef();\n },\n updated: function updated() {\n var _this = this;\n\n this.$nextTick(function () {\n var _$props = _this.$props,\n active = _$props.active,\n parentMenu = _$props.parentMenu,\n eventKey = _$props.eventKey;\n\n if (!_this.prevActive && active && (!parentMenu || !parentMenu['scrolled-' + eventKey])) {\n scrollIntoView(_this.$el, _this.parentMenu.$el, {\n onlyScrollIfNeeded: true\n });\n parentMenu['scrolled-' + eventKey] = true;\n } else if (parentMenu && parentMenu['scrolled-' + eventKey]) {\n delete parentMenu['scrolled-' + eventKey];\n }\n _this.prevActive = active;\n });\n this.callRef();\n },\n beforeDestroy: function beforeDestroy() {\n var props = this.$props;\n this.__emit('destroy', props.eventKey);\n },\n\n methods: {\n onKeyDown: function onKeyDown(e) {\n var keyCode = e.keyCode;\n if (keyCode === KeyCode.ENTER) {\n this.onClick(e);\n return true;\n }\n },\n onMouseLeave: function onMouseLeave(e) {\n var eventKey = this.$props.eventKey;\n\n this.__emit('itemHover', {\n key: eventKey,\n hover: false\n });\n this.__emit('mouseleave', {\n key: eventKey,\n domEvent: e\n });\n },\n onMouseEnter: function onMouseEnter(e) {\n var eventKey = this.eventKey;\n\n this.__emit('itemHover', {\n key: eventKey,\n hover: true\n });\n this.__emit('mouseenter', {\n key: eventKey,\n domEvent: e\n });\n },\n onClick: function onClick(e) {\n var _$props2 = this.$props,\n eventKey = _$props2.eventKey,\n multiple = _$props2.multiple,\n isSelected = _$props2.isSelected;\n\n var info = {\n key: eventKey,\n keyPath: [eventKey],\n item: this,\n domEvent: e\n };\n\n this.__emit('click', info);\n if (multiple) {\n if (isSelected) {\n this.__emit('deselect', info);\n } else {\n this.__emit('select', info);\n }\n } else if (!isSelected) {\n this.__emit('select', info);\n }\n },\n getPrefixCls: function getPrefixCls() {\n return this.$props.rootPrefixCls + '-item';\n },\n getActiveClassName: function getActiveClassName() {\n return this.getPrefixCls() + '-active';\n },\n getSelectedClassName: function getSelectedClassName() {\n return this.getPrefixCls() + '-selected';\n },\n getDisabledClassName: function getDisabledClassName() {\n return this.getPrefixCls() + '-disabled';\n },\n callRef: function callRef() {\n if (this.manualRef) {\n this.manualRef(this);\n }\n }\n },\n\n render: function render() {\n var _className;\n\n var h = arguments[0];\n\n var props = _extends({}, this.$props);\n var className = (_className = {}, _defineProperty(_className, this.getPrefixCls(), true), _defineProperty(_className, this.getActiveClassName(), !props.disabled && props.active), _defineProperty(_className, this.getSelectedClassName(), props.isSelected), _defineProperty(_className, this.getDisabledClassName(), props.disabled), _className);\n var attrs = _extends({}, props.attribute, {\n title: props.title,\n role: props.role || 'menuitem',\n 'aria-disabled': props.disabled\n });\n if (props.role === 'option') {\n // overwrite to option\n attrs = _extends({}, attrs, {\n role: 'option',\n 'aria-selected': props.isSelected\n });\n } else if (props.role === null || props.role === 'none') {\n // sometimes we want to specify role inside
  • element\n //
  • Link
  • would be a good example\n // in this case the role on
  • should be \"none\" to\n // remove the implied listitem role.\n // https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html\n attrs.role = 'none';\n }\n // In case that onClick/onMouseLeave/onMouseEnter is passed down from owner\n var mouseEvent = {\n click: props.disabled ? noop : this.onClick,\n mouseleave: props.disabled ? noop : this.onMouseLeave,\n mouseenter: props.disabled ? noop : this.onMouseEnter\n };\n\n var style = {};\n if (props.mode === 'inline') {\n style.paddingLeft = props.inlineIndent * props.level + 'px';\n }\n var listeners = _extends({}, getListeners(this));\n menuAllProps.props.forEach(function (key) {\n return delete props[key];\n });\n menuAllProps.on.forEach(function (key) {\n return delete listeners[key];\n });\n var liProps = {\n attrs: _extends({}, props, attrs),\n on: _extends({}, listeners, mouseEvent)\n };\n return h(\n 'li',\n _mergeJSXProps([liProps, { style: style, 'class': className }]),\n [this.$slots['default'], getComponentFromProp(this, 'itemIcon', props)]\n );\n }\n};\n\nvar connected = connect(function (_ref, _ref2) {\n var activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n active: activeKey[subMenuKey] === eventKey,\n isSelected: selectedKeys.indexOf(eventKey) !== -1\n };\n})(MenuItem);\n\nexport default connected;\nexport { props as menuItemProps };","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\n\n// import { menuAllProps } from './util'\n\nvar MenuItemGroup = {\n name: 'MenuItemGroup',\n\n props: {\n renderMenuItem: PropTypes.func,\n index: PropTypes.number,\n className: PropTypes.string,\n subMenuKey: PropTypes.string,\n rootPrefixCls: PropTypes.string,\n disabled: PropTypes.bool.def(true),\n title: PropTypes.any\n },\n isMenuItemGroup: true,\n methods: {\n renderInnerMenuItem: function renderInnerMenuItem(item) {\n var _$props = this.$props,\n renderMenuItem = _$props.renderMenuItem,\n index = _$props.index,\n subMenuKey = _$props.subMenuKey;\n\n return renderMenuItem(item, index, subMenuKey);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var props = _extends({}, this.$props);\n var rootPrefixCls = props.rootPrefixCls,\n title = props.title;\n\n var titleClassName = rootPrefixCls + '-item-group-title';\n var listClassName = rootPrefixCls + '-item-group-list';\n // menuAllProps.props.forEach(key => delete props[key])\n var listeners = _extends({}, getListeners(this));\n delete listeners.click;\n\n return h(\n 'li',\n { on: listeners, 'class': rootPrefixCls + '-item-group' },\n [h(\n 'div',\n { 'class': titleClassName, attrs: { title: typeof title === 'string' ? title : undefined }\n },\n [getComponentFromProp(this, 'title')]\n ), h(\n 'ul',\n { 'class': listClassName },\n [this.$slots['default'] && this.$slots['default'].map(this.renderInnerMenuItem)]\n )]\n );\n }\n};\n\nexport default MenuItemGroup;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\n\nexport default placements;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport omit from 'omit.js';\nimport PropTypes from '../_util/vue-types';\nimport Trigger from '../vc-trigger';\nimport KeyCode from '../_util/KeyCode';\nimport { connect } from '../_util/store';\nimport SubPopupMenu from './SubPopupMenu';\nimport placements from './placements';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getComponentFromProp, filterEmpty, getListeners } from '../_util/props-util';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../_util/requestAnimationTimeout';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey } from './util';\nimport getTransitionProps from '../_util/getTransitionProps';\n\nvar guid = 0;\n\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n var state = store.getState();\n store.setState({\n defaultActiveFirst: _extends({}, state.defaultActiveFirst, _defineProperty({}, menuId, defaultActiveFirst))\n });\n};\n\nvar SubMenu = {\n name: 'SubMenu',\n props: {\n parentMenu: PropTypes.object,\n title: PropTypes.any,\n selectedKeys: PropTypes.array.def([]),\n openKeys: PropTypes.array.def([]),\n openChange: PropTypes.func.def(noop),\n rootPrefixCls: PropTypes.string,\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n multiple: PropTypes.bool,\n active: PropTypes.bool, // TODO: remove\n isRootMenu: PropTypes.bool.def(false),\n index: PropTypes.number,\n triggerSubMenuAction: PropTypes.string,\n popupClassName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n forceSubMenuRender: PropTypes.bool,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n disabled: PropTypes.bool,\n subMenuOpenDelay: PropTypes.number.def(0.1),\n subMenuCloseDelay: PropTypes.number.def(0.1),\n level: PropTypes.number.def(1),\n inlineIndent: PropTypes.number.def(24),\n openTransitionName: PropTypes.string,\n popupOffset: PropTypes.array,\n isOpen: PropTypes.bool,\n store: PropTypes.object,\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']).def('vertical'),\n manualRef: PropTypes.func.def(noop),\n builtinPlacements: PropTypes.object.def(function () {\n return {};\n }),\n itemIcon: PropTypes.any,\n expandIcon: PropTypes.any,\n subMenuKey: PropTypes.string\n },\n mixins: [BaseMixin],\n isSubMenu: true,\n data: function data() {\n var props = this.$props;\n var store = props.store;\n var eventKey = props.eventKey;\n var defaultActiveFirst = store.getState().defaultActiveFirst;\n var value = false;\n\n if (defaultActiveFirst) {\n value = defaultActiveFirst[eventKey];\n }\n\n updateDefaultActiveFirst(store, eventKey, value);\n return {\n // defaultActiveFirst: false,\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.handleUpdated();\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.handleUpdated();\n });\n },\n beforeDestroy: function beforeDestroy() {\n var eventKey = this.eventKey;\n\n this.__emit('destroy', eventKey);\n\n /* istanbul ignore if */\n if (this.minWidthTimeout) {\n cancelAnimationTimeout(this.minWidthTimeout);\n this.minWidthTimeout = null;\n }\n\n /* istanbul ignore if */\n if (this.mouseenterTimeout) {\n cancelAnimationTimeout(this.mouseenterTimeout);\n this.mouseenterTimeout = null;\n }\n },\n\n methods: {\n handleUpdated: function handleUpdated() {\n var _this3 = this;\n\n var _$props = this.$props,\n mode = _$props.mode,\n parentMenu = _$props.parentMenu,\n manualRef = _$props.manualRef;\n\n // invoke customized ref to expose component to mixin\n\n if (manualRef) {\n manualRef(this);\n }\n\n if (mode !== 'horizontal' || !parentMenu.isRootMenu || !this.isOpen) {\n return;\n }\n\n this.minWidthTimeout = requestAnimationTimeout(function () {\n return _this3.adjustWidth();\n }, 0);\n },\n onKeyDown: function onKeyDown(e) {\n var keyCode = e.keyCode;\n var menu = this.menuInstance;\n var _$props2 = this.$props,\n store = _$props2.store,\n isOpen = _$props2.isOpen;\n\n\n if (keyCode === KeyCode.ENTER) {\n this.onTitleClick(e);\n updateDefaultActiveFirst(store, this.eventKey, true);\n return true;\n }\n\n if (keyCode === KeyCode.RIGHT) {\n if (isOpen) {\n menu.onKeyDown(e);\n } else {\n this.triggerOpenChange(true);\n // need to update current menu's defaultActiveFirst value\n updateDefaultActiveFirst(store, this.eventKey, true);\n }\n return true;\n }\n if (keyCode === KeyCode.LEFT) {\n var handled = void 0;\n if (isOpen) {\n handled = menu.onKeyDown(e);\n } else {\n return undefined;\n }\n if (!handled) {\n this.triggerOpenChange(false);\n handled = true;\n }\n return handled;\n }\n\n if (isOpen && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n return menu.onKeyDown(e);\n }\n return undefined;\n },\n onPopupVisibleChange: function onPopupVisibleChange(visible) {\n this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n },\n onMouseEnter: function onMouseEnter(e) {\n var _$props3 = this.$props,\n key = _$props3.eventKey,\n store = _$props3.store;\n\n updateDefaultActiveFirst(store, key, false);\n this.__emit('mouseenter', {\n key: key,\n domEvent: e\n });\n },\n onMouseLeave: function onMouseLeave(e) {\n var eventKey = this.eventKey,\n parentMenu = this.parentMenu;\n\n parentMenu.subMenuInstance = this;\n // parentMenu.subMenuLeaveFn = () => {\n // // trigger mouseleave\n // this.__emit('mouseleave', {\n // key: eventKey,\n // domEvent: e,\n // })\n // }\n this.__emit('mouseleave', {\n key: eventKey,\n domEvent: e\n });\n // prevent popup menu and submenu gap\n // parentMenu.subMenuLeaveTimer = setTimeout(parentMenu.subMenuLeaveFn, 100)\n },\n onTitleMouseEnter: function onTitleMouseEnter(domEvent) {\n var key = this.$props.eventKey;\n // this.clearSubMenuTitleLeaveTimer()\n\n this.__emit('itemHover', {\n key: key,\n hover: true\n });\n this.__emit('titleMouseenter', {\n key: key,\n domEvent: domEvent\n });\n },\n onTitleMouseLeave: function onTitleMouseLeave(e) {\n var eventKey = this.eventKey,\n parentMenu = this.parentMenu;\n\n parentMenu.subMenuInstance = this;\n this.__emit('itemHover', {\n key: eventKey,\n hover: false\n });\n this.__emit('titleMouseleave', {\n key: eventKey,\n domEvent: e\n });\n },\n onTitleClick: function onTitleClick(e) {\n var _$props4 = this.$props,\n triggerSubMenuAction = _$props4.triggerSubMenuAction,\n eventKey = _$props4.eventKey,\n isOpen = _$props4.isOpen,\n store = _$props4.store;\n\n this.__emit('titleClick', {\n key: eventKey,\n domEvent: e\n });\n if (triggerSubMenuAction === 'hover') {\n return;\n }\n this.triggerOpenChange(!isOpen, 'click');\n updateDefaultActiveFirst(store, eventKey, false);\n },\n onSubMenuClick: function onSubMenuClick(info) {\n this.__emit('click', this.addKeyPath(info));\n },\n getPrefixCls: function getPrefixCls() {\n return this.$props.rootPrefixCls + '-submenu';\n },\n getActiveClassName: function getActiveClassName() {\n return this.getPrefixCls() + '-active';\n },\n getDisabledClassName: function getDisabledClassName() {\n return this.getPrefixCls() + '-disabled';\n },\n getSelectedClassName: function getSelectedClassName() {\n return this.getPrefixCls() + '-selected';\n },\n getOpenClassName: function getOpenClassName() {\n return this.$props.rootPrefixCls + '-submenu-open';\n },\n saveMenuInstance: function saveMenuInstance(c) {\n // children menu instance\n this.menuInstance = c;\n },\n addKeyPath: function addKeyPath(info) {\n return _extends({}, info, {\n keyPath: (info.keyPath || []).concat(this.$props.eventKey)\n });\n },\n\n\n // triggerOpenChange (open, type) {\n // const key = this.$props.eventKey\n // this.__emit('openChange', {\n // key,\n // item: this,\n // trigger: type,\n // open,\n // })\n // },\n triggerOpenChange: function triggerOpenChange(open, type) {\n var _this4 = this;\n\n var key = this.$props.eventKey;\n var openChange = function openChange() {\n _this4.__emit('openChange', {\n key: key,\n item: _this4,\n trigger: type,\n open: open\n });\n };\n if (type === 'mouseenter') {\n // make sure mouseenter happen after other menu item's mouseleave\n this.mouseenterTimeout = requestAnimationTimeout(function () {\n openChange();\n }, 0);\n } else {\n openChange();\n }\n },\n isChildrenSelected: function isChildrenSelected() {\n var ret = { find: false };\n loopMenuItemRecursively(this.$slots['default'], this.$props.selectedKeys, ret);\n return ret.find;\n },\n\n // isOpen () {\n // return this.$props.openKeys.indexOf(this.$props.eventKey) !== -1\n // },\n\n adjustWidth: function adjustWidth() {\n /* istanbul ignore if */\n if (!this.$refs.subMenuTitle || !this.menuInstance) {\n return;\n }\n var popupMenu = this.menuInstance.$el;\n if (popupMenu.offsetWidth >= this.$refs.subMenuTitle.offsetWidth) {\n return;\n }\n\n /* istanbul ignore next */\n popupMenu.style.minWidth = this.$refs.subMenuTitle.offsetWidth + 'px';\n },\n renderChildren: function renderChildren(children) {\n var h = this.$createElement;\n\n var props = this.$props;\n\n var _getListeners = getListeners(this),\n select = _getListeners.select,\n deselect = _getListeners.deselect,\n openChange = _getListeners.openChange;\n\n var subPopupMenuProps = {\n props: {\n mode: props.mode === 'horizontal' ? 'vertical' : props.mode,\n visible: props.isOpen,\n level: props.level + 1,\n inlineIndent: props.inlineIndent,\n focusable: false,\n selectedKeys: props.selectedKeys,\n eventKey: props.eventKey + '-menu-',\n openKeys: props.openKeys,\n openTransitionName: props.openTransitionName,\n openAnimation: props.openAnimation,\n subMenuOpenDelay: props.subMenuOpenDelay,\n parentMenu: this,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n triggerSubMenuAction: props.triggerSubMenuAction,\n builtinPlacements: props.builtinPlacements,\n defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n multiple: props.multiple,\n prefixCls: props.rootPrefixCls,\n manualRef: this.saveMenuInstance,\n itemIcon: getComponentFromProp(this, 'itemIcon'),\n expandIcon: getComponentFromProp(this, 'expandIcon'),\n children: children\n },\n on: {\n click: this.onSubMenuClick,\n select: select,\n deselect: deselect,\n openChange: openChange\n },\n id: this.internalMenuId\n };\n var baseProps = subPopupMenuProps.props;\n var haveRendered = this.haveRendered;\n this.haveRendered = true;\n\n this.haveOpened = this.haveOpened || baseProps.visible || baseProps.forceSubMenuRender;\n // never rendered not planning to, don't render\n if (!this.haveOpened) {\n return h('div');\n }\n\n // don't show transition on first rendering (no animation for opened menu)\n // show appear transition if it's not visible (not sure why)\n // show appear transition if it's not inline mode\n var transitionAppear = haveRendered || !baseProps.visible || !baseProps.mode === 'inline';\n subPopupMenuProps['class'] = ' ' + baseProps.prefixCls + '-sub';\n var animProps = { appear: transitionAppear, css: false };\n var transitionProps = {\n props: animProps,\n on: {}\n };\n if (baseProps.openTransitionName) {\n transitionProps = getTransitionProps(baseProps.openTransitionName, {\n appear: transitionAppear\n });\n } else if (_typeof(baseProps.openAnimation) === 'object') {\n animProps = _extends({}, animProps, baseProps.openAnimation.props || {});\n if (!transitionAppear) {\n animProps.appear = false;\n }\n } else if (typeof baseProps.openAnimation === 'string') {\n transitionProps = getTransitionProps(baseProps.openAnimation, { appear: transitionAppear });\n }\n\n if (_typeof(baseProps.openAnimation) === 'object' && baseProps.openAnimation.on) {\n transitionProps.on = baseProps.openAnimation.on;\n }\n return h(\n 'transition',\n transitionProps,\n [h(SubPopupMenu, _mergeJSXProps([{\n directives: [{\n name: 'show',\n value: props.isOpen\n }]\n }, subPopupMenuProps]))]\n );\n }\n },\n\n render: function render() {\n var _className, _attrs;\n\n var h = arguments[0];\n\n var props = this.$props;\n var rootPrefixCls = this.rootPrefixCls,\n parentMenu = this.parentMenu;\n\n var isOpen = props.isOpen;\n var prefixCls = this.getPrefixCls();\n var isInlineMode = props.mode === 'inline';\n var className = (_className = {}, _defineProperty(_className, prefixCls, true), _defineProperty(_className, prefixCls + '-' + props.mode, true), _defineProperty(_className, this.getOpenClassName(), isOpen), _defineProperty(_className, this.getActiveClassName(), props.active || isOpen && !isInlineMode), _defineProperty(_className, this.getDisabledClassName(), props.disabled), _defineProperty(_className, this.getSelectedClassName(), this.isChildrenSelected()), _className);\n\n if (!this.internalMenuId) {\n if (props.eventKey) {\n this.internalMenuId = props.eventKey + '$Menu';\n } else {\n this.internalMenuId = '$__$' + ++guid + '$Menu';\n }\n }\n\n var mouseEvents = {};\n var titleClickEvents = {};\n var titleMouseEvents = {};\n if (!props.disabled) {\n mouseEvents = {\n mouseleave: this.onMouseLeave,\n mouseenter: this.onMouseEnter\n };\n\n // only works in title, not outer li\n titleClickEvents = {\n click: this.onTitleClick\n };\n titleMouseEvents = {\n mouseenter: this.onTitleMouseEnter,\n mouseleave: this.onTitleMouseLeave\n };\n }\n\n var style = {};\n if (isInlineMode) {\n style.paddingLeft = props.inlineIndent * props.level + 'px';\n }\n var ariaOwns = {};\n // only set aria-owns when menu is open\n // otherwise it would be an invalid aria-owns value\n // since corresponding node cannot be found\n if (isOpen) {\n ariaOwns = {\n 'aria-owns': this.internalMenuId\n };\n }\n var titleProps = {\n attrs: _extends({\n 'aria-expanded': isOpen\n }, ariaOwns, {\n 'aria-haspopup': 'true',\n title: typeof props.title === 'string' ? props.title : undefined\n }),\n on: _extends({}, titleMouseEvents, titleClickEvents),\n style: style,\n 'class': prefixCls + '-title',\n ref: 'subMenuTitle'\n };\n // expand custom icon should NOT be displayed in menu with horizontal mode.\n var icon = null;\n if (props.mode !== 'horizontal') {\n icon = getComponentFromProp(this, 'expandIcon', props);\n }\n var title = h(\n 'div',\n titleProps,\n [getComponentFromProp(this, 'title'), icon || h('i', { 'class': prefixCls + '-arrow' })]\n );\n var children = this.renderChildren(filterEmpty(this.$slots['default']));\n\n var getPopupContainer = this.parentMenu.isRootMenu ? this.parentMenu.getPopupContainer : function (triggerNode) {\n return triggerNode.parentNode;\n };\n var popupPlacement = popupPlacementMap[props.mode];\n var popupAlign = props.popupOffset ? { offset: props.popupOffset } : {};\n var popupClassName = props.mode === 'inline' ? '' : props.popupClassName;\n var liProps = {\n on: _extends({}, omit(getListeners(this), ['click']), mouseEvents),\n 'class': className\n };\n\n return h(\n 'li',\n _mergeJSXProps([liProps, {\n attrs: { role: 'menuitem' }\n }]),\n [isInlineMode && title, isInlineMode && children, !isInlineMode && h(\n Trigger,\n {\n attrs: (_attrs = {\n prefixCls: prefixCls,\n popupClassName: prefixCls + '-popup ' + rootPrefixCls + '-' + parentMenu.theme + ' ' + (popupClassName || ''),\n getPopupContainer: getPopupContainer,\n builtinPlacements: placements\n }, _defineProperty(_attrs, 'builtinPlacements', _extends({}, placements, props.builtinPlacements)), _defineProperty(_attrs, 'popupPlacement', popupPlacement), _defineProperty(_attrs, 'popupVisible', isOpen), _defineProperty(_attrs, 'popupAlign', popupAlign), _defineProperty(_attrs, 'action', props.disabled ? [] : [props.triggerSubMenuAction]), _defineProperty(_attrs, 'mouseEnterDelay', props.subMenuOpenDelay), _defineProperty(_attrs, 'mouseLeaveDelay', props.subMenuCloseDelay), _defineProperty(_attrs, 'forceRender', props.forceSubMenuRender), _attrs),\n on: {\n 'popupVisibleChange': this.onPopupVisibleChange\n }\n },\n [h(\n 'template',\n { slot: 'popup' },\n [children]\n ), title]\n )]\n );\n }\n};\n\nvar connected = connect(function (_ref, _ref2) {\n var openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n isOpen: openKeys.indexOf(eventKey) > -1,\n active: activeKey[subMenuKey] === eventKey,\n selectedKeys: selectedKeys\n };\n})(SubMenu);\n\nconnected.isSubMenu = true;\n\nexport default connected;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport PropTypes from '../_util/vue-types';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport SubMenu from './SubMenu';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getWidth, setStyle, menuAllProps } from './util';\nimport { cloneElement } from '../_util/vnode';\nimport { getClass, getPropsData, getEvents, getListeners } from '../_util/props-util';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';\nvar FLOAT_PRECISION_ADJUST = 0.5;\n\n// Fix ssr\nif (canUseDOM) {\n require('mutationobserver-shim');\n}\n\nvar DOMWrap = {\n name: 'DOMWrap',\n mixins: [BaseMixin],\n data: function data() {\n this.resizeObserver = null;\n this.mutationObserver = null;\n\n // original scroll size of the list\n this.originalTotalWidth = 0;\n\n // copy of overflowed items\n this.overflowedItems = [];\n\n // cache item of the original items (so we can track the size and order)\n this.menuItemSizes = [];\n return {\n lastVisibleIndex: undefined\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setChildrenWidthAndResize();\n if (_this.level === 1 && _this.mode === 'horizontal') {\n var menuUl = _this.$el;\n if (!menuUl) {\n return;\n }\n _this.resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(_this.setChildrenWidthAndResize);\n });\n\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this.resizeObserver.observe(el);\n });\n\n if (typeof MutationObserver !== 'undefined') {\n _this.mutationObserver = new MutationObserver(function () {\n _this.resizeObserver.disconnect();\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this.resizeObserver.observe(el);\n });\n _this.setChildrenWidthAndResize();\n });\n _this.mutationObserver.observe(menuUl, {\n attributes: false,\n childList: true,\n subTree: false\n });\n }\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n },\n\n methods: {\n // get all valid menuItem nodes\n getMenuItemNodes: function getMenuItemNodes() {\n var prefixCls = this.$props.prefixCls;\n\n var ul = this.$el;\n if (!ul) {\n return [];\n }\n\n // filter out all overflowed indicator placeholder\n return [].slice.call(ul.children).filter(function (node) {\n return node.className.split(' ').indexOf(prefixCls + '-overflowed-submenu') < 0;\n });\n },\n getOverflowedSubMenuItem: function getOverflowedSubMenuItem(keyPrefix, overflowedItems, renderPlaceholder) {\n var h = this.$createElement;\n var _$props = this.$props,\n overflowedIndicator = _$props.overflowedIndicator,\n level = _$props.level,\n mode = _$props.mode,\n prefixCls = _$props.prefixCls,\n theme = _$props.theme;\n\n if (level !== 1 || mode !== 'horizontal') {\n return null;\n }\n // put all the overflowed item inside a submenu\n // with a title of overflow indicator ('...')\n var copy = this.$slots['default'][0];\n\n var _getPropsData = getPropsData(copy),\n title = _getPropsData.title,\n rest = _objectWithoutProperties(_getPropsData, ['title']); // eslint-disable-line no-unused-vars\n\n\n var events = getEvents(copy);\n var style = {};\n var key = keyPrefix + '-overflowed-indicator';\n var eventKey = keyPrefix + '-overflowed-indicator';\n\n if (overflowedItems.length === 0 && renderPlaceholder !== true) {\n style = {\n display: 'none'\n };\n } else if (renderPlaceholder) {\n style = {\n visibility: 'hidden',\n // prevent from taking normal dom space\n position: 'absolute'\n };\n key = key + '-placeholder';\n eventKey = eventKey + '-placeholder';\n }\n\n var popupClassName = theme ? prefixCls + '-' + theme : '';\n var props = {};\n var on = {};\n menuAllProps.props.forEach(function (k) {\n if (rest[k] !== undefined) {\n props[k] = rest[k];\n }\n });\n menuAllProps.on.forEach(function (k) {\n if (events[k] !== undefined) {\n on[k] = events[k];\n }\n });\n var subMenuProps = {\n props: _extends({\n title: overflowedIndicator,\n popupClassName: popupClassName\n }, props, {\n eventKey: eventKey,\n disabled: false\n }),\n 'class': prefixCls + '-overflowed-submenu',\n key: key,\n style: style,\n on: on\n };\n\n return h(\n SubMenu,\n subMenuProps,\n [overflowedItems]\n );\n },\n\n\n // memorize rendered menuSize\n setChildrenWidthAndResize: function setChildrenWidthAndResize() {\n if (this.mode !== 'horizontal') {\n return;\n }\n var ul = this.$el;\n\n if (!ul) {\n return;\n }\n\n var ulChildrenNodes = ul.children;\n\n if (!ulChildrenNodes || ulChildrenNodes.length === 0) {\n return;\n }\n\n var lastOverflowedIndicatorPlaceholder = ul.children[ulChildrenNodes.length - 1];\n\n // need last overflowed indicator for calculating length;\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'inline-block');\n\n var menuItemNodes = this.getMenuItemNodes();\n\n // reset display attribute for all hidden elements caused by overflow to calculate updated width\n // and then reset to original state after width calculation\n\n var overflowedItems = menuItemNodes.filter(function (c) {\n return c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0;\n });\n\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'inline-block');\n });\n\n this.menuItemSizes = menuItemNodes.map(function (c) {\n return getWidth(c);\n });\n\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'none');\n });\n this.overflowedIndicatorWidth = getWidth(ul.children[ul.children.length - 1]);\n this.originalTotalWidth = this.menuItemSizes.reduce(function (acc, cur) {\n return acc + cur;\n }, 0);\n this.handleResize();\n // prevent the overflowed indicator from taking space;\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'none');\n },\n handleResize: function handleResize() {\n var _this2 = this;\n\n if (this.mode !== 'horizontal') {\n return;\n }\n\n var ul = this.$el;\n if (!ul) {\n return;\n }\n var width = getWidth(ul);\n\n this.overflowedItems = [];\n var currentSumWidth = 0;\n\n // index for last visible child in horizontal mode\n var lastVisibleIndex = void 0;\n\n // float number comparison could be problematic\n // e.g. 0.1 + 0.2 > 0.3 =====> true\n // thus using FLOAT_PRECISION_ADJUST as buffer to help the situation\n if (this.originalTotalWidth > width + FLOAT_PRECISION_ADJUST) {\n lastVisibleIndex = -1;\n\n this.menuItemSizes.forEach(function (liWidth) {\n currentSumWidth += liWidth;\n if (currentSumWidth + _this2.overflowedIndicatorWidth <= width) {\n lastVisibleIndex += 1;\n }\n });\n }\n\n this.setState({ lastVisibleIndex: lastVisibleIndex });\n },\n renderChildren: function renderChildren(children) {\n var _this3 = this;\n\n // need to take care of overflowed items in horizontal mode\n var lastVisibleIndex = this.$data.lastVisibleIndex;\n\n var className = getClass(this);\n return (children || []).reduce(function (acc, childNode, index) {\n var item = childNode;\n var eventKey = getPropsData(childNode).eventKey;\n if (_this3.mode === 'horizontal') {\n var overflowed = _this3.getOverflowedSubMenuItem(eventKey, []);\n if (lastVisibleIndex !== undefined && className[_this3.prefixCls + '-root'] !== -1) {\n if (index > lastVisibleIndex) {\n item = cloneElement(childNode,\n // čæ™é‡Œäæ®ę”¹ eventKey ę˜Æäøŗäŗ†é˜²ę­¢éšč—ēŠ¶ę€äø‹čæ˜ä¼šč§¦å‘ openkeys äŗ‹ä»¶\n {\n style: { display: 'none' },\n props: { eventKey: eventKey + '-hidden' },\n 'class': MENUITEM_OVERFLOWED_CLASSNAME\n });\n }\n if (index === lastVisibleIndex + 1) {\n _this3.overflowedItems = children.slice(lastVisibleIndex + 1).map(function (c) {\n return cloneElement(c,\n // children[index].key will become '.$key' in clone by default,\n // we have to overwrite with the correct key explicitly\n {\n key: getPropsData(c).eventKey,\n props: { mode: 'vertical-left' }\n });\n });\n\n overflowed = _this3.getOverflowedSubMenuItem(eventKey, _this3.overflowedItems);\n }\n }\n\n var ret = [].concat(_toConsumableArray(acc), [overflowed, item]);\n\n if (index === children.length - 1) {\n // need a placeholder for calculating overflowed indicator width\n ret.push(_this3.getOverflowedSubMenuItem(eventKey, [], true));\n }\n return ret;\n }\n return [].concat(_toConsumableArray(acc), [item]);\n }, []);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var Tag = this.$props.tag;\n var tagProps = {\n on: getListeners(this)\n };\n return h(\n Tag,\n tagProps,\n [this.renderChildren(this.$slots['default'])]\n );\n }\n};\n\nDOMWrap.props = {\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']),\n prefixCls: PropTypes.string,\n level: PropTypes.number,\n theme: PropTypes.string,\n overflowedIndicator: PropTypes.node,\n visible: PropTypes.bool,\n hiddenClassName: PropTypes.string,\n tag: PropTypes.string.def('div')\n};\n\nexport default DOMWrap;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport omit from 'omit.js';\nimport PropTypes from '../_util/vue-types';\nimport { connect } from '../_util/store';\nimport BaseMixin from '../_util/BaseMixin';\nimport KeyCode from '../_util/KeyCode';\nimport classNames from 'classnames';\nimport { getKeyFromChildrenIndex, loopMenuItem, noop, isMobileDevice } from './util';\nimport DOMWrap from './DOMWrap';\nimport { cloneElement } from '../_util/vnode';\nimport { initDefaultProps, getOptionProps, getPropsData, getEvents, getComponentFromProp, getListeners } from '../_util/props-util';\n\nfunction allDisabled(arr) {\n if (!arr.length) {\n return true;\n }\n return arr.every(function (c) {\n return !!c.disabled;\n });\n}\n\nfunction updateActiveKey(store, menuId, activeKey) {\n var state = store.getState();\n store.setState({\n activeKey: _extends({}, state.activeKey, _defineProperty({}, menuId, activeKey))\n });\n}\n\nfunction getEventKey(props) {\n // when eventKey not available ,it's menu and return menu id '0-menu-'\n return props.eventKey || '0-menu-';\n}\n\nexport function saveRef(key, c) {\n if (c) {\n var index = this.instanceArrayKeyIndexMap[key];\n this.instanceArray[index] = c;\n }\n}\nexport function getActiveKey(props, originalActiveKey) {\n var activeKey = originalActiveKey;\n var eventKey = props.eventKey,\n defaultActiveFirst = props.defaultActiveFirst,\n children = props.children;\n\n if (activeKey !== undefined && activeKey !== null) {\n var found = void 0;\n loopMenuItem(children, function (c, i) {\n var propsData = c.componentOptions.propsData || {};\n if (c && !propsData.disabled && activeKey === getKeyFromChildrenIndex(c, eventKey, i)) {\n found = true;\n }\n });\n if (found) {\n return activeKey;\n }\n }\n activeKey = null;\n if (defaultActiveFirst) {\n loopMenuItem(children, function (c, i) {\n var propsData = c.componentOptions.propsData || {};\n var noActiveKey = activeKey === null || activeKey === undefined;\n if (noActiveKey && c && !propsData.disabled) {\n activeKey = getKeyFromChildrenIndex(c, eventKey, i);\n }\n });\n return activeKey;\n }\n return activeKey;\n}\n\nvar SubPopupMenu = {\n name: 'SubPopupMenu',\n props: initDefaultProps({\n // onSelect: PropTypes.func,\n // onClick: PropTypes.func,\n // onDeselect: PropTypes.func,\n // onOpenChange: PropTypes.func,\n // onDestroy: PropTypes.func,\n prefixCls: PropTypes.string,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n openKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n visible: PropTypes.bool,\n parentMenu: PropTypes.object,\n eventKey: PropTypes.string,\n store: PropTypes.object,\n forceSubMenuRender: PropTypes.bool,\n\n // adding in refactor\n focusable: PropTypes.bool,\n multiple: PropTypes.bool,\n defaultActiveFirst: PropTypes.bool,\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n defaultOpenKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n level: PropTypes.number,\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']),\n triggerSubMenuAction: PropTypes.oneOf(['click', 'hover']),\n inlineIndent: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n manualRef: PropTypes.func,\n itemIcon: PropTypes.any,\n expandIcon: PropTypes.any,\n overflowedIndicator: PropTypes.any,\n children: PropTypes.any.def([]),\n __propsSymbol__: PropTypes.any // mock componentWillReceiveProps\n }, {\n prefixCls: 'rc-menu',\n mode: 'vertical',\n level: 1,\n inlineIndent: 24,\n visible: true,\n focusable: true,\n manualRef: noop\n }),\n\n mixins: [BaseMixin],\n created: function created() {\n var props = getOptionProps(this);\n this.prevProps = _extends({}, props);\n props.store.setState({\n activeKey: _extends({}, props.store.getState().activeKey, _defineProperty({}, props.eventKey, getActiveKey(props, props.activeKey)))\n });\n this.instanceArray = [];\n },\n mounted: function mounted() {\n // invoke customized ref to expose component to mixin\n if (this.manualRef) {\n this.manualRef(this);\n }\n },\n updated: function updated() {\n var props = getOptionProps(this);\n var prevProps = this.prevProps;\n var originalActiveKey = 'activeKey' in props ? props.activeKey : props.store.getState().activeKey[getEventKey(props)];\n var activeKey = getActiveKey(props, originalActiveKey);\n if (activeKey !== originalActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n } else if ('activeKey' in prevProps) {\n // If prev activeKey is not same as current activeKey,\n // we should set it.\n var prevActiveKey = getActiveKey(prevProps, prevProps.activeKey);\n if (activeKey !== prevActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n }\n }\n this.prevProps = _extends({}, props);\n },\n\n methods: {\n // all keyboard events callbacks run from here at first\n onKeyDown: function onKeyDown(e, callback) {\n var keyCode = e.keyCode;\n var handled = void 0;\n this.getFlatInstanceArray().forEach(function (obj) {\n if (obj && obj.active && obj.onKeyDown) {\n handled = obj.onKeyDown(e);\n }\n });\n if (handled) {\n return 1;\n }\n var activeItem = null;\n if (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN) {\n activeItem = this.step(keyCode === KeyCode.UP ? -1 : 1);\n }\n if (activeItem) {\n e.preventDefault();\n updateActiveKey(this.$props.store, getEventKey(this.$props), activeItem.eventKey);\n\n if (typeof callback === 'function') {\n callback(activeItem);\n }\n\n return 1;\n }\n return undefined;\n },\n onItemHover: function onItemHover(e) {\n var key = e.key,\n hover = e.hover;\n\n updateActiveKey(this.$props.store, getEventKey(this.$props), hover ? key : null);\n },\n onDeselect: function onDeselect(selectInfo) {\n this.__emit('deselect', selectInfo);\n },\n onSelect: function onSelect(selectInfo) {\n this.__emit('select', selectInfo);\n },\n onClick: function onClick(e) {\n this.__emit('click', e);\n },\n onOpenChange: function onOpenChange(e) {\n this.__emit('openChange', e);\n },\n onDestroy: function onDestroy(key) {\n this.__emit('destroy', key);\n },\n getFlatInstanceArray: function getFlatInstanceArray() {\n return this.instanceArray;\n },\n getOpenTransitionName: function getOpenTransitionName() {\n return this.$props.openTransitionName;\n },\n step: function step(direction) {\n var children = this.getFlatInstanceArray();\n var activeKey = this.$props.store.getState().activeKey[getEventKey(this.$props)];\n var len = children.length;\n if (!len) {\n return null;\n }\n if (direction < 0) {\n children = children.concat().reverse();\n }\n // find current activeIndex\n var activeIndex = -1;\n children.every(function (c, ci) {\n if (c && c.eventKey === activeKey) {\n activeIndex = ci;\n return false;\n }\n return true;\n });\n if (!this.defaultActiveFirst && activeIndex !== -1 && allDisabled(children.slice(activeIndex, len - 1))) {\n return undefined;\n }\n var start = (activeIndex + 1) % len;\n var i = start;\n\n do {\n var child = children[i];\n if (!child || child.disabled) {\n i = (i + 1) % len;\n } else {\n return child;\n }\n } while (i !== start);\n\n return null;\n },\n getIcon: function getIcon(instance, name) {\n if (instance.$createElement) {\n var temp = instance[name];\n if (temp !== undefined) {\n return temp;\n }\n return instance.$slots[name] || instance.$scopedSlots[name];\n } else {\n var _temp = getPropsData(instance)[name];\n if (_temp !== undefined) {\n return _temp;\n }\n var slotsProp = [];\n var componentOptions = instance.componentOptions || {};\n (componentOptions.children || []).forEach(function (child) {\n if (child.data && child.data.slot === name) {\n if (child.tag === 'template') {\n slotsProp.push(child.children);\n } else {\n slotsProp.push(child);\n }\n }\n });\n return slotsProp.length ? slotsProp : undefined;\n }\n },\n renderCommonMenuItem: function renderCommonMenuItem(child, i, extraProps) {\n var _this = this;\n\n if (child.tag === undefined) {\n return child;\n }\n var state = this.$props.store.getState();\n var props = this.$props;\n var key = getKeyFromChildrenIndex(child, props.eventKey, i);\n var childProps = child.componentOptions.propsData || {};\n\n var isActive = key === state.activeKey[getEventKey(this.$props)];\n if (!childProps.disabled) {\n // manualRefēš„ę‰§č”Œé”ŗåŗäøčƒ½äæčƁļ¼Œä½æē”Økeyę˜ å°„refåœØthis.instanceArrayäø­ēš„位ē½®\n this.instanceArrayKeyIndexMap[key] = Object.keys(this.instanceArrayKeyIndexMap).length;\n }\n var childListeners = getEvents(child);\n var newChildProps = {\n props: _extends({\n mode: childProps.mode || props.mode,\n level: props.level,\n inlineIndent: props.inlineIndent,\n renderMenuItem: this.renderMenuItem,\n rootPrefixCls: props.prefixCls,\n index: i,\n parentMenu: props.parentMenu,\n // customized ref function, need to be invoked manually in child's componentDidMount\n manualRef: childProps.disabled ? noop : saveRef.bind(this, key),\n eventKey: key,\n active: !childProps.disabled && isActive,\n multiple: props.multiple,\n openTransitionName: this.getOpenTransitionName(),\n openAnimation: props.openAnimation,\n subMenuOpenDelay: props.subMenuOpenDelay,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n builtinPlacements: props.builtinPlacements,\n itemIcon: this.getIcon(child, 'itemIcon') || this.getIcon(this, 'itemIcon'),\n expandIcon: this.getIcon(child, 'expandIcon') || this.getIcon(this, 'expandIcon')\n }, extraProps),\n on: {\n click: function click(e) {\n (childListeners.click || noop)(e);\n _this.onClick(e);\n },\n itemHover: this.onItemHover,\n openChange: this.onOpenChange,\n deselect: this.onDeselect,\n // destroy: this.onDestroy,\n select: this.onSelect\n }\n };\n // ref: https://github.com/ant-design/ant-design/issues/13943\n if (props.mode === 'inline' || isMobileDevice()) {\n newChildProps.props.triggerSubMenuAction = 'click';\n }\n return cloneElement(child, newChildProps);\n },\n renderMenuItem: function renderMenuItem(c, i, subMenuKey) {\n if (!c) {\n return null;\n }\n var state = this.$props.store.getState();\n var extraProps = {\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n triggerSubMenuAction: this.triggerSubMenuAction,\n isRootMenu: false,\n subMenuKey: subMenuKey\n };\n return this.renderCommonMenuItem(c, i, extraProps);\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n\n var props = _objectWithoutProperties(this.$props, []);\n\n var eventKey = props.eventKey,\n prefixCls = props.prefixCls,\n visible = props.visible,\n level = props.level,\n mode = props.mode,\n theme = props.theme;\n\n this.instanceArray = [];\n this.instanceArrayKeyIndexMap = {};\n var className = classNames(props.prefixCls, props.prefixCls + '-' + props.mode);\n var domWrapProps = {\n props: {\n tag: 'ul',\n // hiddenClassName: `${prefixCls}-hidden`,\n visible: visible,\n prefixCls: prefixCls,\n level: level,\n mode: mode,\n theme: theme,\n overflowedIndicator: getComponentFromProp(this, 'overflowedIndicator')\n },\n attrs: {\n role: props.role || 'menu'\n },\n 'class': className,\n // Otherwise, the propagated click event will trigger another onClick\n on: omit(getListeners(this), ['click'])\n };\n // if (props.id) {\n // domProps.id = props.id\n // }\n if (props.focusable) {\n domWrapProps.attrs.tabIndex = '0';\n domWrapProps.on.keydown = this.onKeyDown;\n }\n return (\n // ESLint is not smart enough to know that the type of `children` was checked.\n /* eslint-disable */\n h(\n DOMWrap,\n domWrapProps,\n [props.children.map(function (c, i) {\n return _this2.renderMenuItem(c, i, eventKey || '0-menu-');\n })]\n )\n /*eslint -enable */\n\n );\n }\n};\n\nexport default connect()(SubPopupMenu);","import PropTypes from '../_util/vue-types';\nexport default {\n prefixCls: PropTypes.string.def('rc-menu'),\n focusable: PropTypes.bool.def(true),\n multiple: PropTypes.bool,\n defaultActiveFirst: PropTypes.bool,\n visible: PropTypes.bool.def(true),\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).def([]),\n defaultOpenKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).def([]),\n openKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']).def('vertical'),\n triggerSubMenuAction: PropTypes.string.def('hover'),\n subMenuOpenDelay: PropTypes.number.def(0.1),\n subMenuCloseDelay: PropTypes.number.def(0.1),\n level: PropTypes.number.def(1),\n inlineIndent: PropTypes.number.def(24),\n theme: PropTypes.oneOf(['light', 'dark']).def('light'),\n getPopupContainer: PropTypes.func,\n openTransitionName: PropTypes.string,\n forceSubMenuRender: PropTypes.bool,\n selectable: PropTypes.bool,\n isRootMenu: PropTypes.bool.def(true),\n builtinPlacements: PropTypes.object.def(function () {\n return {};\n }),\n itemIcon: PropTypes.any,\n expandIcon: PropTypes.any,\n overflowedIndicator: PropTypes.any\n};","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport { Provider, create } from '../_util/store';\nimport { default as SubPopupMenu, getActiveKey } from './SubPopupMenu';\nimport BaseMixin from '../_util/BaseMixin';\nimport hasProp, { getOptionProps, getComponentFromProp, filterEmpty, getListeners } from '../_util/props-util';\nimport commonPropsType from './commonPropsType';\n\nvar Menu = {\n name: 'Menu',\n props: _extends({}, commonPropsType, {\n selectable: PropTypes.bool.def(true)\n }),\n mixins: [BaseMixin],\n\n data: function data() {\n var props = getOptionProps(this);\n var selectedKeys = props.defaultSelectedKeys;\n var openKeys = props.defaultOpenKeys;\n if ('selectedKeys' in props) {\n selectedKeys = props.selectedKeys || [];\n }\n if ('openKeys' in props) {\n openKeys = props.openKeys || [];\n }\n\n this.store = create({\n selectedKeys: selectedKeys,\n openKeys: openKeys,\n activeKey: {\n '0-menu-': getActiveKey(_extends({}, props, { children: this.$slots['default'] || [] }), props.activeKey)\n }\n });\n\n // this.isRootMenu = true // å£°ę˜ŽåœØpropsäøŠ\n return {};\n },\n mounted: function mounted() {\n this.updateMiniStore();\n },\n updated: function updated() {\n this.updateMiniStore();\n },\n\n methods: {\n onSelect: function onSelect(selectInfo) {\n var props = this.$props;\n if (props.selectable) {\n // root menu\n var selectedKeys = this.store.getState().selectedKeys;\n var selectedKey = selectInfo.key;\n if (props.multiple) {\n selectedKeys = selectedKeys.concat([selectedKey]);\n } else {\n selectedKeys = [selectedKey];\n }\n if (!hasProp(this, 'selectedKeys')) {\n this.store.setState({\n selectedKeys: selectedKeys\n });\n }\n this.__emit('select', _extends({}, selectInfo, {\n selectedKeys: selectedKeys\n }));\n }\n },\n onClick: function onClick(e) {\n this.__emit('click', e);\n },\n\n // onKeyDown needs to be exposed as a instance method\n // e.g., in rc-select, we need to navigate menu item while\n // current active item is rc-select input box rather than the menu itself\n onKeyDown: function onKeyDown(e, callback) {\n this.$refs.innerMenu.getWrappedInstance().onKeyDown(e, callback);\n },\n onOpenChange: function onOpenChange(event) {\n var openKeys = this.store.getState().openKeys.concat();\n var changed = false;\n var processSingle = function processSingle(e) {\n var oneChanged = false;\n if (e.open) {\n oneChanged = openKeys.indexOf(e.key) === -1;\n if (oneChanged) {\n openKeys.push(e.key);\n }\n } else {\n var index = openKeys.indexOf(e.key);\n oneChanged = index !== -1;\n if (oneChanged) {\n openKeys.splice(index, 1);\n }\n }\n changed = changed || oneChanged;\n };\n if (Array.isArray(event)) {\n // batch change call\n event.forEach(processSingle);\n } else {\n processSingle(event);\n }\n if (changed) {\n if (!hasProp(this, 'openKeys')) {\n this.store.setState({ openKeys: openKeys });\n }\n this.__emit('openChange', openKeys);\n }\n },\n onDeselect: function onDeselect(selectInfo) {\n var props = this.$props;\n if (props.selectable) {\n var selectedKeys = this.store.getState().selectedKeys.concat();\n var selectedKey = selectInfo.key;\n var index = selectedKeys.indexOf(selectedKey);\n if (index !== -1) {\n selectedKeys.splice(index, 1);\n }\n if (!hasProp(this, 'selectedKeys')) {\n this.store.setState({\n selectedKeys: selectedKeys\n });\n }\n this.__emit('deselect', _extends({}, selectInfo, {\n selectedKeys: selectedKeys\n }));\n }\n },\n getOpenTransitionName: function getOpenTransitionName() {\n var props = this.$props;\n var transitionName = props.openTransitionName;\n var animationName = props.openAnimation;\n if (!transitionName && typeof animationName === 'string') {\n transitionName = props.prefixCls + '-open-' + animationName;\n }\n return transitionName;\n },\n updateMiniStore: function updateMiniStore() {\n var props = getOptionProps(this);\n if ('selectedKeys' in props) {\n this.store.setState({\n selectedKeys: props.selectedKeys || []\n });\n }\n if ('openKeys' in props) {\n this.store.setState({\n openKeys: props.openKeys || []\n });\n }\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var subPopupMenuProps = {\n props: _extends({}, props, {\n itemIcon: getComponentFromProp(this, 'itemIcon', props),\n expandIcon: getComponentFromProp(this, 'expandIcon', props),\n overflowedIndicator: getComponentFromProp(this, 'overflowedIndicator', props) || h('span', ['\\xB7\\xB7\\xB7']),\n openTransitionName: this.getOpenTransitionName(),\n parentMenu: this,\n children: filterEmpty(this.$slots['default'] || [])\n }),\n 'class': props.prefixCls + '-root',\n on: _extends({}, getListeners(this), {\n click: this.onClick,\n openChange: this.onOpenChange,\n deselect: this.onDeselect,\n select: this.onSelect\n }),\n ref: 'innerMenu'\n };\n return h(\n Provider,\n {\n attrs: { store: this.store }\n },\n [h(SubPopupMenu, subPopupMenuProps)]\n );\n }\n};\nexport default Menu;","// based on rc-menu 7.5.5\nimport Menu from './Menu';\nimport SubMenu from './SubMenu';\nimport MenuItem, { menuItemProps } from './MenuItem';\nimport MenuItemGroup from './MenuItemGroup';\nimport Divider from './Divider';\n\nexport { SubMenu, MenuItem as Item, menuItemProps as itemProps, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider };\n\nexport default Menu;","import _extends from 'babel-runtime/helpers/extends';\nimport _slicedToArray from 'babel-runtime/helpers/slicedToArray';\n// MIT License from https://github.com/kaimallea/isMobile\n\nvar applePhone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i; // Match 'Android' AND 'Mobile'\nvar androidTablet = /Android/i;\nvar amazonPhone = /\\bAndroid(?:.+)SD4930UR\\b/i;\nvar amazonTablet = /\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i; // Match 'Windows' AND 'ARM'\nvar otherBlackberry = /BlackBerry/i;\nvar otherBlackberry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i; // Match 'Mobile' AND 'Firefox'\n\nfunction match(regex, userAgent) {\n return regex.test(userAgent);\n}\n\nfunction isMobile(userAgent) {\n var ua = userAgent || (typeof navigator !== 'undefined' ? navigator.userAgent : '');\n\n // Facebook mobile app's integrated browser adds a bunch of strings that\n // match everything. Strip it out if it exists.\n var tmp = ua.split('[FBAN');\n if (typeof tmp[1] !== 'undefined') {\n var _tmp = tmp;\n\n var _tmp2 = _slicedToArray(_tmp, 1);\n\n ua = _tmp2[0];\n }\n\n // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n // iPhone\" string. Same probably happens on other tablet platforms.\n // This will confuse detection so strip it out if it exists.\n tmp = ua.split('Twitter');\n if (typeof tmp[1] !== 'undefined') {\n var _tmp3 = tmp;\n\n var _tmp4 = _slicedToArray(_tmp3, 1);\n\n ua = _tmp4[0];\n }\n\n var result = {\n apple: {\n phone: match(applePhone, ua) && !match(windowsPhone, ua),\n ipod: match(appleIpod, ua),\n tablet: !match(applePhone, ua) && match(appleTablet, ua) && !match(windowsPhone, ua),\n device: (match(applePhone, ua) || match(appleIpod, ua) || match(appleTablet, ua)) && !match(windowsPhone, ua)\n },\n amazon: {\n phone: match(amazonPhone, ua),\n tablet: !match(amazonPhone, ua) && match(amazonTablet, ua),\n device: match(amazonPhone, ua) || match(amazonTablet, ua)\n },\n android: {\n phone: !match(windowsPhone, ua) && match(amazonPhone, ua) || !match(windowsPhone, ua) && match(androidPhone, ua),\n tablet: !match(windowsPhone, ua) && !match(amazonPhone, ua) && !match(androidPhone, ua) && (match(amazonTablet, ua) || match(androidTablet, ua)),\n device: !match(windowsPhone, ua) && (match(amazonPhone, ua) || match(amazonTablet, ua) || match(androidPhone, ua) || match(androidTablet, ua)) || match(/\\bokhttp\\b/i, ua)\n },\n windows: {\n phone: match(windowsPhone, ua),\n tablet: match(windowsTablet, ua),\n device: match(windowsPhone, ua) || match(windowsTablet, ua)\n },\n other: {\n blackberry: match(otherBlackberry, ua),\n blackberry10: match(otherBlackberry10, ua),\n opera: match(otherOpera, ua),\n firefox: match(otherFirefox, ua),\n chrome: match(otherChrome, ua),\n device: match(otherBlackberry, ua) || match(otherBlackberry10, ua) || match(otherOpera, ua) || match(otherFirefox, ua) || match(otherChrome, ua)\n },\n\n // Additional\n any: null,\n phone: null,\n tablet: null\n };\n result.any = result.apple.device || result.android.device || result.windows.device || result.other.device;\n\n // excludes 'other' devices and ipods, targeting touchscreen phones\n result.phone = result.apple.phone || result.android.phone || result.windows.phone;\n result.tablet = result.apple.tablet || result.android.tablet || result.windows.tablet;\n\n return result;\n}\n\nvar defaultResult = _extends({}, isMobile(), {\n isMobile: isMobile\n});\n\nexport default defaultResult;","import _typeof from 'babel-runtime/helpers/typeof';\nimport isMobile from './utils/isMobile';\n\nexport function noop() {}\n\nexport function getKeyFromChildrenIndex(child, menuEventKey, index) {\n var prefix = menuEventKey || '';\n return child.key === undefined ? prefix + 'item_' + index : child.key;\n}\n\nexport function getMenuIdFromSubMenuEventKey(eventKey) {\n return eventKey + '-menu-';\n}\n\nexport function loopMenuItem(children, cb) {\n var index = -1;\n children.forEach(function (c) {\n index++;\n if (c && c.type && c.type.isMenuItemGroup) {\n c.$slots['default'].forEach(function (c2) {\n index++;\n c.componentOptions && cb(c2, index);\n });\n } else {\n c.componentOptions && cb(c, index);\n }\n });\n}\n\nexport function loopMenuItemRecursively(children, keys, ret) {\n if (!children || ret.find) {\n return;\n }\n children.forEach(function (c) {\n if (ret.find) {\n return;\n }\n if (c.data && c.data.slot && c.data.slot !== 'default') {\n return;\n }\n if (c && c.componentOptions) {\n var options = c.componentOptions.Ctor.options;\n if (!options || !(options.isSubMenu || options.isMenuItem || options.isMenuItemGroup)) {\n return;\n }\n if (keys.indexOf(c.key) !== -1) {\n ret.find = true;\n } else if (c.componentOptions.children) {\n loopMenuItemRecursively(c.componentOptions.children, keys, ret);\n }\n }\n });\n}\n\nexport var menuAllProps = {\n props: ['defaultSelectedKeys', 'selectedKeys', 'defaultOpenKeys', 'openKeys', 'mode', 'getPopupContainer', 'openTransitionName', 'openAnimation', 'subMenuOpenDelay', 'subMenuCloseDelay', 'forceSubMenuRender', 'triggerSubMenuAction', 'level', 'selectable', 'multiple', 'visible', 'focusable', 'defaultActiveFirst', 'prefixCls', 'inlineIndent', 'parentMenu', 'title', 'rootPrefixCls', 'eventKey', 'active', 'popupAlign', 'popupOffset', 'isOpen', 'renderMenuItem', 'manualRef', 'subMenuKey', 'disabled', 'index', 'isSelected', 'store', 'activeKey', 'builtinPlacements', 'overflowedIndicator',\n\n // the following keys found need to be removed from test regression\n 'attribute', 'value', 'popupClassName', 'inlineCollapsed', 'menu', 'theme', 'itemIcon', 'expandIcon'],\n on: ['select', 'deselect', 'destroy', 'openChange', 'itemHover', 'titleMouseenter', 'titleMouseleave', 'titleClick']\n};\n\n// ref: https://github.com/ant-design/ant-design/issues/14007\n// ref: https://bugs.chromium.org/p/chromium/issues/detail?id=360889\n// getBoundingClientRect return the full precision value, which is\n// not the same behavior as on chrome. Set the precision to 6 to\n// unify their behavior\nexport var getWidth = function getWidth(elem) {\n var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;\n if (width) {\n width = +width.toFixed(6);\n }\n return width || 0;\n};\n\nexport var setStyle = function setStyle(elem, styleProperty, value) {\n if (elem && _typeof(elem.style) === 'object') {\n elem.style[styleProperty] = value;\n }\n};\n\nexport var isMobileDevice = function isMobileDevice() {\n return isMobile.any;\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport { getStyle, getComponentFromProp, getListeners } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\n\nfunction noop() {}\n\nexport default {\n mixins: [BaseMixin],\n props: {\n duration: PropTypes.number.def(1.5),\n closable: PropTypes.bool,\n prefixCls: PropTypes.string,\n update: PropTypes.bool,\n closeIcon: PropTypes.any\n },\n watch: {\n duration: function duration() {\n this.restartCloseTimer();\n }\n },\n\n mounted: function mounted() {\n this.startCloseTimer();\n },\n updated: function updated() {\n if (this.update) {\n this.restartCloseTimer();\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCloseTimer();\n this.willDestroy = true; // beforeDestroy调ē”Ø后依ē„¶ä¼šč§¦å‘onMouseleaveäŗ‹ä»¶\n },\n\n methods: {\n close: function close(e) {\n if (e) {\n e.stopPropagation();\n }\n this.clearCloseTimer();\n this.__emit('close');\n },\n startCloseTimer: function startCloseTimer() {\n var _this = this;\n\n this.clearCloseTimer();\n if (!this.willDestroy && this.duration) {\n this.closeTimer = setTimeout(function () {\n _this.close();\n }, this.duration * 1000);\n }\n },\n clearCloseTimer: function clearCloseTimer() {\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n },\n restartCloseTimer: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n },\n\n render: function render() {\n var _className;\n\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n closable = this.closable,\n clearCloseTimer = this.clearCloseTimer,\n startCloseTimer = this.startCloseTimer,\n $slots = this.$slots,\n close = this.close;\n\n var componentClass = prefixCls + '-notice';\n var className = (_className = {}, _defineProperty(_className, '' + componentClass, 1), _defineProperty(_className, componentClass + '-closable', closable), _className);\n var style = getStyle(this);\n var closeIcon = getComponentFromProp(this, 'closeIcon');\n return h(\n 'div',\n {\n 'class': className,\n style: style || { right: '50%' },\n on: {\n 'mouseenter': clearCloseTimer,\n 'mouseleave': startCloseTimer,\n 'click': getListeners(this).click || noop\n }\n },\n [h(\n 'div',\n { 'class': componentClass + '-content' },\n [$slots['default']]\n ), closable ? h(\n 'a',\n {\n attrs: { tabIndex: '0' },\n on: {\n 'click': close\n },\n 'class': componentClass + '-close' },\n [closeIcon || h('span', { 'class': componentClass + '-close-x' })]\n ) : null]\n );\n }\n};","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport Vue from 'vue';\nimport PropTypes from '../_util/vue-types';\nimport { getStyle, getComponentFromProp } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\nimport createChainedFunction from '../_util/createChainedFunction';\nimport getTransitionProps from '../_util/getTransitionProps';\nimport Notice from './Notice';\nimport Base from '../base';\n\nfunction noop() {}\n\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n return 'rcNotification_' + now + '_' + seed++;\n}\n\nvar Notification = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string.def('rc-notification'),\n transitionName: PropTypes.string,\n animation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).def('fade'),\n maxCount: PropTypes.number,\n closeIcon: PropTypes.any\n },\n data: function data() {\n return {\n notices: []\n };\n },\n\n methods: {\n getTransitionName: function getTransitionName() {\n var props = this.$props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n },\n add: function add(notice) {\n var key = notice.key = notice.key || getUuid();\n var maxCount = this.$props.maxCount;\n\n this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, notice);\n } else {\n if (maxCount && notices.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n notice.updateKey = updatedNotices[0].updateKey || updatedNotices[0].key;\n updatedNotices.shift();\n }\n updatedNotices.push(notice);\n }\n return {\n notices: updatedNotices\n };\n });\n },\n remove: function remove(key) {\n this.setState(function (previousState) {\n return {\n notices: previousState.notices.filter(function (notice) {\n return notice.key !== key;\n })\n };\n });\n }\n },\n\n render: function render(h) {\n var _this = this;\n\n var prefixCls = this.prefixCls,\n notices = this.notices,\n remove = this.remove,\n getTransitionName = this.getTransitionName;\n\n var transitionProps = getTransitionProps(getTransitionName());\n var noticeNodes = notices.map(function (notice, index) {\n var update = Boolean(index === notices.length - 1 && notice.updateKey);\n var key = notice.updateKey ? notice.updateKey : notice.key;\n\n var content = notice.content,\n duration = notice.duration,\n closable = notice.closable,\n onClose = notice.onClose,\n style = notice.style,\n className = notice['class'];\n\n var close = createChainedFunction(remove.bind(_this, notice.key), onClose);\n var noticeProps = {\n props: {\n prefixCls: prefixCls,\n duration: duration,\n closable: closable,\n update: update,\n closeIcon: getComponentFromProp(_this, 'closeIcon')\n },\n on: {\n close: close,\n click: notice.onClick || noop\n },\n style: style,\n 'class': className,\n key: key\n };\n return h(\n Notice,\n noticeProps,\n [typeof content === 'function' ? content(h) : content]\n );\n });\n var className = _defineProperty({}, prefixCls, 1);\n var style = getStyle(this);\n return h(\n 'div',\n {\n 'class': className,\n style: style || {\n top: '65px',\n left: '50%'\n }\n },\n [h(\n 'transition-group',\n transitionProps,\n [noticeNodes]\n )]\n );\n }\n};\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref = properties || {},\n getContainer = _ref.getContainer,\n style = _ref.style,\n className = _ref['class'],\n props = _objectWithoutProperties(_ref, ['getContainer', 'style', 'class']);\n\n var div = document.createElement('div');\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n var V = Base.Vue || Vue;\n new V({\n el: div,\n mounted: function mounted() {\n var self = this;\n this.$nextTick(function () {\n callback({\n notice: function notice(noticeProps) {\n self.$refs.notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n self.$refs.notification.remove(key);\n },\n\n component: self,\n destroy: function destroy() {\n self.$destroy();\n self.$el.parentNode.removeChild(self.$el);\n }\n });\n });\n },\n render: function render() {\n var h = arguments[0];\n\n var p = {\n props: props,\n ref: 'notification',\n style: style,\n 'class': className\n };\n return h(Notification, p);\n }\n });\n};\n\nexport default Notification;","// based on rc-notification 3.3.1\nimport Notification from './Notification';\nexport default Notification;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport classNames from 'classnames';\n\nexport default {\n name: 'Pager',\n props: {\n rootPrefixCls: PropTypes.string,\n page: PropTypes.number,\n active: PropTypes.bool,\n last: PropTypes.bool,\n locale: PropTypes.object,\n showTitle: PropTypes.bool,\n itemRender: {\n type: Function,\n 'default': function _default() {}\n }\n },\n methods: {\n handleClick: function handleClick() {\n this.$emit('click', this.page);\n },\n handleKeyPress: function handleKeyPress(event) {\n this.$emit('keypress', event, this.handleClick, this.page);\n }\n },\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n\n var props = this.$props;\n var prefixCls = props.rootPrefixCls + '-item';\n var cls = classNames(prefixCls, prefixCls + '-' + props.page, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-active', props.active), _defineProperty(_classNames, prefixCls + '-disabled', !props.page), _classNames));\n\n return h(\n 'li',\n {\n 'class': cls,\n on: {\n 'click': this.handleClick,\n 'keypress': this.handleKeyPress\n },\n attrs: {\n title: this.showTitle ? this.page : null,\n tabIndex: '0'\n }\n },\n [this.itemRender(this.page, 'page', h('a', [this.page]))]\n );\n }\n};","export default {\n ZERO: 48,\n NINE: 57,\n\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../_util/vue-types';\nimport KEYCODE from './KeyCode';\nimport BaseMixin from '../_util/BaseMixin';\n\nexport default {\n mixins: [BaseMixin],\n props: {\n disabled: PropTypes.bool,\n changeSize: PropTypes.func,\n quickGo: PropTypes.func,\n selectComponentClass: PropTypes.any,\n current: PropTypes.number,\n pageSizeOptions: PropTypes.array.def(['10', '20', '30', '40']),\n pageSize: PropTypes.number,\n buildOptionText: PropTypes.func,\n locale: PropTypes.object,\n rootPrefixCls: PropTypes.string,\n selectPrefixCls: PropTypes.string,\n goButton: PropTypes.any\n },\n data: function data() {\n return {\n goInputText: ''\n };\n },\n\n methods: {\n getValidValue: function getValidValue() {\n var goInputText = this.goInputText,\n current = this.current;\n\n return !goInputText || isNaN(goInputText) ? current : Number(goInputText);\n },\n defaultBuildOptionText: function defaultBuildOptionText(opt) {\n return opt.value + ' ' + this.locale.items_per_page;\n },\n handleChange: function handleChange(e) {\n var _e$target = e.target,\n value = _e$target.value,\n composing = _e$target.composing;\n\n if (e.isComposing || composing || this.goInputText === value) return;\n this.setState({\n goInputText: value\n });\n },\n handleBlur: function handleBlur(e) {\n var _$props = this.$props,\n goButton = _$props.goButton,\n quickGo = _$props.quickGo,\n rootPrefixCls = _$props.rootPrefixCls;\n\n if (goButton) {\n return;\n }\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(rootPrefixCls + '-prev') >= 0 || e.relatedTarget.className.indexOf(rootPrefixCls + '-next') >= 0)) {\n return;\n }\n quickGo(this.getValidValue());\n },\n go: function go(e) {\n var goInputText = this.goInputText;\n\n if (goInputText === '') {\n return;\n }\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n // https://github.com/vueComponent/ant-design-vue/issues/1316\n this.quickGo(this.getValidValue());\n this.setState({\n goInputText: ''\n });\n }\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var rootPrefixCls = this.rootPrefixCls,\n locale = this.locale,\n changeSize = this.changeSize,\n quickGo = this.quickGo,\n goButton = this.goButton,\n Select = this.selectComponentClass,\n defaultBuildOptionText = this.defaultBuildOptionText,\n selectPrefixCls = this.selectPrefixCls,\n pageSize = this.pageSize,\n pageSizeOptions = this.pageSizeOptions,\n goInputText = this.goInputText,\n disabled = this.disabled;\n\n var prefixCls = rootPrefixCls + '-options';\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n\n if (!changeSize && !quickGo) {\n return null;\n }\n\n if (changeSize && Select) {\n var buildOptionText = this.buildOptionText || defaultBuildOptionText;\n var options = pageSizeOptions.map(function (opt, i) {\n return h(\n Select.Option,\n { key: i, attrs: { value: opt }\n },\n [buildOptionText({ value: opt })]\n );\n });\n\n changeSelect = h(\n Select,\n {\n attrs: {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n\n optionLabelProp: 'children',\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n }\n },\n 'class': prefixCls + '-size-changer', on: {\n 'change': function change(value) {\n return _this.changeSize(Number(value));\n }\n }\n },\n [options]\n );\n }\n\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? h(\n 'button',\n {\n attrs: { type: 'button', disabled: disabled },\n on: {\n 'click': this.go,\n 'keyup': this.go\n }\n },\n [locale.jump_to_confirm]\n ) : h(\n 'span',\n {\n on: {\n 'click': this.go,\n 'keyup': this.go\n }\n },\n [goButton]\n );\n }\n goInput = h(\n 'div',\n { 'class': prefixCls + '-quick-jumper' },\n [locale.jump_to, h('input', _mergeJSXProps([{\n attrs: {\n disabled: disabled,\n type: 'text'\n },\n domProps: {\n 'value': goInputText\n },\n on: {\n 'input': this.handleChange,\n 'keyup': this.go,\n 'blur': this.handleBlur\n }\n }, {\n directives: [{\n name: 'ant-input'\n }]\n }])), locale.page, gotoButton]\n );\n }\n\n return h(\n 'li',\n { 'class': '' + prefixCls },\n [changeSelect, goInput]\n );\n }\n};","export default {\n // Options.jsx\n items_per_page: 'ę”/锵',\n jump_to: 'č·³č‡³',\n jump_to_confirm: 'ē”®å®š',\n page: '锵',\n\n // Pagination.jsx\n prev_page: 'äøŠäø€é”µ',\n next_page: 'äø‹äø€é”µ',\n prev_5: '向前 5 锵',\n next_5: '向后 5 锵',\n prev_3: '向前 3 锵',\n next_3: '向后 3 锵'\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { hasProp, getComponentFromProp, getOptionProps } from '../_util/props-util';\nimport Pager from './Pager';\nimport Options from './Options';\nimport LOCALE from './locale/zh_CN';\nimport KEYCODE from './KeyCode';\n\nfunction noop() {}\n\n// ę˜Æ否ę˜Æę­£ę•“ę•°\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n\nfunction defaultItemRender(page, type, element) {\n return element;\n}\n\nfunction calculatePage(p, state, props) {\n var pageSize = p;\n if (typeof pageSize === 'undefined') {\n pageSize = state.statePageSize;\n }\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\n\nexport default {\n name: 'Pagination',\n mixins: [BaseMixin],\n model: {\n prop: 'current',\n event: 'change.current'\n },\n props: {\n disabled: PropTypes.bool,\n prefixCls: PropTypes.string.def('rc-pagination'),\n selectPrefixCls: PropTypes.string.def('rc-select'),\n current: PropTypes.number,\n defaultCurrent: PropTypes.number.def(1),\n total: PropTypes.number.def(0),\n pageSize: PropTypes.number,\n defaultPageSize: PropTypes.number.def(10),\n hideOnSinglePage: PropTypes.bool.def(false),\n showSizeChanger: PropTypes.bool.def(false),\n showLessItems: PropTypes.bool.def(false),\n // showSizeChange: PropTypes.func.def(noop),\n selectComponentClass: PropTypes.any,\n showPrevNextJumpers: PropTypes.bool.def(true),\n showQuickJumper: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]).def(false),\n showTitle: PropTypes.bool.def(true),\n pageSizeOptions: PropTypes.arrayOf(PropTypes.string),\n buildOptionText: PropTypes.func,\n showTotal: PropTypes.func,\n simple: PropTypes.bool,\n locale: PropTypes.object.def(LOCALE),\n itemRender: PropTypes.func.def(defaultItemRender),\n prevIcon: PropTypes.any,\n nextIcon: PropTypes.any,\n jumpPrevIcon: PropTypes.any,\n jumpNextIcon: PropTypes.any\n },\n data: function data() {\n var props = getOptionProps(this);\n var hasOnChange = this.onChange !== noop;\n var hasCurrent = 'current' in props;\n if (hasCurrent && !hasOnChange) {\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.'); // eslint-disable-line\n }\n var current = this.defaultCurrent;\n if ('current' in props) {\n current = this.current;\n }\n\n var pageSize = this.defaultPageSize;\n if ('pageSize' in props) {\n pageSize = this.pageSize;\n }\n\n current = Math.min(current, calculatePage(pageSize, undefined, props));\n\n return {\n stateCurrent: current,\n stateCurrentInputValue: current,\n statePageSize: pageSize\n };\n },\n\n watch: {\n current: function current(val) {\n this.setState({\n stateCurrent: val,\n stateCurrentInputValue: val\n });\n },\n pageSize: function pageSize(val) {\n var newState = {};\n var current = this.stateCurrent;\n var newCurrent = calculatePage(val, this.$data, this.$props);\n current = current > newCurrent ? newCurrent : current;\n if (!hasProp(this, 'current')) {\n newState.stateCurrent = current;\n newState.stateCurrentInputValue = current;\n }\n newState.statePageSize = val;\n this.setState(newState);\n },\n stateCurrent: function stateCurrent(val, oldValue) {\n var _this = this;\n\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n this.$nextTick(function () {\n if (_this.$refs.paginationNode) {\n var lastCurrentNode = _this.$refs.paginationNode.querySelector('.' + _this.prefixCls + '-item-' + oldValue);\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n });\n },\n total: function total() {\n var newState = {};\n var newCurrent = calculatePage(this.pageSize, this.$data, this.$props);\n if (hasProp(this, 'current')) {\n var current = Math.min(this.current, newCurrent);\n newState.stateCurrent = current;\n newState.stateCurrentInputValue = current;\n } else {\n var _current = this.stateCurrent;\n if (_current === 0 && newCurrent > 0) {\n _current = 1;\n } else {\n _current = Math.min(this.stateCurrent, newCurrent);\n }\n newState.stateCurrent = _current;\n }\n this.setState(newState);\n }\n },\n methods: {\n getJumpPrevPage: function getJumpPrevPage() {\n return Math.max(1, this.stateCurrent - (this.showLessItems ? 3 : 5));\n },\n getJumpNextPage: function getJumpNextPage() {\n return Math.min(calculatePage(undefined, this.$data, this.$props), this.stateCurrent + (this.showLessItems ? 3 : 5));\n },\n getItemIcon: function getItemIcon(icon) {\n var h = this.$createElement;\n var prefixCls = this.$props.prefixCls;\n\n var iconNode = getComponentFromProp(this, icon, this.$props) || h('a', { 'class': prefixCls + '-item-link' });\n return iconNode;\n },\n getValidValue: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.$data, this.$props);\n var stateCurrentInputValue = this.$data.stateCurrentInputValue;\n\n var value = void 0;\n if (inputValue === '') {\n value = inputValue;\n } else if (isNaN(Number(inputValue))) {\n value = stateCurrentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n return value;\n },\n isValid: function isValid(page) {\n return isInteger(page) && page !== this.stateCurrent;\n },\n shouldDisplayQuickJumper: function shouldDisplayQuickJumper() {\n var _$props = this.$props,\n showQuickJumper = _$props.showQuickJumper,\n pageSize = _$props.pageSize,\n total = _$props.total;\n\n if (total <= pageSize) {\n return false;\n }\n return showQuickJumper;\n },\n\n // calculatePage (p) {\n // let pageSize = p\n // if (typeof pageSize === 'undefined') {\n // pageSize = this.statePageSize\n // }\n // return Math.floor((this.total - 1) / pageSize) + 1\n // },\n handleKeyDown: function handleKeyDown(event) {\n if (event.keyCode === KEYCODE.ARROW_UP || event.keyCode === KEYCODE.ARROW_DOWN) {\n event.preventDefault();\n }\n },\n handleKeyUp: function handleKeyUp(e) {\n if (e.isComposing || e.target.composing) return;\n var value = this.getValidValue(e);\n var stateCurrentInputValue = this.stateCurrentInputValue;\n\n if (value !== stateCurrentInputValue) {\n this.setState({\n stateCurrentInputValue: value\n });\n }\n\n if (e.keyCode === KEYCODE.ENTER) {\n this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n this.handleChange(value + 1);\n }\n },\n changePageSize: function changePageSize(size) {\n var current = this.stateCurrent;\n var preCurrent = current;\n var newCurrent = calculatePage(size, this.$data, this.$props);\n current = current > newCurrent ? newCurrent : current;\n // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n if (newCurrent === 0) {\n current = this.stateCurrent;\n }\n if (typeof size === 'number') {\n if (!hasProp(this, 'pageSize')) {\n this.setState({\n statePageSize: size\n });\n }\n if (!hasProp(this, 'current')) {\n this.setState({\n stateCurrent: current,\n stateCurrentInputValue: current\n });\n }\n }\n this.$emit('update:pageSize', size);\n this.$emit('showSizeChange', current, size);\n if (current !== preCurrent) {\n this.$emit('change.current', current, size);\n }\n },\n handleChange: function handleChange(p) {\n var disabled = this.$props.disabled;\n\n var page = p;\n if (this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, this.$data, this.$props);\n if (page > currentPage) {\n page = currentPage;\n } else if (page < 1) {\n page = 1;\n }\n if (!hasProp(this, 'current')) {\n this.setState({\n stateCurrent: page,\n stateCurrentInputValue: page\n });\n }\n // this.$emit('input', page)\n this.$emit('change.current', page, this.statePageSize);\n this.$emit('change', page, this.statePageSize);\n return page;\n }\n return this.stateCurrent;\n },\n prev: function prev() {\n if (this.hasPrev()) {\n this.handleChange(this.stateCurrent - 1);\n }\n },\n next: function next() {\n if (this.hasNext()) {\n this.handleChange(this.stateCurrent + 1);\n }\n },\n jumpPrev: function jumpPrev() {\n this.handleChange(this.getJumpPrevPage());\n },\n jumpNext: function jumpNext() {\n this.handleChange(this.getJumpNextPage());\n },\n hasPrev: function hasPrev() {\n return this.stateCurrent > 1;\n },\n hasNext: function hasNext() {\n return this.stateCurrent < calculatePage(undefined, this.$data, this.$props);\n },\n runIfEnter: function runIfEnter(event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n\n callback.apply(undefined, _toConsumableArray(restParams));\n }\n },\n runIfEnterPrev: function runIfEnterPrev(event) {\n this.runIfEnter(event, this.prev);\n },\n runIfEnterNext: function runIfEnterNext(event) {\n this.runIfEnter(event, this.next);\n },\n runIfEnterJumpPrev: function runIfEnterJumpPrev(event) {\n this.runIfEnter(event, this.jumpPrev);\n },\n runIfEnterJumpNext: function runIfEnterJumpNext(event) {\n this.runIfEnter(event, this.jumpNext);\n },\n handleGoTO: function handleGoTO(event) {\n if (event.keyCode === KEYCODE.ENTER || event.type === 'click') {\n this.handleChange(this.stateCurrentInputValue);\n }\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n disabled = _$props2.disabled;\n\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n\n if (this.hideOnSinglePage === true && this.total <= this.statePageSize) {\n return null;\n }\n var props = this.$props;\n var locale = this.locale;\n\n var allPages = calculatePage(undefined, this.$data, this.$props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = this.showQuickJumper && this.showQuickJumper.goButton;\n var pageBufferSize = this.showLessItems ? 1 : 2;\n var stateCurrent = this.stateCurrent,\n statePageSize = this.statePageSize;\n\n var prevPage = stateCurrent - 1 > 0 ? stateCurrent - 1 : 0;\n var nextPage = stateCurrent + 1 < allPages ? stateCurrent + 1 : allPages;\n\n if (this.simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = h(\n 'button',\n {\n attrs: { type: 'button' },\n on: {\n 'click': this.handleGoTO,\n 'keyup': this.handleGoTO\n }\n },\n [locale.jump_to_confirm]\n );\n } else {\n gotoButton = h(\n 'span',\n {\n on: {\n 'click': this.handleGoTO,\n 'keyup': this.handleGoTO\n }\n },\n [goButton]\n );\n }\n gotoButton = h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? '' + locale.jump_to + this.stateCurrent + '/' + allPages : null\n },\n 'class': prefixCls + '-simple-pager'\n },\n [gotoButton]\n );\n }\n var hasPrev = this.hasPrev();\n var hasNext = this.hasNext();\n return h(\n 'ul',\n { 'class': prefixCls + ' ' + prefixCls + '-simple' },\n [h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.prev_page : null,\n\n tabIndex: hasPrev ? 0 : null,\n\n 'aria-disabled': !this.hasPrev()\n },\n on: {\n 'click': this.prev,\n 'keypress': this.runIfEnterPrev\n },\n\n 'class': (hasPrev ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-prev' },\n [this.itemRender(prevPage, 'prev', this.getItemIcon('prevIcon'))]\n ), h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? stateCurrent + '/' + allPages : null\n },\n 'class': prefixCls + '-simple-pager'\n },\n [h('input', _mergeJSXProps([{\n attrs: {\n type: 'text',\n\n size: '3'\n },\n domProps: {\n 'value': this.stateCurrentInputValue\n },\n on: {\n 'keydown': this.handleKeyDown,\n 'keyup': this.handleKeyUp,\n 'input': this.handleKeyUp\n }\n }, {\n directives: [{\n name: 'ant-input'\n }]\n }])), h(\n 'span',\n { 'class': prefixCls + '-slash' },\n ['\\uFF0F']\n ), allPages]\n ), h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.next_page : null,\n\n tabIndex: this.hasNext ? 0 : null,\n\n 'aria-disabled': !this.hasNext()\n },\n on: {\n 'click': this.next,\n 'keypress': this.runIfEnterNext\n },\n\n 'class': (hasNext ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-next' },\n [this.itemRender(nextPage, 'next', this.getItemIcon('nextIcon'))]\n ), gotoButton]\n );\n }\n if (allPages <= 5 + pageBufferSize * 2) {\n var pagerProps = {\n props: {\n locale: locale,\n rootPrefixCls: prefixCls,\n showTitle: props.showTitle,\n itemRender: props.itemRender\n },\n on: {\n click: this.handleChange,\n keypress: this.runIfEnter\n }\n };\n if (!allPages) {\n pagerList.push(h(Pager, _mergeJSXProps([pagerProps, { key: 'noPager', attrs: { page: allPages },\n 'class': prefixCls + '-disabled' }])));\n }\n for (var i = 1; i <= allPages; i++) {\n var active = stateCurrent === i;\n pagerList.push(h(Pager, _mergeJSXProps([pagerProps, { key: i, attrs: { page: i, active: active }\n }])));\n }\n } else {\n var prevItemTitle = this.showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = this.showLessItems ? locale.next_3 : locale.next_5;\n if (this.showPrevNextJumpers) {\n var jumpPrevClassString = prefixCls + '-jump-prev';\n if (props.jumpPrevIcon) {\n jumpPrevClassString += ' ' + prefixCls + '-jump-prev-custom-icon';\n }\n jumpPrev = h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? prevItemTitle : null,\n\n tabIndex: '0'\n },\n key: 'prev',\n on: {\n 'click': this.jumpPrev,\n 'keypress': this.runIfEnterJumpPrev\n },\n\n 'class': jumpPrevClassString\n },\n [this.itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon('jumpPrevIcon'))]\n );\n var jumpNextClassString = prefixCls + '-jump-next';\n if (props.jumpNextIcon) {\n jumpNextClassString += ' ' + prefixCls + '-jump-next-custom-icon';\n }\n jumpNext = h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? nextItemTitle : null,\n\n tabIndex: '0'\n },\n key: 'next', on: {\n 'click': this.jumpNext,\n 'keypress': this.runIfEnterJumpNext\n },\n\n 'class': jumpNextClassString\n },\n [this.itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon('jumpNextIcon'))]\n );\n }\n\n lastPager = h(Pager, {\n attrs: {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n\n page: allPages,\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: allPages });\n firstPager = h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: 1,\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: 1 });\n\n var left = Math.max(1, stateCurrent - pageBufferSize);\n var right = Math.min(stateCurrent + pageBufferSize, allPages);\n\n if (stateCurrent - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n\n if (allPages - stateCurrent <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n\n for (var _i = left; _i <= right; _i++) {\n var _active = stateCurrent === _i;\n pagerList.push(h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: _i,\n active: _active,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: _i }));\n }\n\n if (stateCurrent - 1 >= pageBufferSize * 2 && stateCurrent !== 1 + 2) {\n pagerList[0] = h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: left,\n\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: left, 'class': prefixCls + '-item-after-jump-prev' });\n pagerList.unshift(jumpPrev);\n }\n if (allPages - stateCurrent >= pageBufferSize * 2 && stateCurrent !== allPages - 2) {\n pagerList[pagerList.length - 1] = h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: right,\n\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: right, 'class': prefixCls + '-item-before-jump-next' });\n pagerList.push(jumpNext);\n }\n\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n\n var totalText = null;\n\n if (this.showTotal) {\n totalText = h(\n 'li',\n { 'class': prefixCls + '-total-text' },\n [this.showTotal(this.total, [this.total === 0 ? 0 : (stateCurrent - 1) * statePageSize + 1, stateCurrent * statePageSize > this.total ? this.total : stateCurrent * statePageSize])]\n );\n }\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n var buildOptionText = this.buildOptionText || this.$scopedSlots.buildOptionText;\n return h(\n 'ul',\n {\n 'class': (_ref = {}, _defineProperty(_ref, '' + prefixCls, true), _defineProperty(_ref, prefixCls + '-disabled', disabled), _ref),\n attrs: { unselectable: 'unselectable'\n },\n ref: 'paginationNode'\n },\n [totalText, h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.prev_page : null,\n\n tabIndex: prevDisabled ? null : 0,\n\n 'aria-disabled': prevDisabled\n },\n on: {\n 'click': this.prev,\n 'keypress': this.runIfEnterPrev\n },\n\n 'class': (!prevDisabled ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-prev' },\n [this.itemRender(prevPage, 'prev', this.getItemIcon('prevIcon'))]\n ), pagerList, h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.next_page : null,\n\n tabIndex: nextDisabled ? null : 0,\n\n 'aria-disabled': nextDisabled\n },\n on: {\n 'click': this.next,\n 'keypress': this.runIfEnterNext\n },\n\n 'class': (!nextDisabled ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-next' },\n [this.itemRender(nextPage, 'next', this.getItemIcon('nextIcon'))]\n ), h(Options, {\n attrs: {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: this.selectComponentClass,\n selectPrefixCls: this.selectPrefixCls,\n changeSize: this.showSizeChanger ? this.changePageSize : null,\n current: stateCurrent,\n pageSize: statePageSize,\n pageSizeOptions: this.pageSizeOptions,\n buildOptionText: buildOptionText || null,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }\n })]\n );\n }\n};","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '',\n\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages'\n};","function enhancer(Component) {\n return {\n mixins: [Component],\n updated: function updated() {\n var _this = this;\n\n var now = Date.now();\n var updated = false;\n\n Object.keys(this.paths).forEach(function (key) {\n var path = _this.paths[key];\n\n if (!path) {\n return;\n }\n\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n\n if (_this.prevTimeStamp && now - _this.prevTimeStamp < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n this.prevTimeStamp = Date.now();\n }\n }\n };\n}\n\nexport default enhancer;","import PropTypes from '../../_util/vue-types';\n\nexport var defaultProps = {\n // className: '',\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n // style: {},\n trailColor: '#D9D9D9',\n trailWidth: 1\n};\nvar mixedType = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\n\nexport var propTypes = {\n // className: PropTypes.string,\n percent: PropTypes.oneOfType([mixedType, PropTypes.arrayOf(mixedType)]),\n prefixCls: PropTypes.string,\n strokeColor: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.object])), PropTypes.object]),\n strokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n strokeWidth: mixedType,\n // style: PropTypes.object,\n trailColor: PropTypes.string,\n trailWidth: mixedType\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport PropTypes from '../../_util/vue-types';\nimport { initDefaultProps } from '../../_util/props-util';\nimport enhancer from './enhancer';\nimport { propTypes, defaultProps } from './types';\n\nvar circlePropTypes = _extends({}, propTypes, {\n gapPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n gapDegree: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.bool])\n});\n\nvar circleDefaultProps = _extends({}, defaultProps, {\n gapPosition: 'top'\n});\n\nVue.use(ref, { name: 'ant-ref' });\n\nvar gradientSeed = 0;\n\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\n\nfunction toArray(symArray) {\n return Array.isArray(symArray) ? symArray : [symArray];\n}\n\nfunction getPathStyles(offset, percent, strokeColor, strokeWidth) {\n var gapDegree = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var gapPosition = arguments[5];\n\n var radius = 50 - strokeWidth / 2;\n var beginPositionX = 0;\n var beginPositionY = -radius;\n var endPositionX = 0;\n var endPositionY = -2 * radius;\n switch (gapPosition) {\n case 'left':\n beginPositionX = -radius;\n beginPositionY = 0;\n endPositionX = 2 * radius;\n endPositionY = 0;\n break;\n case 'right':\n beginPositionX = radius;\n beginPositionY = 0;\n endPositionX = -2 * radius;\n endPositionY = 0;\n break;\n case 'bottom':\n beginPositionY = radius;\n endPositionY = 2 * radius;\n break;\n default:\n }\n var pathString = 'M 50,50 m ' + beginPositionX + ',' + beginPositionY + '\\n a ' + radius + ',' + radius + ' 0 1 1 ' + endPositionX + ',' + -endPositionY + '\\n a ' + radius + ',' + radius + ' 0 1 1 ' + -endPositionX + ',' + endPositionY;\n var len = Math.PI * 2 * radius;\n\n var pathStyle = {\n stroke: strokeColor,\n strokeDasharray: percent / 100 * (len - gapDegree) + 'px ' + len + 'px',\n strokeDashoffset: '-' + (gapDegree / 2 + offset / 100 * (len - gapDegree)) + 'px',\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s' // eslint-disable-line\n };\n\n return {\n pathString: pathString,\n pathStyle: pathStyle\n };\n}\n\nvar Circle = {\n props: initDefaultProps(circlePropTypes, circleDefaultProps),\n created: function created() {\n this.paths = {};\n this.gradientId = gradientSeed;\n gradientSeed += 1;\n },\n\n methods: {\n getStokeList: function getStokeList() {\n var _this = this;\n\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n percent = _$props.percent,\n strokeColor = _$props.strokeColor,\n strokeWidth = _$props.strokeWidth,\n strokeLinecap = _$props.strokeLinecap,\n gapDegree = _$props.gapDegree,\n gapPosition = _$props.gapPosition;\n\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var stroke = Object.prototype.toString.call(color) === '[object Object]' ? 'url(#' + prefixCls + '-gradient-' + _this.gradientId + ')' : '';\n\n var _getPathStyles = getPathStyles(stackPtg, ptg, color, strokeWidth, gapDegree, gapPosition),\n pathString = _getPathStyles.pathString,\n pathStyle = _getPathStyles.pathStyle;\n\n stackPtg += ptg;\n\n var pathProps = {\n key: index,\n attrs: {\n d: pathString,\n stroke: stroke,\n 'stroke-linecap': strokeLinecap,\n 'stroke-width': strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n 'fill-opacity': '0'\n },\n 'class': prefixCls + '-circle-path',\n style: pathStyle,\n directives: [{\n name: 'ant-ref',\n value: function value(c) {\n _this.paths[index] = c;\n }\n }]\n };\n return h('path', pathProps);\n });\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n strokeWidth = _$props2.strokeWidth,\n trailWidth = _$props2.trailWidth,\n gapDegree = _$props2.gapDegree,\n gapPosition = _$props2.gapPosition,\n trailColor = _$props2.trailColor,\n strokeLinecap = _$props2.strokeLinecap,\n strokeColor = _$props2.strokeColor,\n restProps = _objectWithoutProperties(_$props2, ['prefixCls', 'strokeWidth', 'trailWidth', 'gapDegree', 'gapPosition', 'trailColor', 'strokeLinecap', 'strokeColor']);\n\n var _getPathStyles2 = getPathStyles(0, 100, trailColor, strokeWidth, gapDegree, gapPosition),\n pathString = _getPathStyles2.pathString,\n pathStyle = _getPathStyles2.pathStyle;\n\n delete restProps.percent;\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return Object.prototype.toString.call(color) === '[object Object]';\n });\n var pathFirst = {\n attrs: {\n d: pathString,\n stroke: trailColor,\n 'stroke-linecap': strokeLinecap,\n 'stroke-width': trailWidth || strokeWidth,\n 'fill-opacity': '0'\n },\n 'class': prefixCls + '-circle-trail',\n style: pathStyle\n };\n\n return h(\n 'svg',\n _mergeJSXProps([{ 'class': prefixCls + '-circle', attrs: { viewBox: '0 0 100 100' }\n }, restProps]),\n [gradient && h('defs', [h(\n 'linearGradient',\n {\n attrs: {\n id: prefixCls + '-gradient-' + this.gradientId,\n x1: '100%',\n y1: '0%',\n x2: '0%',\n y2: '0%'\n }\n },\n [Object.keys(gradient).sort(function (a, b) {\n return stripPercentToNumber(a) - stripPercentToNumber(b);\n }).map(function (key, index) {\n return h('stop', { key: index, attrs: { offset: key, 'stop-color': gradient[key] }\n });\n })]\n )]), h('path', pathFirst), this.getStokeList().reverse()]\n );\n }\n};\n\nexport default enhancer(Circle);","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 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};","import Rate from './Rate';\nexport default Rate;","// based on rc-rate 2.5.0\nimport Rate from './src/';\nexport default Rate;","// 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 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\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};","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 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 _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport classNames from 'classnames';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { getOptionProps, getListeners } from '../../_util/props-util';\nimport addEventListener from '../../vc-util/Dom/addEventListener';\n\nexport default {\n name: 'Handle',\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n vertical: PropTypes.bool,\n offset: PropTypes.number,\n disabled: PropTypes.bool,\n min: PropTypes.number,\n max: PropTypes.number,\n value: PropTypes.number,\n tabIndex: PropTypes.number,\n className: PropTypes.string,\n reverse: PropTypes.bool\n // handleFocus: PropTypes.func.def(noop),\n // handleBlur: PropTypes.func.def(noop),\n },\n data: function data() {\n return {\n clickFocused: false\n };\n },\n mounted: function mounted() {\n // mouseup won't trigger if mouse moved out of handle\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n },\n\n methods: {\n setClickFocus: function setClickFocus(focused) {\n this.setState({ clickFocused: focused });\n },\n handleMouseUp: function handleMouseUp() {\n if (document.activeElement === this.$refs.handle) {\n this.setClickFocus(true);\n }\n },\n handleBlur: function handleBlur(e) {\n this.setClickFocus(false);\n this.__emit('blur', e);\n },\n handleKeyDown: function handleKeyDown() {\n this.setClickFocus(false);\n },\n clickFocus: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n },\n focus: function focus() {\n this.$refs.handle.focus();\n },\n blur: function blur() {\n this.$refs.handle.blur();\n },\n\n // when click can not focus in vue, use mousedown trigger focus\n handleMousedown: function handleMousedown(e) {\n this.focus();\n this.__emit('mousedown', e);\n }\n },\n render: function render() {\n var _ref, _ref2;\n\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n prefixCls = _getOptionProps.prefixCls,\n vertical = _getOptionProps.vertical,\n reverse = _getOptionProps.reverse,\n offset = _getOptionProps.offset,\n disabled = _getOptionProps.disabled,\n min = _getOptionProps.min,\n max = _getOptionProps.max,\n value = _getOptionProps.value,\n tabIndex = _getOptionProps.tabIndex;\n\n var className = classNames(this.$props.className, _defineProperty({}, prefixCls + '-handle-click-focused', this.clickFocused));\n\n var positionStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', offset + '%'), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, 'transform', 'translateY(+50%)'), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', offset + '%'), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, 'transform', 'translateX(' + (reverse ? '+' : '-') + '50%)'), _ref2);\n\n var ariaProps = {\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': !!disabled\n };\n var _tabIndex = tabIndex || 0;\n if (disabled || tabIndex === null) {\n _tabIndex = null;\n }\n\n var handleProps = {\n attrs: _extends({\n role: 'slider',\n tabIndex: _tabIndex\n }, ariaProps),\n 'class': className,\n on: _extends({}, getListeners(this), {\n blur: this.handleBlur,\n keydown: this.handleKeyDown,\n mousedown: this.handleMousedown\n }),\n ref: 'handle',\n style: positionStyle\n };\n return h('div', handleProps);\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport classNames from 'classnames';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { initDefaultProps, hasProp } from '../../_util/props-util';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function _trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar rangeProps = {\n defaultValue: PropTypes.arrayOf(PropTypes.number),\n value: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n pushable: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n allowCross: PropTypes.bool,\n disabled: PropTypes.bool,\n reverse: PropTypes.bool,\n tabIndex: PropTypes.arrayOf(PropTypes.number),\n prefixCls: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n autoFocus: PropTypes.bool\n};\nvar Range = {\n name: 'Range',\n displayName: 'Range',\n mixins: [BaseMixin],\n props: initDefaultProps(rangeProps, {\n count: 1,\n allowCross: true,\n pushable: false,\n tabIndex: []\n }),\n data: function data() {\n var _this = this;\n\n var count = this.count,\n min = this.min,\n max = this.max;\n\n var initialValue = Array.apply(undefined, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = hasProp(this, 'defaultValue') ? this.defaultValue : initialValue;\n var value = this.value;\n\n if (value === undefined) {\n value = defaultValue;\n }\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: _this.$props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n return {\n sHandle: null,\n recent: recent,\n bounds: bounds\n };\n },\n\n watch: {\n value: {\n handler: function handler(val) {\n var bounds = this.bounds;\n\n this.setChangeValue(val || bounds);\n },\n\n deep: true\n },\n min: function min() {\n var value = this.value;\n\n this.setChangeValue(value || this.bounds);\n },\n max: function max() {\n var value = this.value;\n\n this.setChangeValue(value || this.bounds);\n }\n },\n methods: {\n setChangeValue: function setChangeValue(value) {\n var _this2 = this;\n\n var bounds = this.bounds;\n\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: bounds,\n props: _this2.$props\n });\n });\n if (nextBounds.length === bounds.length && nextBounds.every(function (v, i) {\n return v === bounds[i];\n })) return;\n\n this.setState({ bounds: nextBounds });\n\n if (value.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.$props);\n })) {\n var newValues = value.map(function (v) {\n return utils.ensureValueInRange(v, _this2.$props);\n });\n this.$emit('change', newValues);\n }\n },\n onChange: function onChange(state) {\n var isNotControlled = !hasProp(this, 'value');\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n\n ['sHandle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _extends({}, this.$data, state);\n var changedValue = data.bounds;\n this.$emit('change', changedValue);\n },\n onStart: function onStart(position) {\n var bounds = this.bounds;\n\n this.$emit('beforeChange', bounds);\n\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n\n this.setState({\n sHandle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n var nextBounds = [].concat(_toConsumableArray(bounds));\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({ bounds: nextBounds });\n },\n onEnd: function onEnd(force) {\n var sHandle = this.sHandle;\n\n this.removeDocumentEvents();\n if (sHandle !== null || force) {\n this.$emit('afterChange', this.bounds);\n }\n this.setState({ sHandle: null });\n },\n onMove: function onMove(e, position) {\n utils.pauseEvent(e);\n var bounds = this.bounds,\n sHandle = this.sHandle;\n\n var value = this.calcValueByPos(position);\n var oldValue = bounds[sHandle];\n if (value === oldValue) return;\n\n this.moveTo(value);\n },\n onKeyboard: function onKeyboard(e) {\n var _$props = this.$props,\n reverse = _$props.reverse,\n vertical = _$props.vertical;\n\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var bounds = this.bounds,\n sHandle = this.sHandle;\n\n var oldValue = bounds[sHandle === null ? this.recent : sHandle];\n var mutatedValue = valueMutator(oldValue, this.$props);\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: sHandle,\n bounds: bounds,\n props: this.$props\n });\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n },\n getClosestBound: function getClosestBound(value) {\n var bounds = this.bounds;\n\n var closestBound = 0;\n for (var i = 1; i < bounds.length - 1; ++i) {\n if (value > bounds[i]) {\n closestBound = i;\n }\n }\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n return closestBound;\n },\n getBoundNeedMoving: function getBoundNeedMoving(value, closestBound) {\n var bounds = this.bounds,\n recent = this.recent;\n\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n return boundNeedMoving;\n },\n getLowerBound: function getLowerBound() {\n return this.bounds[0];\n },\n getUpperBound: function getUpperBound() {\n var bounds = this.bounds;\n\n return bounds[bounds.length - 1];\n },\n\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n getPoints: function getPoints() {\n var marks = this.marks,\n step = this.step,\n min = this.min,\n max = this.max;\n\n var cache = this._getPointsCache;\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _extends({}, marks);\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this._getPointsCache = { marks: marks, step: step, points: points };\n }\n return this._getPointsCache.points;\n },\n moveTo: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var nextBounds = [].concat(_toConsumableArray(this.bounds));\n var sHandle = this.sHandle,\n recent = this.recent;\n\n var handle = sHandle === null ? recent : sHandle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n if (this.$props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (this.$props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n this.onChange({\n recent: nextHandle,\n sHandle: nextHandle,\n bounds: nextBounds\n });\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hackļ¼Œbut not elegant\n this.$emit('afterChange', nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n },\n pushSurroundingHandles: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var threshold = this.pushable;\n\n threshold = Number(threshold);\n\n var direction = 0;\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n },\n pushHandle: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n bounds[handle] = originalValue;\n return false;\n }\n currentValue = bounds[handle];\n }\n // the handle was pushed enough to create the needed `amount` gap\n return true;\n },\n pushHandleOnePoint: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var threshold = this.pushable;\n\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n }\n // push the handle\n bounds[handle] = nextValue;\n return true;\n },\n trimAlignValue: function trimAlignValue(value) {\n var sHandle = this.sHandle,\n bounds = this.bounds;\n\n return _trimAlignValue({\n value: value,\n handle: sHandle,\n bounds: bounds,\n props: this.$props\n });\n },\n ensureValueNotConflict: function ensureValueNotConflict(handle, val, _ref2) {\n var allowCross = _ref2.allowCross,\n thershold = _ref2.pushable;\n\n var state = this.$data || {};\n var bounds = state.bounds;\n\n handle = handle === undefined ? state.sHandle : handle;\n thershold = Number(thershold);\n /* eslint-disable eqeqeq */\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && val <= bounds[handle - 1] + thershold) {\n return bounds[handle - 1] + thershold;\n }\n if (handle < bounds.length - 1 && val >= bounds[handle + 1] - thershold) {\n return bounds[handle + 1] - thershold;\n }\n }\n /* eslint-enable eqeqeq */\n return val;\n },\n getTrack: function getTrack(_ref3) {\n var bounds = _ref3.bounds,\n prefixCls = _ref3.prefixCls,\n reverse = _ref3.reverse,\n vertical = _ref3.vertical,\n included = _ref3.included,\n offsets = _ref3.offsets,\n trackStyle = _ref3.trackStyle;\n var h = this.$createElement;\n\n return bounds.slice(0, -1).map(function (_, index) {\n var _classNames;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-track', true), _defineProperty(_classNames, prefixCls + '-track-' + i, true), _classNames));\n return h(Track, {\n 'class': trackClassName,\n attrs: { vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1]\n },\n style: trackStyle[index],\n key: i\n });\n });\n },\n renderSlider: function renderSlider() {\n var _this4 = this;\n\n var sHandle = this.sHandle,\n bounds = this.bounds,\n prefixCls = this.prefixCls,\n vertical = this.vertical,\n included = this.included,\n disabled = this.disabled,\n min = this.min,\n max = this.max,\n reverse = this.reverse,\n handle = this.handle,\n defaultHandle = this.defaultHandle,\n trackStyle = this.trackStyle,\n handleStyle = this.handleStyle,\n tabIndex = this.tabIndex;\n\n var handleGenerator = handle || defaultHandle;\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n\n var handleClassName = prefixCls + '-handle';\n var handles = bounds.map(function (v, i) {\n var _classNames2;\n\n var _tabIndex = tabIndex[i] || 0;\n if (disabled || tabIndex[i] === null) {\n _tabIndex = null;\n }\n return handleGenerator({\n className: classNames((_classNames2 = {}, _defineProperty(_classNames2, handleClassName, true), _defineProperty(_classNames2, handleClassName + '-' + (i + 1), true), _classNames2)),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offsets[i],\n value: v,\n dragging: sHandle === i,\n index: i,\n tabIndex: _tabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n directives: [{\n name: 'ant-ref',\n value: function value(h) {\n return _this4.saveHandle(i, h);\n }\n }],\n on: {\n focus: _this4.onFocus,\n blur: _this4.onBlur\n }\n });\n });\n\n return {\n tracks: this.getTrack({\n bounds: bounds,\n prefixCls: prefixCls,\n reverse: reverse,\n vertical: vertical,\n included: included,\n offsets: offsets,\n trackStyle: trackStyle\n }),\n handles: handles\n };\n }\n }\n};\n\nexport default createSlider(Range);","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport warning from '../../_util/warning';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { hasProp } from '../../_util/props-util';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = {\n name: 'Slider',\n mixins: [BaseMixin],\n props: {\n defaultValue: PropTypes.number,\n value: PropTypes.number,\n disabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n tabIndex: PropTypes.number,\n reverse: PropTypes.bool,\n min: PropTypes.number,\n max: PropTypes.number\n },\n data: function data() {\n var defaultValue = this.defaultValue !== undefined ? this.defaultValue : this.min;\n var value = this.value !== undefined ? this.value : defaultValue;\n\n warning(!hasProp(this, 'minimumTrackStyle'), 'Slider', 'minimumTrackStyle will be deprecate, please use trackStyle instead.');\n warning(!hasProp(this, 'maximumTrackStyle'), 'Slider', 'maximumTrackStyle will be deprecate, please use railStyle instead.');\n return {\n sValue: this.trimAlignValue(value),\n dragging: false\n };\n },\n\n watch: {\n value: {\n handler: function handler(val) {\n this.setChangeValue(val);\n },\n\n deep: true\n },\n min: function min() {\n var sValue = this.sValue;\n\n this.setChangeValue(sValue);\n },\n max: function max() {\n var sValue = this.sValue;\n\n this.setChangeValue(sValue);\n }\n },\n methods: {\n setChangeValue: function setChangeValue(value) {\n var newValue = value !== undefined ? value : this.sValue;\n var nextValue = this.trimAlignValue(newValue, this.$props);\n if (nextValue === this.sValue) return;\n\n this.setState({ sValue: nextValue });\n if (utils.isValueOutOfRange(newValue, this.$props)) {\n this.$emit('change', nextValue);\n }\n },\n onChange: function onChange(state) {\n var isNotControlled = !hasProp(this, 'value');\n var nextState = state.sValue > this.max ? _extends({}, state, { sValue: this.max }) : state;\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.sValue;\n this.$emit('change', changedValue);\n },\n onStart: function onStart(position) {\n this.setState({ dragging: true });\n var sValue = this.sValue;\n\n this.$emit('beforeChange', sValue);\n\n var value = this.calcValueByPos(position);\n\n this.startValue = value;\n this.startPosition = position;\n if (value === sValue) return;\n\n this.prevMovedHandleIndex = 0;\n this.onChange({ sValue: value });\n },\n onEnd: function onEnd(force) {\n var dragging = this.dragging;\n\n this.removeDocumentEvents();\n if (dragging || force) {\n this.$emit('afterChange', this.sValue);\n }\n this.setState({ dragging: false });\n },\n onMove: function onMove(e, position) {\n utils.pauseEvent(e);\n var sValue = this.sValue;\n\n var value = this.calcValueByPos(position);\n if (value === sValue) return;\n\n this.onChange({ sValue: value });\n },\n onKeyboard: function onKeyboard(e) {\n var _$props = this.$props,\n reverse = _$props.reverse,\n vertical = _$props.vertical;\n\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n if (valueMutator) {\n utils.pauseEvent(e);\n var sValue = this.sValue;\n\n var mutatedValue = valueMutator(sValue, this.$props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === sValue) return;\n\n this.onChange({ sValue: value });\n this.$emit('afterChange', value);\n this.onEnd();\n }\n },\n getLowerBound: function getLowerBound() {\n return this.min;\n },\n getUpperBound: function getUpperBound() {\n return this.sValue;\n },\n trimAlignValue: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n var mergedProps = _extends({}, this.$props, nextProps);\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n },\n getTrack: function getTrack(_ref) {\n var prefixCls = _ref.prefixCls,\n reverse = _ref.reverse,\n vertical = _ref.vertical,\n included = _ref.included,\n offset = _ref.offset,\n minimumTrackStyle = _ref.minimumTrackStyle,\n _trackStyle = _ref._trackStyle;\n var h = this.$createElement;\n\n return h(Track, {\n 'class': prefixCls + '-track',\n attrs: { vertical: vertical,\n included: included,\n offset: 0,\n reverse: reverse,\n length: offset\n },\n style: _extends({}, minimumTrackStyle, _trackStyle)\n });\n },\n renderSlider: function renderSlider() {\n var _this = this;\n\n var prefixCls = this.prefixCls,\n vertical = this.vertical,\n included = this.included,\n disabled = this.disabled,\n minimumTrackStyle = this.minimumTrackStyle,\n trackStyle = this.trackStyle,\n handleStyle = this.handleStyle,\n tabIndex = this.tabIndex,\n min = this.min,\n max = this.max,\n reverse = this.reverse,\n handle = this.handle,\n defaultHandle = this.defaultHandle;\n\n var handleGenerator = handle || defaultHandle;\n var sValue = this.sValue,\n dragging = this.dragging;\n\n var offset = this.calcOffset(sValue);\n var handles = handleGenerator({\n className: prefixCls + '-handle',\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: sValue,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n style: handleStyle[0] || handleStyle,\n directives: [{\n name: 'ant-ref',\n value: function value(h) {\n return _this.saveHandle(0, h);\n }\n }],\n on: {\n focus: this.onFocus,\n blur: this.onBlur\n }\n });\n\n var _trackStyle = trackStyle[0] || trackStyle;\n return {\n tracks: this.getTrack({\n prefixCls: prefixCls,\n reverse: reverse,\n vertical: vertical,\n included: included,\n offset: offset,\n minimumTrackStyle: minimumTrackStyle,\n _trackStyle: _trackStyle\n }),\n handles: handles\n };\n }\n }\n};\n\nexport default createSlider(Slider);","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\n/* eslint-disable */\nvar Track = {\n functional: true,\n render: function render(h, context) {\n var _ref, _ref2;\n\n var _context$props = context.props,\n included = _context$props.included,\n vertical = _context$props.vertical,\n offset = _context$props.offset,\n length = _context$props.length,\n reverse = _context$props.reverse;\n var _context$data = context.data,\n style = _context$data.style,\n className = _context$data['class'];\n\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', offset + '%'), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, 'height', length + '%'), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', offset + '%'), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, 'width', length + '%'), _ref2);\n\n var elStyle = _extends({}, style, positonStyle);\n return included ? h('div', { 'class': className, style: elStyle }) : null;\n }\n};\n\nexport default Track;","import _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 _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}"],"names":["ITouchProps","disabled","bool","activeClassName","string","activeStyle","any","name","mixins","BaseMixin","props","data","active","mounted","_this","this","$nextTick","setState","methods","triggerEvent","type","isActive","ev","$emit","onTouchStart","e","onTouchMove","onTouchEnd","onTouchCancel","onMouseDown","onMouseUp","onMouseLeave","render","_$props","$props","_$props$activeClassNa","undefined","_$props$activeStyle","child","$slots","length","warning","childProps","on","touchstart","touchmove","touchend","touchcancel","mousedown","mouseup","mouseleave","style","InputHandler","prefixCls","h","arguments","touchableProps","noop","preventDefault","defaultParser","input","replace","SPEED","DELAY","MAX_SAFE_INTEGER","Number","Math","pow","isValidProps","value","isEqual","oldValue","newValue","isNaN","inputNumberProps","oneOfType","number","defaultValue","focusOnUpDown","autoFocus","tabIndex","placeholder","readonly","max","min","step","upHandler","downHandler","useTouch","formatter","func","parser","precision","required","pattern","decimalSeparator","autoComplete","title","id","model","prop","event","prevProps","validValue","getValidValue","toNumber","inputValue","toPrecisionAsStep","sValue","focused","focus","updatedFunc","updated","_this2","$data","nextInputValue","pressingUpOrDown","inputting","rawInput","nextValue","beforeDestroy","stop","inputElem","$refs","inputRef","cursorStart","partRestoreByAfter","cursorAfter","currentValue","lastKeyCode","KeyCode","BACKSPACE","fixCaret","DELETE","pos","document","activeElement","onKeyDown","keyCode","UP","ratio","getRatio","up","DOWN","_ratio","down","ENTER","recordCursorPosition","_len","args","Array","_key","apply","concat","onKeyUp","_len2","_key2","onTrigger","target","composing","onChange","getValueFromEvent","onFocus","_len3","_key3","onBlur","getCurrentValidValue","setValue","$listeners","blur","originValue","getInputDisplayValue","_len4","_key4","val","isNotCompleteNumber","parseFloat","metaKey","ctrlKey","shiftKey","trim","v","callback","_$data","_$data$sValue","_$data$inputValue","newValueInString","toFixed","changed","getPrecision","valueString","toString","indexOf","parseInt","slice","getMaxPrecision","ratioPrecision","stepPrecision","currentValuePrecision","getPrecisionFactor","state","_ref","inputDisplayValue","inputDisplayValueFormat","formatWrapper","selectionStart","cursorEnd","selectionEnd","cursorBefore","substring","start","end","currentStart","currentEnd","setSelectionRange","restoreByAfter","str","fullStr","index","lastIndexOf","prevCursorPos","charAt","_this3","prototype","some","call","_","partStr","num","abs","_$props2","_focused","numberIsTooLarge","round","upStep","rat","precisionFactor","result","downStep","stepFn","_this4","recursive","outOfRange","autoStepTimer","setTimeout","clearTimeout","handleInputClick","onCompositionstart","onCompositionend","_classNames","_$props3","classes","upDisabledClass","downDisabledClass","editable","upEvents","downEvents","isUpDisabled","isDownDisabled","_getListeners","_getListeners$mouseen","mouseenter","_getListeners$mousele","_getListeners$mouseov","mouseover","_getListeners$mouseou","mouseout","contentProps","attrs","upHandlerProps","unselectable","role","ref","downHandlerProps","domProps","element","styleVal","getComputedStyle","window","getPropertyValue","overflow","scrollParent","HTMLElement","parent","body","documentElement","parentNode","test","getElementPosition","rect","getBoundingClientRect","top","pageYOffset","left","pageXOffset","isHidden","offsetParent","inViewport","container","customOffset","bottom","right","innerHeight","innerWidth","containerPosition","offsetHeight","offsetWidth","elementPosition","lazyLoadProps","debounce","elementType","height","offset","offsetBottom","offsetHorizontal","offsetLeft","offsetRight","offsetTop","offsetVertical","threshold","throttle","width","_propsSymbol","lazyLoadHandler","visible","watch","_mounted","eventNode","getEventNode","flush","resizeHander","addEventListener","scrollHander","cancel","detachListeners","parentScroll","$el","getOffset","_offsetAll","_offsetVertical","_offsetHorizontal","node","__emit","remove","createElement","children","elStyles","elClasses","LazyLoad","OptionProps","boolean","options","arrayOf","inject","mentionsContext","_mentionsContext","notFoundContent","activeIndex","setActiveIndex","selectOption","_mentionsContext$onFo","_mentionsContext$onBl","activeOption","activeKey","select","key","option","find","_ref2","map","MenuItem","BUILT_IN_PLACEMENTS","bottomRight","points","adjustX","adjustY","topRight","loading","placement","oneOf","transitionName","getPopupContainer","getDropdownPrefix","getDropdownElement","$createElement","DropdownMenu","popupElement","popupVisible","popup","popupPlacement","popupTransitionName","builtinPlacements","Mentions","inheritAttrs","provide","_$props$value","_$props$defaultValue","_value","measuring","measureLocation","measureText","measurePrefix","isFocus","measure","scrollTop","textarea","triggerChange","$forceUpdate","_ref$target","isComposing","which","optionLen","getOptions","newActiveIndex","ESC","stopMeasure","_$data2","prevMeasureText","_$props2$prefix","prefix","validateSearch","selectionStartText","_getLastMeasureIndex","measureIndex","location","validateMeasure","matchOption","startMeasure","onInputFocus","onInputBlur","onDropdownFocus","onDropdownBlur","focusId","_$data3","split","_option$value","mentionValue","_replaceWithMeasure","targetText","text","selectionLocation","targetMeasureText","filterOption","_$props3$children","list","isArray","item","filter","_$data4","_getOptionProps","restProps","inputProps","directives","$attrs","change","keydown","keyup","KeywordTrigger","Option","mentionsProps","array","character","characterRender","vcMentionsProps","defaultProps","PlaceMent","getBeforeSelectionText","lower","char","toLowerCase","getLastMeasureIndex","prefixList","reduce","lastMatch","prefixStr","lastIndex","reduceText","firstChar","restText","targetTextLen","i","replaceWithMeasure","measureConfig","beforeMeasureText","connectedStartText","setInputSelection","_ref$value","lowerCase","Boolean","rootPrefixCls","String","attribute","object","eventKey","selectedKeys","inlineIndent","def","level","mode","parentMenu","multiple","isSelected","manualRef","subMenuKey","itemIcon","isMenuItem","created","prevActive","callRef","onlyScrollIfNeeded","onClick","hover","domEvent","onMouseEnter","info","keyPath","getPrefixCls","getActiveClassName","getSelectedClassName","getDisabledClassName","_className","className","mouseEvent","click","paddingLeft","listeners","forEach","liProps","connected","MenuItemGroup","renderMenuItem","isMenuItemGroup","renderInnerMenuItem","titleClassName","listClassName","autoAdjustOverflow","placements","topLeft","bottomLeft","leftTop","rightTop","guid","popupPlacementMap","horizontal","vertical","updateDefaultActiveFirst","store","defaultActiveFirst","menuId","getState","SubMenu","openKeys","openChange","isRootMenu","triggerSubMenuAction","popupClassName","forceSubMenuRender","openAnimation","subMenuOpenDelay","subMenuCloseDelay","openTransitionName","popupOffset","isOpen","expandIcon","isSubMenu","handleUpdated","minWidthTimeout","mouseenterTimeout","requestAnimationTimeout","adjustWidth","menu","menuInstance","onTitleClick","RIGHT","triggerOpenChange","LEFT","handled","onPopupVisibleChange","subMenuInstance","onTitleMouseEnter","onTitleMouseLeave","_$props4","onSubMenuClick","addKeyPath","getOpenClassName","saveMenuInstance","c","open","trigger","isChildrenSelected","ret","subMenuTitle","popupMenu","minWidth","renderChildren","deselect","subPopupMenuProps","focusable","internalMenuId","baseProps","haveRendered","haveOpened","transitionAppear","animProps","appear","css","transitionProps","getTransitionProps","SubPopupMenu","_attrs","isInlineMode","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","titleProps","icon","triggerNode","popupAlign","theme","slot","connect","canUseDOM","MENUITEM_OVERFLOWED_CLASSNAME","FLOAT_PRECISION_ADJUST","DOMWrap","resizeObserver","mutationObserver","originalTotalWidth","overflowedItems","menuItemSizes","lastVisibleIndex","setChildrenWidthAndResize","menuUl","entries","el","observe","MutationObserver","disconnect","attributes","childList","subTree","getMenuItemNodes","ul","getOverflowedSubMenuItem","keyPrefix","renderPlaceholder","overflowedIndicator","copy","_getPropsData","rest","events","display","visibility","position","k","subMenuProps","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","menuItemNodes","overflowedIndicatorWidth","acc","cur","handleResize","currentSumWidth","liWidth","childNode","overflowed","push","Tag","tag","tagProps","hiddenClassName","allDisabled","arr","every","updateActiveKey","getEventKey","saveRef","instanceArrayKeyIndexMap","instanceArray","getActiveKey","originalActiveKey","found","propsData","componentOptions","noActiveKey","defaultSelectedKeys","defaultOpenKeys","__propsSymbol__","prevActiveKey","getFlatInstanceArray","obj","activeItem","onItemHover","onDeselect","selectInfo","onSelect","onOpenChange","onDestroy","getOpenTransitionName","direction","len","reverse","ci","getIcon","instance","temp","$scopedSlots","_temp","slotsProp","renderCommonMenuItem","extraProps","Object","keys","childListeners","newChildProps","bind","itemHover","domWrapProps","selectable","Menu","commonPropsType","create","updateMiniStore","selectedKey","innerMenu","getWrappedInstance","processSingle","oneChanged","splice","animationName","Provider","applePhone","appleIpod","appleTablet","androidPhone","androidTablet","amazonPhone","amazonTablet","windowsPhone","windowsTablet","otherBlackberry","otherBlackberry10","otherOpera","otherChrome","otherFirefox","match","regex","userAgent","isMobile","ua","navigator","tmp","_tmp","_tmp2","_tmp3","_tmp4","apple","phone","ipod","tablet","device","amazon","android","windows","other","blackberry","blackberry10","opera","firefox","chrome","defaultResult","getKeyFromChildrenIndex","menuEventKey","getMenuIdFromSubMenuEventKey","loopMenuItem","cb","c2","loopMenuItemRecursively","Ctor","menuAllProps","getWidth","elem","setStyle","styleProperty","isMobileDevice","duration","closable","update","closeIcon","restartCloseTimer","startCloseTimer","clearCloseTimer","willDestroy","close","stopPropagation","closeTimer","componentClass","seed","now","Date","getUuid","Notification","animation","maxCount","notices","getTransitionName","add","notice","previousState","noticeIndex","updatedNotices","updateKey","shift","noticeNodes","content","onClose","createChainedFunction","noticeProps","Notice","properties","getContainer","div","root","appendChild","V","Vue","self","notification","removeNotice","component","destroy","$destroy","removeChild","p","page","last","locale","showTitle","itemRender","Function","handleClick","handleKeyPress","cls","ZERO","NINE","NUMPAD_ZERO","NUMPAD_NINE","ARROW_UP","ARROW_DOWN","changeSize","quickGo","selectComponentClass","current","pageSizeOptions","pageSize","buildOptionText","selectPrefixCls","goButton","goInputText","defaultBuildOptionText","opt","items_per_page","handleChange","_e$target","handleBlur","relatedTarget","go","Select","changeSelect","goInput","gotoButton","showSearch","optionLabelProp","dropdownMatchSelectWidth","jump_to_confirm","jump_to","prev_page","next_page","prev_5","next_5","prev_3","next_3","isInteger","isFinite","floor","defaultItemRender","calculatePage","statePageSize","total","defaultCurrent","defaultPageSize","hideOnSinglePage","showSizeChanger","showLessItems","showPrevNextJumpers","showQuickJumper","showTotal","simple","prevIcon","nextIcon","jumpPrevIcon","jumpNextIcon","hasOnChange","hasCurrent","console","warn","stateCurrent","stateCurrentInputValue","newState","newCurrent","paginationNode","lastCurrentNode","querySelector","_current","getJumpPrevPage","getJumpNextPage","getItemIcon","iconNode","allPages","isValid","shouldDisplayQuickJumper","handleKeyDown","handleKeyUp","changePageSize","size","preCurrent","currentPage","prev","hasPrev","next","hasNext","jumpPrev","jumpNext","runIfEnter","charCode","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","pagerList","firstPager","lastPager","pageBufferSize","prevPage","nextPage","pagerProps","keypress","Pager","prevItemTitle","nextItemTitle","jumpPrevClassString","jumpNextClassString","_i","_active","unshift","totalText","prevDisabled","nextDisabled","Options","enhancer","Component","paths","path","pathStyle","transitionDuration","prevTimeStamp","percent","strokeColor","strokeLinecap","strokeWidth","trailColor","trailWidth","mixedType","propTypes","circlePropTypes","gapPosition","gapDegree","circleDefaultProps","use","gradientSeed","stripPercentToNumber","toArray","symArray","getPathStyles","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","pathString","PI","stroke","strokeDasharray","strokeDashoffset","transition","Circle","gradientId","getStokeList","percentList","strokeColorList","stackPtg","ptg","color","_getPathStyles","pathProps","d","opacity","_getPathStyles2","gradient","pathFirst","viewBox","x1","y1","x2","y2","sort","a","b","getScroll","w","method","getClientPosition","x","y","doc","ownerDocument","docElem","box","clientLeft","clientTop","getOffsetLeft","defaultView","parentWindow","allowHalf","count","onHover","getClassName","starValue","star","rateProps","allowClear","cleanedValue","hoverValue","getStarValue","pageX","isReset","changeValue","getStarDOM","starEle","leftDis","clientWidth","rateRef","stars","disabledClass","starProps","Star","VueResizeObserver","currentElement","onComponentUpdated","destroyObserver","elementChanged","onResize","_target$getBoundingCl","fixedWidth","fixedHeight","label","isSelectOptGroup","isSelectOption","toTitle","getValuePropValue","Error","getPropValue","newChild","isMultiple","isCombobox","combobox","isMultipleOrTags","tags","isMultipleOrTagsOrCombobox","isSingleMode","getMapKey","preventDefaultEvent","findIndexInValueBySingleValue","singleValue","getLabelFromPropsValue","getSelectKeys","menuItems","itemValue","itemKey","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","findFirstMenuItem","includesSeparators","separators","splitBySeparators","reg","RegExp","join","token","defaultFilterFn","optionFilterProp","validateOptionValue","generateUUID","getTime","uuid","r","random","ariaId","defaultActiveFirstOption","dropdownMenuStyle","backfillValue","firstActiveValue","menuItemSelectedIcon","scrollActiveItemToView","lastVisible","rafInstance","lastInputValue","prevVisible","itemComponent","firstActiveItem","scrollIntoViewOpts","alignWithTop","menuRef","renderMenu","menuDeselect","menuSelect","popupScroll","menuProps","scroll","activeKeyProps","clonedMenuItems","foundFirst","clone","lastValue","_getListeners2","popupFocus","transform","dropdownAlign","dropdownClassName","dropdownStyle","empty","showAction","dropdownRender","dropdownWidth","saveDropdownMenuRef","saveTriggerRef","setDropdownWidth","cancelRafInstance","getInnerMenu","dropdownMenuRef","getPopupDOMNode","triggerRef","getPopupDomNode","newProps","getDropdownPrefixCls","dropdownMenuProps","menuNode","getDropdownTransitionName","_popupClassName","dropdownVisibleChange","dropdownPrefixCls","hideAction","popupStyle","widthProp","triggerProps","popupVisibleChange","SelectPropTypes","showArrow","choiceTransitionName","defaultOpen","labelInValue","maxTagTextLength","maxTagCount","maxTagPlaceholder","tokenSeparators","getInputElement","clearIcon","inputIcon","removeIcon","backfill","SELECT_EMPTY_VALUE_KEY","chaining","fns","OptGroup","autoClearSearchValue","saveInputRef","saveInputMirrorRef","saveTopCtrlRef","saveSelectTriggerRef","saveRootRef","saveSelectionRef","_mouseDown","_options","_empty","optionsInfo","getOptionsInfoFromProps","isDisabledExist","getValueFromProps","_inputValue","getInputValueForCombobox","_open","_optionsInfo","_backfillValue","_skipBuildOptionsInfo","_ariaId","_mirrorInputValue","getDerivedState","inputNode","getInputDOMNode","mirrorNode","getInputMirrorDOMNode","forcePopupAlign","clearFocusTime","clearBlurTime","clearComboboxTime","dropdownContainer","nextProps","prevState","getOptionsFromChildren","useDefaultValue","getLabelFromOption","preState","oldOptionsInfo","onInputChange","_$data$_inputValue","getValueByInput","fireChange","setOpenState","needFocus","setInputValue","onDropdownVisibleChange","timeoutFocus","updateFocusClassName","onInputKeydown","maybeFocus","SPACE","_this5","isRealOpen","getRealOpenState","openIfHasChildren","comboboxTimer","selectTriggerRef","handleBackfill","removeSelected","onMenuSelect","selectedValue","skipTrigger","fireSearch","fireSelect","onMenuDeselect","menuItemDomNode","onArrowClick","onPlaceholderClick","onPopupFocus","onClearSelection","onChoiceAnimationLeave","getOptionInfoBySingleValue","defaultLabel","valueLabel","defaultValueLabel","defaultInfo","getOptionBySingleValue","_getOptionInfoBySingl","getOptionsBySingleValue","values","_this6","getValueByLabel","_this7","oldLable","getVLBySingleValue","getLabelBySingleValue","getVLForOnChange","vlsS","_this8","vls","vl","_getOptionInfoBySingl2","getDropdownContainer","getPlaceholderElement","hidden","inputClick","inputBlur","_this9","arrow","contains","blurTimer","firstOption","tmpValue","inputFocus","rootRef","_getInputElement","defaultInput","inputElement","inputCls","inputEvents","inputKeydown","topCtrlRef","inputMirrorRef","getPopupMenuComponent","_this10","config","nextState","_this11","hasNewValue","selectionRef","markMouseDown","markMouseLeave","_filterOption","defaultFilter","filterFn","_this12","focusTimer","_document","isChildDisabled","canMultiple","_valueOptions","childValue","renderFilterOptions","childrenKeys","renderFilterOptionsFromChildren","val1","val2","menuItem","_p","_this13","sel","childChildren","innerItems","subChild","childValueSub","_innerItems","renderTopControlNode","_this14","innerNode","showSelectedValue","_getOptionInfoBySingl3","selectedValueNodes","limitedCountValue","maxTagPlaceholderEl","omittedValues","choiceClassName","afterLeave","topCtrlContainerClick","renderArrow","_$props4$showArrow","defaultIcon","renderClear","_$props5","clear","selectionRefClick","selectionRefFocus","selectionRefBlur","_rootCls","_props$showArrow","ctrlNode","_$data5","filterOptions","realOpen","_getListeners$popupSc","selectionProps","extraSelectionProps","rootCls","SelectTrigger","proxyComponent","accessibility","adaptiveHeight","afterChange","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","dots","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","initialState","animating","autoplaying","currentDirection","currentLeft","currentSlide","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","getOnDemandLazySlides","spec","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","getHeight","getSwipeDirection","swipeAngle","xDist","yDist","atan2","canGoNext","canGo","extractObject","newObject","initializedState","ceil","listRef","trackRef","centerPaddingAdj","slidesToLoad","animationSlide","finalSlide","animationLeft","finalLeft","getTrackLeft","getTrackAnimateCSS","getTrackCSS","previousInt","slideOffset","targetSlide","unevenOffset","indexOffset","message","siblingDirection","tagName","touches","clientX","pageY","clientY","onEdge","curLeft","swipeLength","sqrt","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","onSwipe","minSwipe","newSlide","getSlideCount","checkNavigable","getNavigableIndexes","breakpoint","counter","indexes","navigables","prevNavigable","n","centerOffset","swipedSlide","slickList","slides","querySelectorAll","from","currentIndex","slidesTraversed","dataset","checkSpecKeys","keysArray","hasOwnProperty","error","trackHeight","trackChildren","getTotalSlides","WebkitTransition","WebkitTransform","msTransform","attachEvent","marginTop","marginLeft","targetLeft","verticalOffset","slidesToOffset","getPreClones","targetSlideIndex","trackElem","childNodes","getPostClones","slidesOnRight","slidesOnLeft","getSlideClasses","slickActive","slickCenter","slickCloned","slickCurrent","getSlideStyle","getKey","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childrenCount","childOnClickOptions","childStyle","slideClass","context","slideClasses","outline","preCloneNo","functional","trackProps","getDotCount","appendDots","customPaging","clickHandler","leftBound","rightBound","dotOptions","PrevArrow","handle","prevClasses","prevHandler","prevArrowProps","customProps","prevArrow","NextArrow","nextClasses","nextHandler","nextArrowProps","nextArrow","preProps","track","callbackTimers","clickable","debouncedResize","listRefHandler","trackRefHandler","adaptHeight","onWindowResized","setTrackStyle","resizeWindow","updateState","handleAutoPlay","pause","animationEndCallback","updatedState","ssrInit","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","childWidth","_i2","_trackStyle","currentWidth","trackLeft","checkImagesLoad","images","imagesCount","loadedCount","image","handler","onclick","prevClickHandler","onload","onerror","progressiveLazyLoad","_index","lazyLoadTimer","clearInterval","slideHandler","dontAnimate","_slideHandler2","innerSlider","firstBatch","changeSlide","keyHandler","dir","selectHandler","disableBodyScroll","returnValue","ontouchmove","enableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","slickPrev","slickNext","slickGoTo","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","done","err","dotProps","_$scopedSlots","arrowProps","_$scopedSlots2","prevArrowCustom","nextArrowCustom","verticalHeightStyle","centerPaddingStyle","padding","listStyle","listProps","mousemove","innerSliderProps","enquire","_responsiveMediaHandlers","innerSliderRefHandler","media","query","register","slickPause","slickPlay","breakpoints","breakpt","bQuery","maxWidth","unregister","settings","resp","newChildren","j","row","sliderProps","scopedSlots","clickFocused","onMouseUpListener","handleMouseUp","setClickFocus","clickFocus","handleMousedown","positionStyle","ariaProps","_tabIndex","handleProps","_trimAlignValue","bounds","allowCross","pushable","thershold","valInRange","valNotConflict","rangeProps","Range","displayName","initialValue","recent","sHandle","setChangeValue","deep","nextBounds","newValues","isNotControlled","controlledState","changedValue","onStart","calcValueByPos","startValue","startPosition","closestBound","getClosestBound","prevMovedHandleIndex","getBoundNeedMoving","prevValue","onEnd","force","removeDocumentEvents","onMove","moveTo","onKeyboard","valueMutator","mutatedValue","isFromKeyboardEvent","boundNeedMoving","isAtTheSamePoint","getLowerBound","getUpperBound","getPoints","marks","cache","_getPointsCache","pointsObject","point","nextHandle","pushSurroundingHandles","handlesRefs","diffToNext","pushHandle","amount","originalValue","pushHandleOnePoint","pointIndex","nextPointIndex","trimAlignValue","ensureValueNotConflict","getTrack","_ref3","included","offsets","trackClassName","renderSlider","defaultHandle","handleStyle","handleGenerator","calcOffset","handleClassName","handles","_classNames2","saveHandle","tracks","Slider","mergedProps","minimumTrackStyle","Track","_context$props","_context$data","positonStyle","elStyle","calcPoints","Steps","lowerBound","upperBound","dotStyle","activeDotStyle","range","elements","isActived","pointClassName","Marks","clickLabel","marksKeys","markPoint","markPointIsObject","markLabel","markClassName","bottomStyle","marginBottom","leftStyle","markStyle","createSlider","maximumTrackStyle","railStyle","isPointDiffEven","sliderRef","Handle","button","isVertical","utils","handlePosition","dragOffset","addDocumentMouseEvents","addDocumentTouchEvents","onMouseMove","onClickMarkLabel","getSliderStart","slider","getSliderLength","coords","onTouchMoveListener","onTouchUpListener","onMouseMoveListener","calcValue","sign","pixelOffset","_renderSlider","sliderClassName","markProps","isEventFromHandle","isValueOutOfRange","isNotTouchEvent","getClosestPoint","base","maxSteps","steps","closestStep","diffs","stepString","getMousePosition","zoom","visualViewport","getTouchPosition","getHandleCenterPosition","ensureValueInRange","ensureValuePrecision","closestPoint","pauseEvent","calculateNextValue","operations","increase","decrease","indexToGet","JSON","stringify","keyToGet","getKeyboardValueMutator","END","HOME","PAGE_UP","PAGE_DOWN"],"sourceRoot":""}