{"version":3,"sources":["webpack:///./node_modules/ant-design-vue/es/vc-menu/DOMWrap.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/SubPopupMenu.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/src/util.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/commonPropsType.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/utils/isMobile.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/util.js","webpack:///./node_modules/ant-design-vue/es/vc-pagination/locale/en_US.js","webpack:///./node_modules/ant-design-vue/es/vc-notification/Notice.js","webpack:///./node_modules/ant-design-vue/es/vc-notification/Notification.js","webpack:///./node_modules/ant-design-vue/es/vc-notification/index.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/src/mentionsProps.js","webpack:///./node_modules/ant-design-vue/es/vc-lazy-load/src/utils/parentScroll.js","webpack:///./node_modules/ant-design-vue/es/vc-lazy-load/src/utils/getElementPosition.js","webpack:///./node_modules/ant-design-vue/es/vc-lazy-load/src/LazyLoad.js","webpack:///./node_modules/ant-design-vue/es/vc-lazy-load/src/utils/inViewport.js","webpack:///./node_modules/ant-design-vue/es/vc-lazy-load/index.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/MenuItemGroup.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/Divider.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/MenuItem.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/src/Option.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/src/DropdownMenu.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/src/KeywordTrigger.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/src/Mentions.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/index.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/placements.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/SubMenu.js","webpack:///./node_modules/ant-design-vue/es/vc-mentions/src/placement.js","webpack:///./node_modules/ant-design-vue/es/vc-progress/src/enhancer.js","webpack:///./node_modules/ant-design-vue/es/vc-progress/src/types.js","webpack:///./node_modules/ant-design-vue/es/vc-progress/src/Circle.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/Menu.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/index.js","webpack:///./node_modules/ant-design-vue/es/vc-m-feedback/src/PropTypes.js","webpack:///./node_modules/ant-design-vue/es/vc-m-feedback/src/TouchFeedback.js","webpack:///./node_modules/ant-design-vue/es/vc-m-feedback/index.js","webpack:///./node_modules/ant-design-vue/es/vc-pagination/Pager.js","webpack:///./node_modules/ant-design-vue/es/vc-pagination/KeyCode.js","webpack:///./node_modules/ant-design-vue/es/vc-pagination/Options.js","webpack:///./node_modules/ant-design-vue/es/vc-pagination/Pagination.js","webpack:///./node_modules/ant-design-vue/es/vc-pagination/locale/zh_CN.js"],"names":["canUseDOM","window","document","createElement","MENUITEM_OVERFLOWED_CLASSNAME","DOMWrap","name","mixins","BaseMixin","data","this","resizeObserver","mutationObserver","originalTotalWidth","overflowedItems","menuItemSizes","lastVisibleIndex","mounted","_this","$nextTick","setChildrenWidthAndResize","level","mode","menuUl","$el","entries","forEach","slice","call","children","concat","el","observe","MutationObserver","disconnect","attributes","childList","subTree","beforeDestroy","methods","getMenuItemNodes","prefixCls","$props","ul","filter","node","className","split","indexOf","getOverflowedSubMenuItem","keyPrefix","renderPlaceholder","h","$createElement","_$props","overflowedIndicator","theme","copy","$slots","_getPropsData","rest","title","events","style","key","eventKey","length","display","visibility","position","popupClassName","props","on","m","k","subMenuProps","disabled","SubMenu","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","menuItemNodes","c","map","overflowedIndicatorWidth","reduce","acc","cur","handleResize","_this2","width","currentSumWidth","liWidth","setState","renderChildren","_this3","$data","childNode","index","item","overflowed","ret","push","render","arguments","Tag","tag","tagProps","oneOf","string","number","visible","bool","hiddenClassName","def","updateActiveKey","store","menuId","activeKey","state","getState","getEventKey","saveRef","instanceArrayKeyIndexMap","instanceArray","getActiveKey","originalActiveKey","defaultActiveFirst","found","i","propsData","componentOptions","SubPopupMenu","openTransitionName","openAnimation","oneOfType","object","openKeys","arrayOf","parentMenu","forceSubMenuRender","focusable","multiple","selectedKeys","defaultSelectedKeys","defaultOpenKeys","triggerSubMenuAction","inlineIndent","manualRef","func","itemIcon","any","expandIcon","__propsSymbol__","created","prevProps","updated","onKeyDown","e","callback","keyCode","handled","getFlatInstanceArray","obj","active","activeItem","KeyCode","UP","DOWN","step","preventDefault","onItemHover","hover","onDeselect","selectInfo","__emit","onSelect","onClick","onOpenChange","onDestroy","getOpenTransitionName","direction","len","reverse","activeIndex","every","ci","arr","allDisabled","start","child","getIcon","instance","temp","$scopedSlots","_temp","slotsProp","slot","renderCommonMenuItem","extraProps","childProps","isActive","Object","keys","childListeners","newChildProps","renderMenuItem","rootPrefixCls","bind","subMenuOpenDelay","subMenuCloseDelay","builtinPlacements","click","itemHover","openChange","deselect","select","subMenuKey","isRootMenu","domWrapProps","attrs","role","tabIndex","keydown","connect","getBeforeSelectionText","input","selectionStart","value","lower","char","toLowerCase","getLastMeasureIndex","text","prefix","prefixList","Array","isArray","lastMatch","prefixStr","lastIndex","lastIndexOf","location","reduceText","targetText","firstChar","restText","targetTextLen","replaceWithMeasure","measureConfig","measureLocation","beforeMeasureText","connectedStartText","selectionLocation","setInputSelection","setSelectionRange","blur","focus","validateSearch","filterOption","_ref","_ref$value","lowerCase","getPopupContainer","selectable","applePhone","appleIpod","appleTablet","androidPhone","androidTablet","amazonPhone","amazonTablet","windowsPhone","windowsTablet","otherBlackberry","otherBlackberry10","otherOpera","otherChrome","otherFirefox","match","regex","userAgent","test","isMobile","ua","navigator","tmp","_tmp","_tmp3","result","apple","phone","ipod","tablet","device","amazon","android","windows","other","blackberry","blackberry10","opera","firefox","chrome","noop","getKeyFromChildrenIndex","menuEventKey","getMenuIdFromSubMenuEventKey","loopMenuItem","cb","type","isMenuItemGroup","c2","loopMenuItemRecursively","find","options","Ctor","isSubMenu","isMenuItem","menuAllProps","getWidth","elem","getBoundingClientRect","toFixed","styleProperty","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","duration","closable","update","closeIcon","watch","restartCloseTimer","startCloseTimer","clearCloseTimer","willDestroy","close","stopPropagation","closeTimer","setTimeout","clearTimeout","_className","componentClass","right","seed","now","Date","Notification","transitionName","animation","maxCount","notices","getTransitionName","add","notice","previousState","noticeIndex","v","updatedNotices","splice","updateKey","shift","remove","transitionProps","getTransitionProps","noticeNodes","Boolean","content","onClose","createChainedFunction","noticeProps","Notice","top","left","properties","getContainer","div","appendChild","body","Vue","self","$refs","notification","removeNotice","component","destroy","$destroy","parentNode","removeChild","p","ref","mentionsProps","autoFocus","array","defaultValue","notFoundContent","placement","character","characterRender","vcMentionsProps","defaultProps","element","prop","getComputedStyle","getPropertyValue","overflow","HTMLElement","parent","documentElement","getElementPosition","rect","pageYOffset","pageXOffset","lazyLoadProps","debounce","elementType","height","offset","offsetBottom","offsetHorizontal","offsetLeft","offsetRight","offsetTop","offsetVertical","threshold","throttle","_propsSymbol","lazyLoadHandler","_mounted","eventNode","getEventNode","flush","resizeHander","addEventListener","scrollHander","cancel","detachListeners","parentScroll","getOffset","_offsetAll","_offsetVertical","_offsetHorizontal","bottom","container","customOffset","offsetParent","isHidden","innerHeight","innerWidth","containerPosition","offsetHeight","offsetWidth","elementPosition","inViewport","warning","_$props2","LazyLoad","MenuItemGroup","renderInnerMenuItem","titleClassName","listClassName","listeners","String","attribute","isSelected","MenuItem","prevActive","callRef","onlyScrollIfNeeded","ENTER","onMouseLeave","domEvent","onMouseEnter","info","keyPath","getPrefixCls","getActiveClassName","getSelectedClassName","getDisabledClassName","mouseEvent","mouseleave","mouseenter","paddingLeft","liProps","connected","_ref2","OptionProps","boolean","inject","mentionsContext","_mentionsContext","setActiveIndex","selectOption","_mentionsContext$onFo","onFocus","_mentionsContext$onBl","onBlur","activeOption","option","BUILT_IN_PLACEMENTS","bottomRight","points","adjustX","adjustY","topRight","loading","getDropdownPrefix","getDropdownElement","DropdownMenu","popupElement","popupVisible","popup","popupPlacement","popupTransitionName","Mentions","inheritAttrs","model","event","provide","_$props$value","_$props$defaultValue","_value","measuring","measureText","measurePrefix","isFocus","val","measure","scrollTop","textarea","triggerChange","$forceUpdate","$emit","onChange","_ref$target","target","composing","isComposing","which","_$data","optionLen","getOptions","newActiveIndex","ESC","stopMeasure","onKeyUp","_$data2","prevMeasureText","_$props2$prefix","selectionStartText","_getLastMeasureIndex","measureIndex","validateMeasure","matchOption","startMeasure","onInputFocus","onInputBlur","onDropdownFocus","onDropdownBlur","focusId","_$data3","_option$value","mentionValue","_replaceWithMeasure","targetMeasureText","_$props3","_$props3$children","list","_$data4","_getOptionProps","restProps","inputProps","directives","$attrs","domProps","change","keyup","KeywordTrigger","Option","autoAdjustOverflow","topLeft","bottomLeft","leftTop","rightTop","guid","popupPlacementMap","horizontal","vertical","popupOffset","isOpen","handleUpdated","minWidthTimeout","mouseenterTimeout","requestAnimationTimeout","adjustWidth","menu","menuInstance","onTitleClick","RIGHT","triggerOpenChange","LEFT","onPopupVisibleChange","subMenuInstance","onTitleMouseEnter","onTitleMouseLeave","_$props4","onSubMenuClick","addKeyPath","getOpenClassName","saveMenuInstance","open","_this4","trigger","isChildrenSelected","subMenuTitle","popupMenu","minWidth","_getListeners","subPopupMenuProps","id","internalMenuId","baseProps","haveRendered","haveOpened","transitionAppear","animProps","appear","css","_attrs","isInlineMode","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","titleProps","icon","triggerNode","popupAlign","PlaceMent","Component","paths","path","pathStyle","transitionDuration","prevTimeStamp","mixedType","propTypes","percent","strokeColor","strokeLinecap","strokeWidth","trailColor","trailWidth","circlePropTypes","gapPosition","gapDegree","circleDefaultProps","use","gradientSeed","stripPercentToNumber","replace","toArray","symArray","getPathStyles","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","pathString","Math","PI","stroke","strokeDasharray","strokeDashoffset","transition","Circle","gradientId","getStokeList","percentList","strokeColorList","stackPtg","ptg","color","prototype","toString","_getPathStyles","pathProps","d","opacity","_getPathStyles2","gradient","pathFirst","viewBox","x1","y1","x2","y2","sort","a","b","Menu","commonPropsType","create","updateMiniStore","selectedKey","innerMenu","getWrappedInstance","changed","processSingle","oneChanged","animationName","Provider","ITouchProps","activeClassName","activeStyle","triggerEvent","ev","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onMouseDown","onMouseUp","_$props$activeClassNa","_$props$activeStyle","touchstart","touchmove","touchend","touchcancel","mousedown","mouseup","last","locale","showTitle","itemRender","Function","handleClick","handleKeyPress","_classNames","cls","changeSize","quickGo","selectComponentClass","current","pageSizeOptions","pageSize","buildOptionText","selectPrefixCls","goButton","goInputText","getValidValue","isNaN","Number","defaultBuildOptionText","opt","handleChange","_e$target","handleBlur","relatedTarget","go","Select","changeSelect","goInput","gotoButton","showSearch","optionLabelProp","dropdownMatchSelectWidth","calculatePage","statePageSize","floor","total","defaultCurrent","defaultPageSize","hideOnSinglePage","showSizeChanger","showLessItems","showPrevNextJumpers","showQuickJumper","showTotal","simple","prevIcon","nextIcon","jumpPrevIcon","jumpNextIcon","hasOnChange","console","warn","stateCurrent","min","stateCurrentInputValue","newState","newCurrent","oldValue","paginationNode","lastCurrentNode","querySelector","activeElement","_current","getJumpPrevPage","max","getJumpNextPage","getItemIcon","inputValue","allPages","isValid","isFinite","isInteger","shouldDisplayQuickJumper","handleKeyDown","handleKeyUp","changePageSize","size","preCurrent","currentPage","prev","hasPrev","next","hasNext","jumpPrev","jumpNext","runIfEnter","charCode","_len","restParams","_key","apply","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","pagerList","firstPager","lastPager","pageBufferSize","prevPage","nextPage","pagerProps","keypress","Pager","prevItemTitle","nextItemTitle","jumpPrevClassString","jumpNextClassString","_i","_active","unshift","totalText","prevDisabled","nextDisabled","unselectable","Options"],"mappings":"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","file":"js/chunk-vendors~5cf44f0f.a822b88b.js","sourcesContent":["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);","/**\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}","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 _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};","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};","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 _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);","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 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 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 LazyLoad from './src/LazyLoad';\nexport default LazyLoad;","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;","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 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;","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;","export var PlaceMent = ['top', 'bottom'];","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);","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 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 _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};","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: '条/页',\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};"],"sourceRoot":""}