{"version":3,"sources":["webpack:///./node_modules/ant-design-vue/es/time-picker/locale/en_US.js","webpack:///./node_modules/ant-design-vue/es/date-picker/locale/en_US.js","webpack:///./node_modules/ant-design-vue/es/vc-calendar/src/locale/en_US.js","webpack:///./node_modules/ant-design-vue/es/calendar/locale/en_US.js","webpack:///./node_modules/ant-design-vue/es/locale/default.js","webpack:///./node_modules/ant-design-vue/es/locale-provider/default.js","webpack:///./node_modules/ant-design-vue/es/icon/IconFont.js","webpack:///./node_modules/ant-design-vue/es/icon/twoTonePrimaryColor.js","webpack:///./node_modules/ant-design-vue/es/icon/index.js","webpack:///./node_modules/ant-design-vue/es/_util/antInputDirective.js","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/_util/KeyCode.js","webpack:///./node_modules/ant-design-vue/es/_util/css-animation/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/src/Tree.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/commonPropsType.js","webpack:///./node_modules/ant-design-vue/es/avatar/Avatar.js","webpack:///./node_modules/ant-design-vue/es/avatar/index.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/_util/createChainedFunction.js","webpack:///./node_modules/ant-design-vue/es/vc-notification/index.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/utils.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/ColumnManager.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/ColGroup.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/TableHeaderRow.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/TableHeader.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/TableCell.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/TableRow.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/ExpandIcon.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/ExpandableRow.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/BaseTable.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/HeadTable.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/BodyTable.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/ExpandableTable.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/Table.js","webpack:///./node_modules/ant-design-vue/es/vc-table/index.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/Column.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/ColumnGroup.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/placements.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/Dropdown.js","webpack:///./node_modules/ant-design-vue/es/dropdown/getDropdownProps.js","webpack:///./node_modules/ant-design-vue/es/dropdown/dropdown-button.js","webpack:///./node_modules/ant-design-vue/es/dropdown/dropdown.js","webpack:///./node_modules/ant-design-vue/es/dropdown/index.js","webpack:///./node_modules/ant-design-vue/es/vc-checkbox/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-checkbox/src/Checkbox.js","webpack:///./node_modules/ant-design-vue/es/checkbox/Checkbox.js","webpack:///./node_modules/ant-design-vue/es/checkbox/Group.js","webpack:///./node_modules/ant-design-vue/es/checkbox/index.js","webpack:///./node_modules/ant-design-vue/es/radio/Radio.js","webpack:///./node_modules/ant-design-vue/es/radio/Group.js","webpack:///./node_modules/ant-design-vue/es/radio/RadioButton.js","webpack:///./node_modules/ant-design-vue/es/radio/index.js","webpack:///./node_modules/ant-design-vue/es/table/FilterDropdownMenuWrapper.js","webpack:///./node_modules/ant-design-vue/es/pagination/MiniSelect.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","webpack:///./node_modules/ant-design-vue/es/pagination/Pagination.js","webpack:///./node_modules/ant-design-vue/es/spin/Spin.js","webpack:///./node_modules/ant-design-vue/es/table/interface.js","webpack:///./node_modules/ant-design-vue/es/table/util.js","webpack:///./node_modules/ant-design-vue/es/table/filterDropdown.js","webpack:///./node_modules/ant-design-vue/es/table/SelectionBox.js","webpack:///./node_modules/ant-design-vue/es/table/SelectionCheckboxAll.js","webpack:///./node_modules/ant-design-vue/es/table/Column.js","webpack:///./node_modules/ant-design-vue/es/table/ColumnGroup.js","webpack:///./node_modules/ant-design-vue/es/table/createBodyRow.js","webpack:///./node_modules/ant-design-vue/es/pagination/index.js","webpack:///./node_modules/ant-design-vue/es/spin/index.js","webpack:///./node_modules/ant-design-vue/es/_util/getScroll.js","webpack:///./node_modules/ant-design-vue/es/_util/easings.js","webpack:///./node_modules/ant-design-vue/es/_util/transButton.js","webpack:///./node_modules/ant-design-vue/es/table/Table.js","webpack:///./node_modules/ant-design-vue/es/_util/scrollTo.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/_util/vue-types/utils.js","webpack:///./node_modules/ant-design-vue/es/_util/vue-types/index.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/MenuItem.js","webpack:///./node_modules/ant-design-vue/es/menu/SubMenu.js","webpack:///./node_modules/ant-design-vue/es/_util/openAnimation.js","webpack:///./node_modules/ant-design-vue/es/menu/MenuItem.js","webpack:///./node_modules/ant-design-vue/es/menu/index.js","webpack:///./node_modules/ant-design-vue/es/notification/index.js","webpack:///./node_modules/ant-design-vue/es/_util/proxyComponent.js","webpack:///./node_modules/ant-design-vue/es/button/button.js","webpack:///./node_modules/ant-design-vue/es/button/index.js","webpack:///./node_modules/ant-design-vue/es/vc-util/warning.js","webpack:///./node_modules/ant-design-vue/es/_util/warning.js","webpack:///./node_modules/ant-design-vue/es/vc-util/Dom/contains.js","webpack:///./node_modules/ant-design-vue/es/tag/Tag.js","webpack:///./node_modules/ant-design-vue/es/tag/CheckableTag.js","webpack:///./node_modules/ant-design-vue/es/tag/index.js","webpack:///./node_modules/ant-design-vue/es/_util/vnode.js","webpack:///./node_modules/ant-design-vue/es/vc-util/Dom/class.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/strategies.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/util.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/SelectTrigger.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Base/BaseSelector.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/SingleSelector.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/SearchInput.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/Selection.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Base/BasePopup.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Popup/SinglePopup.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Popup/MultiplePopup.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/SelectNode.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Select.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/index.js","webpack:///./node_modules/ant-design-vue/es/tree-select/interface.js","webpack:///./node_modules/ant-design-vue/es/tree-select/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/index.js","webpack:///./node_modules/ant-design-vue/es/button/button-group.js","webpack:///./node_modules/ant-design-vue/es/vc-align/util.js","webpack:///./node_modules/ant-design-vue/es/vc-align/Align.js","webpack:///./node_modules/ant-design-vue/es/vc-align/index.js","webpack:///./node_modules/ant-design-vue/es/vc-trigger/LazyRenderBox.js","webpack:///./node_modules/ant-design-vue/es/vc-trigger/PopupInner.js","webpack:///./node_modules/ant-design-vue/es/vc-trigger/Popup.js","webpack:///./node_modules/ant-design-vue/es/vc-trigger/utils.js","webpack:///./node_modules/ant-design-vue/es/_util/ContainerRender.js","webpack:///./node_modules/ant-design-vue/es/vc-trigger/Trigger.js","webpack:///./node_modules/ant-design-vue/es/vc-trigger/index.js","webpack:///./node_modules/ant-design-vue/es/icon/style/index.js","webpack:///./node_modules/ant-design-vue/es/_util/getTransitionProps.js","webpack:///./node_modules/ant-design-vue/es/vc-select/Option.js","webpack:///./node_modules/ant-design-vue/es/vc-select/OptGroup.js","webpack:///./node_modules/ant-design-vue/es/vc-select/util.js","webpack:///./node_modules/ant-design-vue/es/vc-select/DropdownMenu.js","webpack:///./node_modules/ant-design-vue/es/vc-select/SelectTrigger.js","webpack:///./node_modules/ant-design-vue/es/vc-select/PropTypes.js","webpack:///./node_modules/ant-design-vue/es/_util/env.js","webpack:///./node_modules/ant-design-vue/es/vc-select/Select.js","webpack:///./node_modules/ant-design-vue/es/select/index.js","webpack:///./node_modules/ant-design-vue/es/empty/empty.js","webpack:///./node_modules/ant-design-vue/es/empty/index.js","webpack:///./node_modules/ant-design-vue/es/empty/simple.js","webpack:///./node_modules/ant-design-vue/es/config-provider/renderEmpty.js","webpack:///./node_modules/ant-design-vue/es/config-provider/configConsumerProps.js","webpack:///./node_modules/ant-design-vue/es/badge/ScrollNumber.js","webpack:///./node_modules/ant-design-vue/es/_util/colors.js","webpack:///./node_modules/ant-design-vue/es/_util/type.js","webpack:///./node_modules/ant-design-vue/es/_util/isNumeric.js","webpack:///./node_modules/ant-design-vue/es/badge/Badge.js","webpack:///./node_modules/ant-design-vue/es/badge/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/_util/wave.js","webpack:///./node_modules/ant-design-vue/es/_util/BaseMixin.js","webpack:///./node_modules/ant-design-vue/es/input/ClearableLabeledInput.js","webpack:///./node_modules/ant-design-vue/es/vc-resize-observer/index.js","webpack:///./node_modules/ant-design-vue/es/input/calculateNodeHeight.js","webpack:///./node_modules/ant-design-vue/es/input/inputProps.js","webpack:///./node_modules/ant-design-vue/es/input/ResizableTextArea.js","webpack:///./node_modules/ant-design-vue/es/input/TextArea.js","webpack:///./node_modules/ant-design-vue/es/input/Input.js","webpack:///./node_modules/ant-design-vue/es/input/Group.js","webpack:///./node_modules/ant-design-vue/es/input/Search.js","webpack:///./node_modules/ant-design-vue/es/input/Password.js","webpack:///./node_modules/ant-design-vue/es/input/index.js","webpack:///./node_modules/ant-design-vue/es/_util/raf.js","webpack:///./node_modules/ant-design-vue/es/button/buttonTypes.js","webpack:///./node_modules/ant-design-vue/es/tag/style/index.js","webpack:///./node_modules/ant-design-vue/es/_util/css-animation/Event.js","webpack:///./node_modules/ant-design-vue/es/vc-util/Dom/addEventListener.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/src/util.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/src/TreeNode.js","webpack:///./node_modules/ant-design-vue/es/_util/getRequestAnimationFrame.js","webpack:///./node_modules/ant-design-vue/es/_util/requestAnimationTimeout.js","webpack:///./node_modules/ant-design-vue/es/grid/Col.js","webpack:///./node_modules/ant-design-vue/es/_util/store/PropTypes.js","webpack:///./node_modules/ant-design-vue/es/_util/store/Provider.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/Menu.js","webpack:///./node_modules/ant-design-vue/es/_util/store/create.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/index.js","webpack:///./node_modules/ant-design-vue/es/_util/props-util.js","webpack:///./node_modules/ant-design-vue/es/_util/FormDecoratorDirective.js","webpack:///./node_modules/ant-design-vue/es/_util/portalDirective.js","webpack:///./node_modules/ant-design-vue/es/_util/antDirective.js","webpack:///./node_modules/ant-design-vue/es/base/index.js","webpack:///./node_modules/ant-design-vue/es/locale-provider/LocaleReceiver.js","webpack:///./node_modules/ant-design-vue/es/_util/store/connect.js","webpack:///./node_modules/ant-design-vue/es/icon/utils.js","webpack:///./node_modules/ant-design-vue/es/message/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tooltip/placements.js","webpack:///./node_modules/ant-design-vue/es/vc-tooltip/Content.js","webpack:///./node_modules/ant-design-vue/es/vc-tooltip/Tooltip.js","webpack:///./node_modules/ant-design-vue/es/vc-tooltip/index.js","webpack:///./node_modules/ant-design-vue/es/tooltip/placements.js","webpack:///./node_modules/ant-design-vue/es/tooltip/abstractTooltipProps.js","webpack:///./node_modules/ant-design-vue/es/tooltip/Tooltip.js","webpack:///./node_modules/ant-design-vue/es/tooltip/index.js"],"names":["placeholder","lang","rangePlaceholder","today","now","backToToday","ok","clear","month","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","timePickerLocale","locale","Pagination","DatePicker","TimePicker","Calendar","global","Table","filterTitle","filterConfirm","filterReset","selectAll","selectInvert","sortTitle","expand","collapse","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","description","Icon","icon","Text","edit","copy","copied","PageHeader","back","customCache","Set","setTwoToneColor","primaryColor","setTwoToneColors","add","apply","Object","keys","filter","key","map","name","props","tabIndex","number","type","string","component","any","viewBox","spin","bool","def","rotate","theme","oneOf","twoToneColor","role","render","h","_this","this","LocaleReceiver","attrs","componentName","scopedSlots","context","_classNames","$props","$slots","listeners","Component","children","length","undefined","warning","Boolean","classString","svgClassString","svgStyle","msTransform","transform","innerSvgProps","style","iconTabIndex","iProps","on","staticClass","tag","_innerSvgProps","computedType","themeInName","focusable","renderInnerNode","renderIcon","options","scriptUrl","_options$extraCommonP","extraCommonProps","document","window","createElement","has","script","setAttribute","body","appendChild","functional","slots","data","restProps","content","iconProps","getTwoToneColors","install","Vue","use","UA","navigator","userAgent","toLowerCase","isIE9","indexOf","isTextInputType","str","expectsLowerCase","create","list","split","i","val","makeMap","onCompositionStart","e","target","composing","onCompositionEnd","trigger","el","createEvent","initEvent","dispatchEvent","antInput","directive","inserted","binding","vnode","modifiers","lazy","addEventListener","vmodel","activeElement","canUseDOM","DOMWrap","mixins","BaseMixin","resizeObserver","mutationObserver","originalTotalWidth","overflowedItems","menuItemSizes","lastVisibleIndex","mounted","$nextTick","setChildrenWidthAndResize","level","mode","menuUl","$el","entries","forEach","slice","call","concat","observe","MutationObserver","disconnect","attributes","childList","subTree","beforeDestroy","methods","getMenuItemNodes","prefixCls","ul","node","className","getOverflowedSubMenuItem","keyPrefix","renderPlaceholder","$createElement","_$props","overflowedIndicator","_getPropsData","rest","title","events","eventKey","display","visibility","position","popupClassName","k","subMenuProps","disabled","SubMenu","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","menuItemNodes","c","overflowedIndicatorWidth","reduce","acc","cur","handleResize","_this2","width","currentSumWidth","liWidth","setState","renderChildren","_this3","$data","childNode","index","item","overflowed","ret","push","arguments","Tag","tagProps","visible","hiddenClassName","updateActiveKey","store","menuId","activeKey","state","getState","getEventKey","saveRef","instanceArrayKeyIndexMap","instanceArray","getActiveKey","originalActiveKey","defaultActiveFirst","found","propsData","componentOptions","SubPopupMenu","openTransitionName","openAnimation","oneOfType","object","openKeys","arrayOf","parentMenu","forceSubMenuRender","multiple","selectedKeys","defaultSelectedKeys","defaultOpenKeys","triggerSubMenuAction","inlineIndent","manualRef","func","itemIcon","expandIcon","__propsSymbol__","created","prevProps","updated","onKeyDown","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","start","child","getIcon","instance","temp","$scopedSlots","_temp","slotsProp","slot","renderCommonMenuItem","extraProps","childProps","isActive","childListeners","newChildProps","renderMenuItem","rootPrefixCls","bind","subMenuOpenDelay","subMenuCloseDelay","builtinPlacements","click","itemHover","openChange","deselect","select","subMenuKey","isRootMenu","domWrapProps","keydown","connect","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","RIGHT","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","altKey","ctrlKey","metaKey","navigation","isCssAnimationSupported","endEvents","capitalPrefixes","prefixes","getStyleProperty","getComputedStyle","getPropertyValue","fixBrowserByTimeout","transitionDelay","parseFloat","transitionDuration","animationDelay","animationDuration","time","Math","max","rcEndAnimTimeout","setTimeout","rcEndListener","clearBrowserBugTimeout","clearTimeout","cssAnimation","transitionName","endCallback","nameIsObj","activeClassName","end","nodeClasses","prototype","toString","rcAnimTimeout","remove","removeEndEventListener","addEndEventListener","stop","s","hasOwnProperty","setTransition","p","value","property","v","prefix","Tree","treeData","array","showLine","showIcon","selectable","checkable","checkStrictly","draggable","defaultExpandParent","autoExpandParent","defaultExpandAll","defaultExpandedKeys","expandedKeys","defaultCheckedKeys","checkedKeys","loadData","loadedKeys","filterTreeNode","switcherIcon","_propsSymbol","needSyncKeys","domTreeNodes","_posEntities","Map","_keyEntities","_expandedKeys","_selectedKeys","_checkedKeys","_halfCheckedKeys","_loadedKeys","_loadingKeys","_treeNode","_prevProps","_dragOverNodeKey","_dropPosition","_dragNodesKeys","getDerivedState","provide","vcTree","watch","getWatch","prevState","newState","self","needSync","treeNode","entitiesMap","keyEntities","checkedKeyEntity","halfCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","onNodeDragStart","event","dragNode","onNodeDragEnter","pos","$refs","selectHandle","dropPosition","delayedDragEnterLogic","newExpandedKeys","onNodeDragOver","_$data","onNodeDragLeave","onNodeDragEnd","onNodeDrop","_$data2","_$data2$_dragNodesKey","posArr","dropResult","dragNodesKeys","Number","dropToGap","onNodeClick","onNodeDoubleClick","onNodeSelect","_getOptionProps","selected","targetSelected","selectedNodes","entity","get","setUncontrolledState","eventObj","nativeEvent","onNodeCheck","checked","_$data3","oriCheckedKeys","oriHalfCheckedKeys","checkedObj","halfChecked","checkedNodes","_conductCheck","checkedNodesPositions","onNodeLoad","Promise","resolve","_ref","_ref$_loadedKeys","_ref$_loadingKeys","loadingKeys","then","_$data4","currentLoadedKeys","currentLoadingKeys","newLoadedKeys","newLoadingKeys","onNodeExpand","_getOptionProps4","expanded","targetExpanded","loadPromise","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","replace","registerTreeNode","isKeyChecked","_$data$_checkedKeys","renderTreeNode","_$data5","_$data5$_expandedKeys","_$data5$_selectedKeys","_$data5$_halfCheckedK","_$data5$_loadedKeys","_$data5$_loadingKeys","dragOverNodeKey","loaded","loading","dragOver","dragOverGapTop","dragOverGapBottom","_this4","_$props$tabIndex","unselectable","proxyComponent","TreeNode","getPopupContainer","String","shape","validator","includes","size","src","srcSet","alt","loadError","Function","inject","configProvider","isImgExist","isMounted","scale","$forceUpdate","setScale","avatarChildren","avatarNode","childrenWidth","offsetWidth","nodeWidth","lastChildrenWidth","lastNodeWidth","handleImgLoadError","_sizeCls","_extends3","customizePrefixCls","getPrefixCls","sizeCls","sizeStyle","height","lineHeight","fontSize","childrenNode","transformString","childrenStyle","WebkitTransform","sizeChildrenStyle","ref","_childrenStyle","opacity","Avatar","applePhone","appleIpod","appleTablet","androidPhone","androidTablet","amazonPhone","amazonTablet","windowsPhone","windowsTablet","otherBlackberry","otherBlackberry10","otherOpera","otherChrome","otherFirefox","match","regex","test","isMobile","ua","tmp","_tmp","_tmp3","result","apple","phone","ipod","tablet","device","amazon","android","windows","other","blackberry","blackberry10","opera","firefox","chrome","noop","getKeyFromChildrenIndex","menuEventKey","getMenuIdFromSubMenuEventKey","loopMenuItem","cb","isMenuItemGroup","c2","loopMenuItemRecursively","find","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","restartCloseTimer","startCloseTimer","clearCloseTimer","willDestroy","close","stopPropagation","closeTimer","_className","componentClass","right","seed","Date","Notification","animation","maxCount","notices","getTransitionName","notice","previousState","noticeIndex","updatedNotices","splice","updateKey","shift","transitionProps","getTransitionProps","noticeNodes","onClose","args","createChainedFunction","noticeProps","Notice","top","left","properties","getContainer","div","notification","removeNotice","destroy","$destroy","parentNode","removeChild","scrollbarVerticalSize","scrollbarHorizontalSize","scrollbarMeasure","measureScrollbar","_ref$direction","isVertical","scrollDiv","scrollProp","overflowY","overflowX","clientWidth","offsetHeight","clientHeight","front","last","ColumnManager","columns","_cached","_cache","some","column","fixed","groupedColumns","_this5","_this6","_leafColumns","_this7","leftColumns","_this8","rightColumns","_this9","_groupColumns","currentRow","parentColumn","rows","grouped","setRowSpan","rowSpan","newColumn","colSpan","fn","_this10","leafColumns","table","expandIconAsCell","columnManager","cols","leftLeafColumns","rightLeafColumns","dataIndex","additionalProps","mergedKey","w","minWidth","from","row","components","customHeaderRow","computed","fixedColumnsHeadRowsHeight","headerHeight","HeaderRow","header","HeaderCell","cell","rowProps","customStyle","isLast","cellProps","customProps","customHeaderCell","headerCellProps","align","textAlign","ellipsis","getHeaderRows","_ref$columns","_ref$currentRow","_ref$rows","_ref$isLast","cellIsLast","isRequired","expander","_table","sComponents","showHeader","renderExpandIndentCell","HeaderWrapper","wrapper","isInvalidRenderCellText","text","record","indent","indentSize","handleClick","onCellClick","BodyCell","customRender","_column$className","transformCellText","tdProps","customCell","indentText","paddingLeft","cellClassName","customRow","rowKey","hasExpandIcon","renderExpandIcon","renderExpandIconCell","expandedRow","isAnyColumnsFixed","ancestorKeys","expandIconColumnIndex","expandRowByClick","expandedRowKeys","_store","expandedRowsHeight","fixedColumnsBodyRowsHeight","hovered","currentHoverKey","shouldRender","saveRowRef","handler","immediate","rowRef","onRowClick","rowPropFunc","onRowDoubleClick","onContextMenu","onMouseEnter","onMouseLeave","setExpandedRowHeight","setRowHeight","getStyle","_customRow","BodyRow","cells","TableCell","customClass","customClassName","rowClassName","rowPropEvents","bodyRowProps","dblclick","mouseenter","mouseleave","contextmenu","expandable","needIndentSpaced","onExpand","expandClassName","childrenColumnName","expandedRowRender","handleDestroy","columnIndex","tempExpandIconAsCell","tempExpandIconColumnIndex","handleExpandChange","handleRowClick","ExpandIcon","childrenData","expandableRowProps","rowClick","tableClassName","hasHead","hasBody","getRowKey","getColumns","_$props$columns","handleRowHover","isHover","renderRows","renderData","_table$customRow","_getListeners","_getListeners$rowClic","_getListeners$rowDoub","rowDoubleclick","_getListeners$rowCont","rowContextmenu","onRowContextMenu","_getListeners$rowMous","rowMouseenter","onRowMouseEnter","_getListeners$rowMous2","rowMouseleave","onRowMouseLeave","_loop","onHoverProps","rowPrefixCls","expandedChange","expandableRow","tableRowProps","_table2","scroll","getBodyWrapper","_$props2","tableStyle","x","tableWidthScrollX","sum","BodyWrapper","ColGroup","TableHeader","handleBodyScrollLeft","useFixedHeader","headStyle","scrollbarWidth","y","scrollbarWidthOfHeader","marginBottom","paddingBottom","directives","handleBodyScroll","handleWheel","bodyStyle","innerBodyStyle","maxHeight","baseTable","refName","useTabIndex","expandedRowClassName","defaultExpandAllRows","defaultExpandedRowKeys","finalExpandedRowKeys","handleUpdated","latestExpandedRows","expandedRowIndex","iconColumn","unshift","renderExpandedRow","parentKey","colCount","_renderRows","nextAncestorKeys","nextIndent","id","footer","emptyText","tableLayout","preData","$root","constructor","observable","_components","reset","hasScrollX","resetScrollX","setScrollPosition","debouncedWindowResize","wait","timeout","debounceFunc","_len","Array","_key","persist","later","callNow","cancel","debounce","handleWindowResize","resizeEvent","ref_headTable","scrollLeft","ref_bodyTable","scrollPosition","tableNode","RegExp","setScrollPositionClassName","scrollToLeft","scrollToRight","isTableLayoutFixed","_$props$scroll","syncFixedTableRowHeight","tableRect","headRows","querySelectorAll","bodyRows","getAttribute","_scroll","currentTarget","_scroll2","lastScrollLeft","handleBodyScrollTop","_scroll3","ref_fixedColumnsBodyLeft","ref_fixedColumnsBodyRight","scrollTop","lastScrollTop","_$props$scroll2","wd","deltaY","bodyTable","fixedColumnsBodyLeft","fixedColumnsBodyRight","saveTableNodeRef","renderMainTable","scrollable","renderTable","renderEmptyText","renderFooter","renderLeftFixedTable","renderRightFixedTable","_scroll4","HeadTable","BodyTable","renderTitle","hasLeftFixed","isAnyColumnsLeftFixed","hasRightFixed","isAnyColumnsRightFixed","expandableTableProps","Column","ColumnGroup","isTableColumnGroup","getTableNode","getBodyTable","normalize","elements","element","cls","_getSlots","tProps","autoAdjustOverflow","adjustX","adjustY","targetOffset","topLeft","points","overflow","offset","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","minOverlayWidthMatchTrigger","overlayClassName","openClassName","overlayStyle","placement","overlay","alignPoint","showAction","hideAction","defaultVisible","mouseEnterDelay","mouseLeaveDelay","sVisible","$emit","childOriginEvents","onVisibleChange","getMinOverlayWidthMatchTrigger","getOverlayElement","getMenuElement","extraOverlayProps","getPopupDomNode","getMenuElementOrLambda","getOpenClassName","afterVisibleChange","overlayNode","rootNode","_component","alignInstance","forceAlign","otherProps","triggerHideAction","triggerProps","popupStyle","action","popupPlacement","popupAlign","popupTransitionName","popupAnimation","popupVisible","afterPopupVisibleChange","popupVisibleChange","forceRender","ButtonTypesProps","buttonTypes","DropdownProps","getDropdownProps","ButtonGroup","Group","model","prop","htmlType","href","savePopupRef","popupRef","getContextPopupContainer","dropdownProps","visibleChange","buttonGroupProps","_$props$placement","renderOverlay","isArray","_ref$selectable","_ref$focusable","dropdownTrigger","triggerActions","Button","inheritAttrs","defaultChecked","readOnly","autoFocus","sChecked","input","focus","blur","handleChange","shiftKey","eventShiftKey","others","globalProps","prev","substr","domProps","change","__ANT_CHECKBOX","isGroup","indeterminate","checkboxGroupContext","_value","prevValue","_checkboxGroupContext","checkboxGroup","registerValue","cancelValue","_checkboxGroupContext2","_checkboxGroupContext3","targetChecked","vcCheckbox","_getListeners$mouseen","_getListeners$mousele","restListeners","checkboxProps","toggleOption","label","sValue","checkboxClass","defaultValue","registeredValues","getOptions","option","optionIndex","sort","a","b","findIndex","opt","groupPrefixCls","onChange","radioGroupContext","onRadioChange","radioGroup","radioProps","stateValue","wrapperClassString","buttonStyle","updatingValue","radioOptions","classes","ev","lastValue","Radio","handelClick","Option","selectOptionsProps","selelctProps","showTitle","itemRender","handleKeyPress","changeSize","quickGo","selectComponentClass","current","pageSizeOptions","pageSize","buildOptionText","selectPrefixCls","goButton","goInputText","getValidValue","isNaN","defaultBuildOptionText","_e$target","isComposing","handleBlur","relatedTarget","go","Select","changeSelect","goInput","gotoButton","showSearch","optionLabelProp","dropdownMatchSelectWidth","triggerNode","calculatePage","statePageSize","floor","total","defaultCurrent","defaultPageSize","hideOnSinglePage","showSizeChanger","showLessItems","showPrevNextJumpers","showQuickJumper","showTotal","simple","prevIcon","nextIcon","jumpPrevIcon","jumpNextIcon","hasOnChange","console","warn","stateCurrent","min","stateCurrentInputValue","newCurrent","oldValue","paginationNode","lastCurrentNode","querySelector","_current","getJumpPrevPage","getJumpNextPage","getItemIcon","inputValue","allPages","isValid","isFinite","shouldDisplayQuickJumper","handleKeyDown","handleKeyUp","changePageSize","preCurrent","currentPage","hasPrev","next","hasNext","jumpPrev","jumpNext","runIfEnter","charCode","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","pagerList","firstPager","lastPager","pageBufferSize","prevPage","nextPage","pagerProps","keypress","Pager","prevItemTitle","nextItemTitle","jumpPrevClassString","jumpNextClassString","_i","_active","totalText","prevDisabled","nextDisabled","Options","showSizeChange","getIconsProps","renderPagination","contextLocale","customizeSelectPrefixCls","customLocale","isSmall","paginationProps","MiniSelect","mini","defaultLocale","SpinSize","spinning","wrapperClassName","tip","delay","indicator","defaultIndicator","shouldBeDelayed","shouldDelay","originalUpdateSpinning","updateSpinning","debouncifyUpdateSpinning","sSpinning","cancelExistingSpin","getChildren","renderIndicator","dotClassName","_spinClassName","spinClassName","spinElement","_containerClassName","containerClassName","ColumnFilterItem","loose","ColumnProps","filters","filterMultiple","filterDropdown","filterDropdownVisible","sorter","boolean","defaultSortOrder","filterIcon","filteredValue","filtered","defaultFilteredValue","sortOrder","sortDirections","TableLocale","RowSelectionType","TableRowSelection","selectedRowKeys","getCheckboxProps","selections","hideDefaultSelections","columnWidth","selectWay","columnTitle","TableProps","dropdownPrefixCls","rowSelection","pagination","dataSource","bordered","SelectionCheckboxAllProps","getCheckboxPropsByItem","getRecordKey","SelectionBoxProps","defaultSelection","rowIndex","FilterMenuProps","confirmFilter","handleFilter","flatArray","childrenName","loop","newItem","treeMap","tree","mapper","extra","flatFilter","generateValueMaps","items","maps","preProps","sSelectedKeys","sKeyPathOfSelectedItem","sValueKeys","nextProps","setNeverShown","getDropdownVisible","neverShown","setSelectedKeys","setVisible","onFilterDropdownVisibleChange","handleClearFilters","handleConfirm","confirmFilter2","handleMenuItemClick","info","keyPath","keyPathOfSelectedItem","hasSubMenu","_column$filters","propSelectedKeys","valueKeys","renderMenus","containSelected","subMenuCls","renderFilterIcon","_classNames2","dropdownIconClass","MenuItem","originSelectedKeys","dropdownMenuClass","confirm","clearFilters","menus","FilterDropdownMenuWrapper","selectionDirty","checkSelection","byDefaultChecked","getIndeterminateState","someCheckedNotByDefaultChecked","someCheckedByDefaultChecked","getCheckState","defaultSelections","setCheckState","deep","_ref2","handleSelectAllChange","selection","Item","selectionPrefixCls","customSelections","newSelections","menu","__ANT_TABLE_COLUMN_GROUP","BodyRowProps","createBodyRow","Spin","setDefaultIndicator","Content","getScroll","method","isWindow","documentElement","easeInOutCubic","t","d","cc","inlineStyle","border","background","padding","noStyle","onKeyUp","setRef","btn","$listeners","keyup","getRowSelection","getColumnKey","defaultPagination","onShowSizeChange","emptyObject","bodyRow","getFilteredValueColumns","getFiltersFromColumns","col","colKey","CheckboxPropsCache","getDefaultSortOrder","sFilters","getDefaultFilters","sPagination","getDefaultPagination","pivot","filterDataCnt","newPagination","oldVal","filtersFromColumns","newFilters","columnKey","components1","components2","isTheSameComponents","sortColumn","sSortColumn","sSortOrder","getSortOrderColumns","sortState","getSortStateFromColumns","getDefaultSelection","getFlatData","hasPagination","definedFilters","defaultFilters","soFar","definedSortState","defaultSortedColumn","sortedColumn","getMaxCurrent","_sPagination","recordKey","getSorterFn","getCurrentPageData","getLocalData","MAX_VALUE","getFlatCurrentPageData","currentState","sorterFn","recursiveSort","findColumn","values","onFilter","onRow","custom","setSelectedRowKeys","selectionInfo","changeRowKeys","selectedRows","onSelectMultiple","changeRows","onSelectAll","_changeRows","onSelectInvert","generatePopupContainerFunc","vcTable","scrollToFirstRow","scrollToFirstRowOnChange","_options$getContainer","_options$duration","container","startTime","frameFunc","nextScrollTop","scrollTo","pageXOffset","isSameColumn","nextFilters","currentColumnKeys","filtersToSetState","prepareParamsArguments","sSelectionDirty","handleSelect","realIndex","sign","dist","abs","j","handleRadioSelect","handleSelectRow","selectionKey","onSelectFunc","changeableRowKeys","customSelectionStartIndex","handlePageChange","otherArguments","handleShowSizeChange","nextPagination","toggleSortOrder","newSortOrder","methodIndex","isSortColumn","currentColumn","order","field","currentDataSource","myKey","_childrenColumnName","paginationPosition","renderSelectionBox","_","selectionBoxProps","SelectionBox","renderRowSelection","_ref3","selectionColumnClass","selectionColumn","checkboxAllDisabled","SelectionCheckboxAll","renderColumnsDropdown","_ref4","_this11","_classNames3","sortButton","colFilters","Symbol","isAscend","isDescend","ascend","descend","colProps","onHeaderCellClick","renderColumnTitle","_ref5","_classNames4","_this12","renderEmpty","contextGetPopupContainer","realGetPopupContainer","mergedLocale","columnsWithRowSelection","vcTableProps","_this13","customizeDropdownPrefixCls","customizeTransformCellText","_configProvider","tct","paginationPatchClass","spinProps","MenuItemGroup","renderInnerMenuItem","titleClassName","listClassName","ObjProto","hasOwn","FN_MATCH_REGEXP","getType","getNativeType","isInteger","isFunction","toType","defineProperty","enumerable","writable","required","_vueTypes_name","validateType","silent","typeToCheck","valid","expectedType","namePrefix","join","VuePropTypes","currentDefaults","integer","validatorFn","warnMsg","TypeError","msg","allowedTypes","instanceOf","instanceConstructor","hasCustomValidators","nativeChecks","typesStr","objectOf","requiredKeys","req","_vueTypes_isLoose","set","attribute","isSelected","prevActive","callRef","onlyScrollIfNeeded","domEvent","getActiveClassName","getSelectedClassName","getDisabledClassName","mouseEvent","liProps","connected","menuPropsContext","subMenu","antdMenuTheme","slotsKey","animate","show","done","requestAnimationFrameId","appearRequestAnimationFrameId","enter","nextTick","leave","getInlineCollapsed","layoutSiderContext","menuItem","$attrs","inlineCollapsed","tooltipTitle","tooltipProps","siderCollapsed","sCollapsed","itemProps","toolTipProps","MenuMode","Menu","commonPropsType","Divider","ItemGroup","propsUpdating","switchingModeFromInline","sOpenKeys","collapsedChange","leaveAnimationExecutedWhenInlineCollapsed","inlineOpenKeys","restoreModeVerticalFromInline","handleMouseEnter","handleTransitionEnd","widthCollapsed","propertyName","classNameValue","animVal","iconScaled","handleOpenChange","handleDeselect","setOpenKeys","getRealMenuMode","getMenuOpenAnimation","menuMode","menuOpenAnimation","_menuClassName","collapsedWidth","menuClassName","menuProps","nativeOn","transitionend","hideMenu","notificationInstance","defaultDuration","defaultTop","defaultBottom","defaultPlacement","defaultGetContainer","defaultCloseIcon","getPlacementStyle","bottom","typeToIcon","success","error","api","open","message","outerPrefixCls","iconNode","iconType","_ref$placement","_ref$getContainer","_ref$closeIcon","_closeIcon","cacheKey","newInstance","getNotificationInstance","config","getDisplayName","WrappedComponent","wrapWithConnect","tempProps","ProxyWrappedComponent","getProxyWrappedInstance","wrappedInstance","_$slots","wrapProps","componentWillReceiveProps","m","_getProxyWrappedInsta","rxTwoCNChar","isTwoCNChar","__ANT_BUTTON","sizeMap","large","small","sLoading","hasTwoCNChar","ghost","block","autoInsertSpace","autoInsertSpaceInButton","preVal","delayTimeout","fixTwoCNChar","buttonNode","buttonText","textContent","isNeedInserted","insertSpace","needInserted","trim","buttonProps","kids","warned","contains","root","n","PresetColorRegex","color","afterClose","_visible","defaultPrevented","handleIconClick","isPresetColor","getTagStyle","backgroundColor","getTagClassName","renderCloseIcon","appear","CheckableTag","cloneVNode","cloned","elm","asyncFactory","ns","isStatic","isComment","fnContext","fnOptions","fnScopeId","isCloned","cloneVNodes","vnodes","res","cloneElement","nodeProps","ele","_nodeProps$props","_nodeProps$on","_nodeProps$nativeOn","_nodeProps$directives","_nodeProps$attrs","_nodeProps$domProps","_nodeProps$style","tempStyle","_nodeProps$class","tempCls","_nodeProps$scopedSlot","hasClass","classList","warnDeprecatedLabel","toTitle","createRef","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","flatToHierarchy","positionList","entrances","posMap","parsedList","clone","fields","parentPos","parentEntity","treeCheckable","treeCheckStrictly","labelInValue","cleanEntity","getFilterTree","treeNodes","searchValue","filterFunc","valueEntities","mapFilteredNodeToData","formatInternalValue","valueList","getLabel","wrappedValue","treeNodeLabelProp","formatSelectorValue","showCheckedStrategy","hierarchyList","targetValueList","traverse","processProps","_props$on","convertDataToTree","initWrapper","processEntity","currentEntity","getHalfCheckedKeys","_ref6","_ref7","parent","parentValue","conductCheck","BUILT_IN_PLACEMENTS","ignoreShake","dropdownPopupAlign","dropdownClassName","dropdownStyle","isMultiple","dropdownVisibleChange","popupElement","triggerRef","getDropdownTransitionName","forcePopupAlign","$trigger","stretch","popup","selectorValueList","allowClear","showArrow","removeSelected","choiceTransitionName","ariaId","inputIcon","clearIcon","removeIcon","focused","renderSelection","vcTreeSelect","domRef","onFocus","onSelectorFocus","onBlur","onSelectorBlur","renderClear","onSelectorClear","renderArrow","outline","_$props3","onSelectorKeyDown","myTabIndex","modeName","selectorRef","innerNode","_selectorValueList$","_$props$showArrow","needAlign","mirrorSearchValue","inputRef","mirrorInputRef","alignInputWidth","isDidMount","handleInputChange","_searchValue","onSearchInputChange","onSearchInputKeyDown","maxTagTextLength","onRemove","maxTagCount","maxTagPlaceholder","onPlaceholderClick","_renderPlaceholder","currentPlaceholder","onChoiceAnimationLeave","onMultipleSelectorRemove","myValueList","selectedValueNodes","restValueList","restNodeSelect","afterLeave","_ref$_prevProps","expandedKeyList","_expandedKeyList","cachedExpandedKeyList","_cachedExpandedKeyList","treeExpandedKeys","filteredTreeNodes","upperSearchValue","_keyList","searchHalfCheckedKeys","treeIcon","treeLine","treeNodeFilterProp","treeDefaultExpandAll","treeDefaultExpandedKeys","notFoundContent","renderSearch","treeRef","onTreeExpand","onLoad","getTree","getLoadData","filterVal","toUpperCase","renderNotFound","_$props4","keyList","_$props5","_vcTreeSelect","onPopupKeyDown","onTreeNodeSelect","onTreeNodeCheck","treeProps","$notFound","$treeNodes","$tree","treeAllProps","check","load","searchRef","_renderSearch","isTreeNode","scopedSlotsTemp","treeNodeProps","prefixAria","defaultOpen","autoClearSearchValue","treeDataSimpleMode","selectTriggerRef","_open","_valueList","_searchHalfCheckedKeys","_missValueList","_selectorValueList","_valueEntities","_init","_focused","_treeNodes","_filteredTreeNodes","onComponentKeyDown","domNode","triggerContainer","prefixClass","findPopupContainer","searchNode","offsetTop","_prevState$_prevProps","processState","propName","updater","valueRefresh","propValue","pId","rootPId","keyNodes","rootNodeList","treeDataChanged","treeDataModeChanged","simpleMapper","convertTreeToEntities","posEntities","missValueList","filteredValueList","latestValueList","valueLabels","wrapperValue","filterTreeNodeFn","SelectNode","setOpenState","nodeEventInfo","triggerChange","isSearchValueControlled","removeValue","triggerEntity","newValueList","pos1","pos2","fields1","fields2","minLen","isPosRelated","extraInfo","triggerValue","deselectInfo","filteredEntityList","allCheckedNodes","_ref8","newMissValueList","_ref9","isLabelInValue","onValueTrigger","isAdd","nodeList","nodeExtraInfo","_ref10","selectedValue","_ref11","_ref12","_ref13","checkedNodeList","oriKeyList","_ref14","_ref15","onDropdownVisibleChange","_$props6","_$data6","_$props7","isSet","_$data7","setPopupRef","byTrigger","documentClickClose","_$props8","delayForcePopupAlign","_$data8","prevSelectorValueList","preValue","_ref16","connectValueList","labelList","returnValue","_ref17","_ref18","_$data9","passProps","choiceAnimationLeave","popupProps","treeExpanded","Popup","MultiplePopup","$popup","Selector","$selector","selectTriggerProps","SHOW_ALL","SHOW_PARENT","SHOW_CHILD","TreeSelect","suffixIcon","replaceFields","renderSwitcherIcon","isLeaf","updateTreeData","_item$scopedSlots","newLabel","newTitle","dataRef","_cls","finalRemoveIcon","finalClearIcon","VcTreeSelectProps","module","exports","ButtonGroupProps","_classes","isSimilarValue","val1","val2","int1","int2","getElement","getPoint","point","childrenProps","monitorBufferTime","monitorWindowResize","aligned","startMonitorWindowResize","reAlign","source","sourceRect","lastElement","currentElement","lastPoint","currentPoint","pageX","pageY","clientX","clientY","preRect","stopMonitorWindowResize","resizeHandler","bufferMonitor","ms","timer","bufferFn","buffer","restoreFocus","divProps","LazyRenderBox","getClassNameFromAlign","getRootDomNode","destroyPopupOnHide","maskAnimation","maskTransitionName","mask","zIndex","domEl","stretchChecked","targetWidth","targetHeight","setStretchSize","onAlign","popupDomNode","currentAlignClassName","getClassName","$ele","popupInstance","getTargetElement","getAlignTarget","getMaskTransitionName","getPopupElement","minHeight","popupInnerProps","getZIndexStyle","css","useTransition","transitionEvent","beforeEnter","beforeLeave","_animation$on","_animation$props","_props","PopupInner","getMaskElement","maskElement","maskTransition","isPointsEq","a1","a2","isAlignPoint","autoMount","autoDestroy","getComponent","renderComponent","removeContainer","ready","componentEl","com","setComponent","_com","ALL_HANDLERS","getPopupClassNameFromAlign","focusDelay","blurDelay","getDocument","maskClosable","defaultPopupVisible","vcTriggerContext","dialogContext","fireEvents","prevPopupVisible","sPopupVisible","deactivated","setPopupVisible","updatedCal","clearDelayTimer","clearOutsideHandler","mouseDownTimeout","currentDocument","clickOutsideHandler","isClickToHide","isContextmenuToShow","onDocumentClick","touchOutsideHandler","contextmenuOutsideHandler1","onContextmenuClose","contextmenuOutsideHandler2","onMouseenter","delaySetPopupVisible","onMouseMove","setPoint","onMouseleave","onPopupMouseenter","onPopupMouseleave","isFocusToShow","focusTime","onMousedown","preClickTime","onTouchstart","preTouchTime","isBlurToHide","onContextmenu","preTime","isClickToShow","nextVisible","onPopupMouseDown","_vcTriggerContext","hasPopupMouseDown","handleGetPopupClassFromAlign","getAlignPopupClassName","getPopupAlign","placementStr","baseAlign","getAlignFromPlacement","savePopup","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","mousedown","touchstart","_self$$props","popupContainer","delayS","delayTimer","requestAnimationTimeout","createTwoChains","mousemove","ContainerRender","afterEnter","_opt$appear","isSelectOption","isSelectOptGroup","getValuePropValue","Error","getPropValue","newChild","isCombobox","combobox","isMultipleOrTags","tags","isMultipleOrTagsOrCombobox","isSingleMode","toArray","getMapKey","preventDefaultEvent","findIndexInValueBySingleValue","singleValue","getLabelFromPropsValue","defaultFilterFn","optionFilterProp","validateOptionValue","defaultActiveFirstOption","dropdownMenuStyle","menuItems","backfillValue","firstActiveValue","menuItemSelectedIcon","scrollActiveItemToView","lastVisible","rafInstance","lastInputValue","prevVisible","itemComponent","firstActiveItem","scrollIntoViewOpts","alignWithTop","menuRef","renderMenu","menuDeselect","menuSelect","popupScroll","getSelectKeys","itemValue","itemKey","activeKeyProps","clonedMenuItems","foundFirst","_getListeners2","popupFocus","dropdownAlign","filterOption","empty","dropdownRender","dropdownWidth","saveDropdownMenuRef","saveTriggerRef","setDropdownWidth","cancelRafInstance","getInnerMenu","dropdownMenuRef","getPopupDOMNode","getDropdownElement","newProps","getDropdownPrefixCls","dropdownMenuProps","menuNode","DropdownMenu","_popupClassName","widthProp","SelectPropTypes","tokenSeparators","getInputElement","backfill","inBrowser","weexPlatform","WXEnvironment","platform","isIE","isEdge","chaining","fns","_len2","_key2","OptGroup","saveInputRef","saveInputMirrorRef","saveTopCtrlRef","saveSelectTriggerRef","saveRootRef","saveSelectionRef","_mouseDown","_options","_empty","optionsInfo","getOptionsInfoFromProps","isDisabledExist","getValueFromProps","_inputValue","getInputValueForCombobox","_optionsInfo","_backfillValue","_skipBuildOptionsInfo","_ariaId","getTime","r","random","_mirrorInputValue","inputNode","getInputDOMNode","mirrorNode","getInputMirrorDOMNode","clearFocusTime","clearBlurTime","clearComboboxTime","dropdownContainer","getOptionsFromChildren","useDefaultValue","getLabelFromOption","preState","oldOptionsInfo","onInputChange","_$data$_inputValue","separators","lastIndexOf","includesSeparators","nextValue","getValueByInput","fireChange","needFocus","setInputValue","timeoutFocus","updateFocusClassName","onInputKeydown","maybeFocus","isRealOpen","getRealOpenState","openIfHasChildren","comboboxTimer","handleBackfill","onMenuSelect","skipTrigger","fireSearch","fireSelect","onMenuDeselect","menuItemDomNode","offsetParent","onArrowClick","onPopupFocus","onClearSelection","getOptionInfoBySingleValue","defaultLabel","valueLabel","defaultValueLabel","getOptionBySingleValue","getOptionsBySingleValue","getValueByLabel","oldLable","getVLBySingleValue","getLabelBySingleValue","getVLForOnChange","vlsS","vls","vl","getDropdownContainer","getPlaceholderElement","hidden","inputClick","inputBlur","arrow","blurTimer","firstOption","findFirstMenuItem","tmpValue","inputFocus","rootRef","_getInputElement","defaultInput","autoComplete","inputElement","inputCls","inputEvents","inputKeydown","topCtrlRef","inputMirrorRef","getPopupMenuComponent","nextState","hasNewValue","reg","token","splitBySeparators","selectionRef","markMouseDown","markMouseLeave","_filterOption","defaultFilter","filterFn","focusTimer","selectedKey","isChildDisabled","_valueOptions","renderFilterOptions","childrenKeys","renderFilterOptionsFromChildren","_p","sel","childChildren","innerItems","subChild","childValueSub","_innerItems","childValue","renderTopControlNode","_this14","showSelectedValue","_getOptionInfoBySingl3","limitedCountValue","maxTagPlaceholderEl","omittedValues","choiceClassName","topCtrlContainerClick","_$props4$showArrow","defaultIcon","selectionRefClick","selectionRefFocus","selectionRefBlur","_rootCls","_props$showArrow","ctrlNode","filterOptions","realOpen","_getListeners$popupSc","selectionProps","extraSelectionProps","rootCls","SelectTrigger","Value","SelectValue","SelectProps","SECRET_COMBOBOX_MODE_DO_NOT_USE","propTypes","getNotFoundContent","vcSelect","renderSuffixIcon","modeConfig","finalMenuItemSelectedIcon","selectProps","_option$label","restOption","PRESENTED_IMAGE_DEFAULT","xmlns","fill","fillRule","fillOpacity","cx","cy","rx","ry","image","imageStyle","ConfigConsumerProps","contentLocale","des","imageNode","PRESENTED_IMAGE_SIMPLE","stroke","RenderEmpty","injections","renderHtml","suffixCls","getNumberArray","num","ScrollNumberProps","count","displayComponent","animateStarted","sCount","lastCount","onAnimated","_clearTimeout","getPositionByNum","currentCount","currentDigit","lastDigit","renderNumberList","childrenToReturn","renderCurrentNumber","transition","renderNumberElement","borderColor","boxShadow","PresetColorTypes","tuple","BadgeProps","showZero","overflowCount","dot","scrollNumberPrefixCls","status","numberStyle","getNumberedDispayCount","badgeCount","getDispayCount","isDot","getScrollNumberTitle","getStyleWithOffset","parseInt","marginTop","getBadgeClassName","hasStatus","isZero","numberedDispayCount","isHidden","displayCount","renderStatusText","renderDispayComponent","customNode","renderBadgeNumber","_scrollNumberCls","scrollNumberCls","statusStyle","ScrollNumber","customizeScrollNumberPrefixCls","scrollNumber","statusText","statusCls","styleWithOffset","statusTextColor","Badge","leftTop","rightTop","guid","popupPlacementMap","horizontal","vertical","popupOffset","isOpen","minWidthTimeout","mouseenterTimeout","adjustWidth","menuInstance","onTitleClick","triggerOpenChange","onPopupVisibleChange","subMenuInstance","onTitleMouseEnter","onTitleMouseLeave","onSubMenuClick","addKeyPath","saveMenuInstance","isChildrenSelected","subMenuTitle","popupMenu","subPopupMenuProps","internalMenuId","baseProps","haveRendered","haveOpened","transitionAppear","animProps","_attrs","isInlineMode","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","titleProps","styleForPesudo","nodeType","bindAnimationEvent","clickWaveTimeoutId","waveColor","insertExtraNode","extraNode","attributeName","getAttributeName","removeAttribute","csp","nonce","innerHTML","addStartEventListener","onTransitionStart","onTransitionEnd","animationStart","resetEffect","animationName","tagName","animationStartId","removeEventListener","Element","removeStartEventListener","getDerivedStateFromProps","eventName","l","ClearableInputType","inputType","handleReset","suffix","addonBefore","addonAfter","renderClearIcon","renderSuffix","renderLabeledIcon","getInputClassName","renderInputWithLabel","labeledElement","addonClassName","addonBeforeNode","addonAfterNode","mergedWrapperClassName","renderTextAreaWithClearIcon","renderClearableLabeledInput","onComponentUpdated","destroyObserver","onResize","_target$getBoundingCl","fixedWidth","fixedHeight","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","hiddenTextarea","calculateNodeStyling","useCache","nodeRef","boxSizing","paddingSize","borderSize","sizingStyle","nodeInfo","inputPrefixCls","maxLength","autosize","autoSize","textareaStyles","resizeStatus","resizeTextarea","raf","nextFrameActionId","resizeFrameId","resizeOnNextFrame","textArea","minRows","maxRows","uiTextNode","_calculateNodeStyling","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","scrollHeight","singleRowHeight","calculateNodeHeight","fixFirefoxAutoScroll","currentStart","selectionStart","currentEnd","selectionEnd","setSelectionRange","renderTextArea","textareaProps","setValue","resizableTextArea","resolveOnChange","resizeProps","fixControlledValue","originalInputValue","clearPasswordValueAttribute","removePasswordTimeout","renderInput","hasAttribute","TextArea","compact","_compact","enterButton","onSearch","renderLoading","renderAddonAfter","btnClassName","enterButtonAsElement","button","isAntdButton","extendOptions","customizeInputPrefixCls","inputClassName","search","inputProps","pressEnter","Input","ActionMap","visibilityToggle","_on","iconTrigger","antInputDirective","Search","Password","ids","wrapperRaf","delayFrames","myId","restFrames","internalCallback","pid","START_EVENT_NAME_MAP","transitionstart","WebkitTransition","MozTransition","OTransition","msTransition","animationstart","WebkitAnimation","MozAnimation","OAnimation","msAnimation","END_EVENT_NAME_MAP","animationend","startEvents","eventListener","process","EVENT_NAME_MAP","baseEventName","baseEvents","styleName","detectEvents","TransitionEvents","startEvent","endEvent","addEventListenerWrap","eventType","onlyTreeNodeWarned","warnOnlyTreeNode","arrDel","arrAdd","posToArr","getPosition","getNodeChildren","isCheckDisabled","disableCheckbox","traverseTreeNodes","processNode","subNode","subIndex","mapChildren","getDragNodesKeys","calcDropPosition","_treeNode$$refs$selec","calcSelectedKeys","internalProcessProps","processor","_ref3$processProps","childrenNodes","onProcessFinished","parseCheckedKeys","keyProps","isCheck","checkStatus","conductUp","everyChildChecked","someChildChecked","childKey","childChecked","childHalfChecked","conductDown","conduct","checkedKeyList","halfCheckedKeyList","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","err","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","conductExpandParent","__ANT_TREE_NODE","dragNodeHighlight","vcTreeNode","syncLoadData","onSelectorClick","isSelectable","onCheck","onSelectorDoubleClick","isDisabled","isCheckable","onDragStart","dataTransfer","setData","onDragEnter","onDragOver","onDragLeave","onDragEnd","onDrop","originList","targetList","getNodeState","isLeaf2","hasChildren","treeDisabled","_vcTree","treeSelectable","renderSwitcher","switcherCls","renderCheckbox","$custom","renderSelector","_vcTree2","wrapClass","$icon","currentIcon","currentTitle","$title","_vcTree3","$children","_vcTree4","availablePrefixs","requestAnimationFrame","lastTime","currTime","timeToCall","getRequestAnimationFrame","frame","cancelAnimationFrame","stringOrNumber","ColSize","span","pull","objectOrNumber","ColProps","xs","sm","md","lg","xl","xxl","flex","rowContext","parseFlex","sizeClassObj","_extends2","sizeProps","propSize","gutter","getGutter","paddingRight","paddingTop","subscribe","storeContext","initialState","partial","listener","updateMiniStore","innerMenu","getWrappedInstance","changed","processSingle","oneChanged","Provider","camelizeRE","camelize","parseStyleText","cssText","camel","listDelimiter","propertyDelimiter","hasProp","$options","getScopedSlots","getSlots","$vnode","isEmptyElement","getSlot","getSlotOptions","getOptionProps","_componentOptions$pro","_componentOptions$Cto","_instance$$options","_instance$$props","filterProps","getComponentFromProp","execute","_h","getPropsData","slotScope","getValueByProp","getAttrs","getKey","getEvents","getDataEvents","getListeners","getClass","staticStyle","filterEmpty","initDefaultProps","defaultProps","mergeProps","isValidElement","antDecorator","antPortal","componentUpdated","base","antDirective","localeData","getLocale","antLocale","localeFromContext","getLocaleCode","localeCode","exist","defaultMapStateToProps","mapStateToProps","shouldSubscribe","finalMapStateToProps","Connect","subscribed","trySubscribe","tryUnsubscribe","unsubscribe","nextSubscribed","svgBaseProps","fillTester","outlineTester","twoToneTester","getThemeFromTypeName","removeTypeTheme","withThemeSuffix","alias","newType","messageInstance","closePromise","getMessageInstance","switchIconNode","filled","rejected","promise","isArgsProps","placements","rightBottom","leftBottom","getTooltipContainer","destroyTooltipOnHide","arrowContent","tipId","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","triggerType","arrowPointAtCenter","isNoTitle","tooltip","getPlacements","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","_config$autoAdjustOve","placementMap","getDisabledCompatibleChildren","__ANT_SWITCH","_splitObject","picked","omitted","spanStyle","cursor","pointerEvents","getOverlay","onPopupAlign","rect","transformOrigin","childCls"],"mappings":"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","file":"js/npm.ant-design-vue.4a8e75ac.js","sourcesContent":["var locale = {\n placeholder: 'Select time'\n};\n\nexport default locale;","import _extends from 'babel-runtime/helpers/extends';\nimport CalendarLocale from '../../vc-calendar/src/locale/en_US';\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n rangePlaceholder: ['Start date', 'End date']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","export default {\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};","import en_US from '../../date-picker/locale/en_US';\nexport default en_US;","import Pagination from '../vc-pagination/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US';\n\nexport default {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n }\n};","import locale from '../locale/default';\n\nexport default locale;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport Icon from './index';\nimport { mergeProps } from '../_util/props-util';\n\nvar customCache = new Set();\n\nexport default function create(options) {\n var scriptUrl = options.scriptUrl,\n _options$extraCommonP = options.extraCommonProps,\n extraCommonProps = _options$extraCommonP === undefined ? {} : _options$extraCommonP;\n\n /**\n * DOM API required.\n * Make sure in browser environment.\n * The Custom Icon will create a \n * that loads SVG symbols and insert the SVG Element into the document body.\n */\n\n if (typeof document !== 'undefined' && typeof window !== 'undefined' && typeof document.createElement === 'function' && typeof scriptUrl === 'string' && scriptUrl.length && !customCache.has(scriptUrl)) {\n var script = document.createElement('script');\n script.setAttribute('src', scriptUrl);\n script.setAttribute('data-namespace', scriptUrl);\n customCache.add(scriptUrl);\n document.body.appendChild(script);\n }\n\n var Iconfont = {\n functional: true,\n name: 'AIconfont',\n props: Icon.props,\n render: function render(h, context) {\n var props = context.props,\n slots = context.slots,\n listeners = context.listeners,\n data = context.data;\n\n var type = props.type,\n restProps = _objectWithoutProperties(props, ['type']);\n\n var slotsMap = slots();\n var children = slotsMap['default'];\n // component > children > type\n var content = null;\n if (type) {\n content = h('use', { attrs: { 'xlink:href': '#' + type } });\n }\n if (children) {\n content = children;\n }\n var iconProps = mergeProps(extraCommonProps, data, { props: restProps, on: listeners });\n return h(\n Icon,\n iconProps,\n [content]\n );\n }\n };\n return Iconfont;\n}","import VueIcon from '@ant-design/icons-vue';\n\nexport function setTwoToneColor(primaryColor) {\n return VueIcon.setTwoToneColors({\n primaryColor: primaryColor\n });\n}\n\nexport function getTwoToneColor() {\n var colors = VueIcon.getTwoToneColors();\n return colors.primaryColor;\n}","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport classNames from 'classnames';\nimport * as allIcons from '@ant-design/icons/lib/dist';\nimport VueIcon from '@ant-design/icons-vue';\nimport PropTypes from '../_util/vue-types';\nimport createFromIconfontCN from './IconFont';\nimport { svgBaseProps, withThemeSuffix, removeTypeTheme, getThemeFromTypeName, alias } from './utils';\nimport warning from '../_util/warning';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { filterEmpty, getListeners } from '../_util/props-util';\nimport Base from '../base';\n\n// Initial setting\n\n// https://github.com/vueComponent/ant-design-vue/issues/2745\nVueIcon.add.apply(VueIcon, _toConsumableArray(Object.keys(allIcons).filter(function (key) {\n return key !== 'default';\n}).map(function (key) {\n return allIcons[key];\n})));\nsetTwoToneColor('#1890ff');\nvar defaultTheme = 'outlined';\nvar dangerousTheme = void 0;\n\nfunction renderIcon(h, locale, context) {\n var _classNames;\n\n var props = context.$props,\n $slots = context.$slots;\n\n var listeners = getListeners(context);\n var type = props.type,\n Component = props.component,\n viewBox = props.viewBox,\n spin = props.spin,\n theme = props.theme,\n twoToneColor = props.twoToneColor,\n rotate = props.rotate,\n tabIndex = props.tabIndex;\n\n var children = filterEmpty($slots['default']);\n children = children.length === 0 ? undefined : children;\n warning(Boolean(type || Component || children), 'Icon', 'Icon should have `type` prop or `component` prop or `children`.');\n\n var classString = classNames((_classNames = {}, _defineProperty(_classNames, 'anticon', true), _defineProperty(_classNames, 'anticon-' + type, !!type), _classNames));\n\n var svgClassString = classNames(_defineProperty({}, 'anticon-spin', !!spin || type === 'loading'));\n\n var svgStyle = rotate ? {\n msTransform: 'rotate(' + rotate + 'deg)',\n transform: 'rotate(' + rotate + 'deg)'\n } : undefined;\n\n var innerSvgProps = {\n attrs: _extends({}, svgBaseProps, {\n viewBox: viewBox\n }),\n 'class': svgClassString,\n style: svgStyle\n };\n if (!viewBox) {\n delete innerSvgProps.attrs.viewBox;\n }\n\n var renderInnerNode = function renderInnerNode() {\n // component > children > type\n if (Component) {\n return h(\n Component,\n innerSvgProps,\n [children]\n );\n }\n if (children) {\n warning(Boolean(viewBox) || children.length === 1 && children[0].tag === 'use', 'Icon', 'Make sure that you provide correct `viewBox`' + ' prop (default `0 0 1024 1024`) to the icon.');\n var _innerSvgProps = {\n attrs: _extends({}, svgBaseProps),\n 'class': svgClassString,\n style: svgStyle\n };\n return h(\n 'svg',\n _mergeJSXProps([_innerSvgProps, {\n attrs: { viewBox: viewBox }\n }]),\n [children]\n );\n }\n\n if (typeof type === 'string') {\n var computedType = type;\n if (theme) {\n var themeInName = getThemeFromTypeName(type);\n warning(!themeInName || theme === themeInName, 'Icon', 'The icon name \\'' + type + '\\' already specify a theme \\'' + themeInName + '\\',' + (' the \\'theme\\' prop \\'' + theme + '\\' will be ignored.'));\n }\n computedType = withThemeSuffix(removeTypeTheme(alias(computedType)), dangerousTheme || theme || defaultTheme);\n\n return h(VueIcon, {\n attrs: {\n focusable: 'false',\n\n type: computedType,\n primaryColor: twoToneColor\n },\n 'class': svgClassString, style: svgStyle\n });\n }\n };\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && 'click' in listeners) {\n iconTabIndex = -1;\n }\n // functional component not support nativeOn,https://github.com/vuejs/vue/issues/7526\n var iProps = {\n attrs: {\n 'aria-label': type && locale.icon + ': ' + type,\n tabIndex: iconTabIndex\n },\n on: listeners,\n 'class': classString,\n staticClass: ''\n };\n return h(\n 'i',\n iProps,\n [renderInnerNode()]\n );\n}\n\nvar Icon = {\n name: 'AIcon',\n props: {\n tabIndex: PropTypes.number,\n type: PropTypes.string,\n component: PropTypes.any,\n viewBox: PropTypes.any,\n spin: PropTypes.bool.def(false),\n rotate: PropTypes.number,\n theme: PropTypes.oneOf(['filled', 'outlined', 'twoTone']),\n twoToneColor: PropTypes.string,\n role: PropTypes.string\n },\n render: function render(h) {\n var _this = this;\n\n return h(LocaleReceiver, {\n attrs: {\n componentName: 'Icon'\n },\n scopedSlots: { 'default': function _default(locale) {\n return renderIcon(h, locale, _this);\n } }\n });\n }\n};\n\nIcon.createFromIconfontCN = createFromIconfontCN;\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\n\n/* istanbul ignore next */\nIcon.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Icon.name, Icon);\n};\n\nexport default Icon;","/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\nexport var inBrowser = typeof window !== 'undefined';\nexport var UA = inBrowser && window.navigator.userAgent.toLowerCase();\nexport var isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nfunction makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) {\n return map[val.toLowerCase()];\n } : function (val) {\n return map[val];\n };\n}\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd(e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) return;\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger(el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nexport function antInput(Vue) {\n return Vue.directive('ant-input', {\n inserted: function inserted(el, binding, vnode) {\n if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n if (!binding.modifiers || !binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n }\n });\n}\n\nexport default {\n install: function install(Vue) {\n antInput(Vue);\n }\n};","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 * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33, // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34, // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35, // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36, // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37, // also NUM_WEST\n /**\n * UP\n */\n UP: 38, // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39, // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40, // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45, // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46, // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63, // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91, // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186, // needs localization\n /**\n * DASH\n */\n DASH: 189, // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187, // needs localization\n /**\n * COMMA\n */\n COMMA: 188, // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190, // needs localization\n /**\n * SLASH\n */\n SLASH: 191, // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192, // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222, // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219, // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220, // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221, // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229\n};\n\n/*\n whether text and modified key is entered at the same time.\n */\nKeyCode.isTextModifyingKeyEvent = function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n};\n\n/*\n whether character is entered.\n */\nKeyCode.isCharacterKey = function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigation.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n};\n\nexport default KeyCode;","import _typeof from 'babel-runtime/helpers/typeof';\n// https://github.com/yiminghe/css-animation 1.5.0\n\nimport Event from './Event';\nimport classes from 'component-classes';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../requestAnimationTimeout';\n\nvar isCssAnimationSupported = Event.endEvents.length !== 0;\nvar capitalPrefixes = ['Webkit', 'Moz', 'O',\n// ms is special .... !\n'ms'];\nvar prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nfunction getStyleProperty(node, name) {\n // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle\n var style = window.getComputedStyle(node, null);\n var ret = '';\n for (var i = 0; i < prefixes.length; i++) {\n ret = style.getPropertyValue(prefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nfunction fixBrowserByTimeout(node) {\n if (isCssAnimationSupported) {\n var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;\n var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;\n var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;\n var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;\n var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n // sometimes, browser bug\n node.rcEndAnimTimeout = setTimeout(function () {\n node.rcEndAnimTimeout = null;\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }, time * 1000 + 200);\n }\n}\n\nfunction clearBrowserBugTimeout(node) {\n if (node.rcEndAnimTimeout) {\n clearTimeout(node.rcEndAnimTimeout);\n node.rcEndAnimTimeout = null;\n }\n}\n\nvar cssAnimation = function cssAnimation(node, transitionName, endCallback) {\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n var className = nameIsObj ? transitionName.name : transitionName;\n var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';\n var end = endCallback;\n var start = void 0;\n var active = void 0;\n var nodeClasses = classes(node);\n\n if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {\n end = endCallback.end;\n start = endCallback.start;\n active = endCallback.active;\n }\n\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n cancelAnimationTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n nodeClasses.remove(className);\n nodeClasses.remove(activeClassName);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional end is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (end) {\n end();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n if (start) {\n start();\n }\n nodeClasses.add(className);\n\n node.rcAnimTimeout = requestAnimationTimeout(function () {\n node.rcAnimTimeout = null;\n\n nodeClasses.add(className);\n nodeClasses.add(activeClassName);\n\n if (active) {\n requestAnimationTimeout(active, 0);\n }\n fixBrowserByTimeout(node);\n // 30ms for firefox\n }, 30);\n\n return {\n stop: function stop() {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }\n };\n};\n\ncssAnimation.style = function (node, style, callback) {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n cancelAnimationTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (callback) {\n callback();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n node.rcAnimTimeout = requestAnimationTimeout(function () {\n for (var s in style) {\n if (style.hasOwnProperty(s)) {\n node.style[s] = style[s];\n }\n }\n node.rcAnimTimeout = null;\n fixBrowserByTimeout(node);\n }, 0);\n};\n\ncssAnimation.setTransition = function (node, p, value) {\n var property = p;\n var v = value;\n if (value === undefined) {\n v = property;\n property = '';\n }\n property = property || '';\n capitalPrefixes.forEach(function (prefix) {\n node.style[prefix + 'Transition' + property] = v;\n });\n};\n\ncssAnimation.isCssAnimationSupported = isCssAnimationSupported;\n\nexport { isCssAnimationSupported };\n\nexport default cssAnimation;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport warning from 'warning';\nimport { hasProp, initDefaultProps, getOptionProps, getSlots } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport BaseMixin from '../../_util/BaseMixin';\nimport proxyComponent from '../../_util/proxyComponent';\nimport { convertTreeToEntities, convertDataToTree, getPosition, getDragNodesKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr, mapChildren, conductCheck, warnOnlyTreeNode } from './util';\n\n/**\n * Thought we still use `cloneElement` to pass `key`,\n * other props can pass with context for future refactor.\n */\n\nfunction getWatch() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var watch = {};\n keys.forEach(function (k) {\n watch[k] = function () {\n this.needSyncKeys[k] = true;\n };\n });\n return watch;\n}\n\nvar Tree = {\n name: 'Tree',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.any,\n treeData: PropTypes.array, // Generate treeNode by children\n showLine: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n focusable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n checkable: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n checkStrictly: PropTypes.bool,\n draggable: PropTypes.bool,\n defaultExpandParent: PropTypes.bool,\n autoExpandParent: PropTypes.bool,\n defaultExpandAll: PropTypes.bool,\n defaultExpandedKeys: PropTypes.array,\n expandedKeys: PropTypes.array,\n defaultCheckedKeys: PropTypes.array,\n checkedKeys: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n defaultSelectedKeys: PropTypes.array,\n selectedKeys: PropTypes.array,\n // onClick: PropTypes.func,\n // onDoubleClick: PropTypes.func,\n // onExpand: PropTypes.func,\n // onCheck: PropTypes.func,\n // onSelect: PropTypes.func,\n loadData: PropTypes.func,\n loadedKeys: PropTypes.array,\n // onMouseEnter: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n // onRightClick: PropTypes.func,\n // onDragStart: PropTypes.func,\n // onDragEnter: PropTypes.func,\n // onDragOver: PropTypes.func,\n // onDragLeave: PropTypes.func,\n // onDragEnd: PropTypes.func,\n // onDrop: PropTypes.func,\n filterTreeNode: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n switcherIcon: PropTypes.any,\n _propsSymbol: PropTypes.any\n }, {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: []\n }),\n\n data: function data() {\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n warning(this.$props.children, 'please use children prop replace slots.default');\n this.needSyncKeys = {};\n this.domTreeNodes = {};\n var state = {\n _posEntities: new Map(),\n _keyEntities: new Map(),\n _expandedKeys: [],\n _selectedKeys: [],\n _checkedKeys: [],\n _halfCheckedKeys: [],\n _loadedKeys: [],\n _loadingKeys: [],\n _treeNode: [],\n _prevProps: null,\n _dragOverNodeKey: '',\n _dropPosition: null,\n _dragNodesKeys: []\n };\n return _extends({}, state, this.getDerivedState(getOptionProps(this), state));\n },\n provide: function provide() {\n return {\n vcTree: this\n };\n },\n\n\n watch: _extends({}, getWatch(['treeData', 'children', 'expandedKeys', 'autoExpandParent', 'selectedKeys', 'checkedKeys', 'loadedKeys']), {\n __propsSymbol__: function __propsSymbol__() {\n this.setState(this.getDerivedState(getOptionProps(this), this.$data));\n this.needSyncKeys = {};\n }\n }),\n\n methods: {\n getDerivedState: function getDerivedState(props, prevState) {\n var _prevProps = prevState._prevProps;\n\n var newState = {\n _prevProps: _extends({}, props)\n };\n var self = this;\n function needSync(name) {\n return !_prevProps && name in props || _prevProps && self.needSyncKeys[name];\n }\n\n // ================== Tree Node ==================\n var treeNode = null;\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeNode = convertDataToTree(this.$createElement, props.treeData);\n } else if (needSync('children')) {\n treeNode = props.children;\n }\n\n // Tree support filter function which will break the tree structure in the vdm.\n // We cache the treeNodes in state so that we can return the treeNode in event trigger.\n if (treeNode) {\n newState._treeNode = treeNode;\n\n // Calculate the entities data for quick match\n var entitiesMap = convertTreeToEntities(treeNode);\n newState._keyEntities = entitiesMap.keyEntities;\n }\n\n var keyEntities = newState._keyEntities || prevState._keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || _prevProps && needSync('autoExpandParent')) {\n newState._expandedKeys = props.autoExpandParent || !_prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!_prevProps && props.defaultExpandAll) {\n newState._expandedKeys = [].concat(_toConsumableArray(keyEntities.keys()));\n } else if (!_prevProps && props.defaultExpandedKeys) {\n newState._expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState._selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!_prevProps && props.defaultSelectedKeys) {\n newState._selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity = void 0;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!_prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeNode) {\n // If treeNode changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState._checkedKeys,\n halfCheckedKeys: prevState._halfCheckedKeys\n };\n }\n\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === undefined ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === undefined ? [] : _checkedKeyEntity$hal;\n\n\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n\n newState._checkedKeys = checkedKeys;\n newState._halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState._loadedKeys = props.loadedKeys;\n }\n\n return newState;\n },\n onNodeDragStart: function onNodeDragStart(event, node) {\n var _expandedKeys = this.$data._expandedKeys;\n var eventKey = node.eventKey;\n\n var children = getSlots(node)['default'];\n this.dragNode = node;\n\n this.setState({\n _dragNodesKeys: getDragNodesKeys(typeof children === 'function' ? children() : children, node),\n _expandedKeys: arrDel(_expandedKeys, eventKey)\n });\n this.__emit('dragstart', { event: event, node: node });\n },\n\n\n /**\n * [Legacy] Select handler is less small than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter: function onNodeDragEnter(event, node) {\n var _this = this;\n\n var expandedKeys = this.$data._expandedKeys;\n var pos = node.pos,\n eventKey = node.eventKey;\n\n\n if (!this.dragNode || !node.$refs.selectHandle) return;\n\n var dropPosition = calcDropPosition(event, node);\n\n // Skip if drag node is self\n if (this.dragNode.eventKey === eventKey && dropPosition === 0) {\n this.setState({\n _dragOverNodeKey: '',\n _dropPosition: null\n });\n return;\n }\n\n // Ref: https://github.com/react-component/tree/issues/132\n // Add timeout to let onDragLevel fire before onDragEnter,\n // so that we can clean drag props for onDragLeave node.\n // Macro task for this:\n // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script\n setTimeout(function () {\n // Update drag over node\n _this.setState({\n _dragOverNodeKey: eventKey,\n _dropPosition: dropPosition\n });\n\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n _this.delayedDragEnterLogic[pos] = setTimeout(function () {\n var newExpandedKeys = arrAdd(expandedKeys, eventKey);\n if (!hasProp(_this, 'expandedKeys')) {\n _this.setState({\n _expandedKeys: newExpandedKeys\n });\n }\n _this.__emit('dragenter', { event: event, node: node, expandedKeys: newExpandedKeys });\n }, 400);\n }, 0);\n },\n onNodeDragOver: function onNodeDragOver(event, node) {\n var eventKey = node.eventKey;\n var _$data = this.$data,\n _dragOverNodeKey = _$data._dragOverNodeKey,\n _dropPosition = _$data._dropPosition;\n // Update drag position\n\n if (this.dragNode && eventKey === _dragOverNodeKey && node.$refs.selectHandle) {\n var dropPosition = calcDropPosition(event, node);\n\n if (dropPosition === _dropPosition) return;\n\n this.setState({\n _dropPosition: dropPosition\n });\n }\n this.__emit('dragover', { event: event, node: node });\n },\n onNodeDragLeave: function onNodeDragLeave(event, node) {\n this.setState({\n _dragOverNodeKey: ''\n });\n this.__emit('dragleave', { event: event, node: node });\n },\n onNodeDragEnd: function onNodeDragEnd(event, node) {\n this.setState({\n _dragOverNodeKey: ''\n });\n this.__emit('dragend', { event: event, node: node });\n this.dragNode = null;\n },\n onNodeDrop: function onNodeDrop(event, node) {\n var _$data2 = this.$data,\n _$data2$_dragNodesKey = _$data2._dragNodesKeys,\n _dragNodesKeys = _$data2$_dragNodesKey === undefined ? [] : _$data2$_dragNodesKey,\n _dropPosition = _$data2._dropPosition;\n\n var eventKey = node.eventKey,\n pos = node.pos;\n\n\n this.setState({\n _dragOverNodeKey: ''\n });\n\n if (_dragNodesKeys.indexOf(eventKey) !== -1) {\n warning(false, \"Can not drop to dragNode(include it's children node)\");\n return;\n }\n\n var posArr = posToArr(pos);\n\n var dropResult = {\n event: event,\n node: node,\n dragNode: this.dragNode,\n dragNodesKeys: _dragNodesKeys.slice(),\n dropPosition: _dropPosition + Number(posArr[posArr.length - 1]),\n dropToGap: false\n };\n\n if (_dropPosition !== 0) {\n dropResult.dropToGap = true;\n }\n this.__emit('drop', dropResult);\n this.dragNode = null;\n },\n onNodeClick: function onNodeClick(e, treeNode) {\n this.__emit('click', e, treeNode);\n },\n onNodeDoubleClick: function onNodeDoubleClick(e, treeNode) {\n this.__emit('dblclick', e, treeNode);\n },\n onNodeSelect: function onNodeSelect(e, treeNode) {\n var selectedKeys = this.$data._selectedKeys;\n var keyEntities = this.$data._keyEntities;\n var multiple = this.$props.multiple;\n\n var _getOptionProps = getOptionProps(treeNode),\n selected = _getOptionProps.selected,\n eventKey = _getOptionProps.eventKey;\n\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, eventKey);\n } else if (!multiple) {\n selectedKeys = [eventKey];\n } else {\n selectedKeys = arrAdd(selectedKeys, eventKey);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (key) {\n var entity = keyEntities.get(key);\n if (!entity) return null;\n\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n\n this.setUncontrolledState({ _selectedKeys: selectedKeys });\n\n var eventObj = {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e\n };\n this.__emit('update:selectedKeys', selectedKeys);\n this.__emit('select', selectedKeys, eventObj);\n },\n onNodeCheck: function onNodeCheck(e, treeNode, checked) {\n var _$data3 = this.$data,\n keyEntities = _$data3._keyEntities,\n oriCheckedKeys = _$data3._checkedKeys,\n oriHalfCheckedKeys = _$data3._halfCheckedKeys;\n var checkStrictly = this.$props.checkStrictly;\n\n var _getOptionProps2 = getOptionProps(treeNode),\n eventKey = _getOptionProps2.eventKey;\n\n // Prepare trigger arguments\n\n\n var checkedObj = void 0;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e\n };\n\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, eventKey) : arrDel(oriCheckedKeys, eventKey);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, eventKey);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n\n eventObj.checkedNodes = checkedKeys.map(function (key) {\n return keyEntities.get(key);\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n\n this.setUncontrolledState({ _checkedKeys: checkedKeys });\n } else {\n var _conductCheck = conductCheck([eventKey], checked, keyEntities, {\n checkedKeys: oriCheckedKeys,\n halfCheckedKeys: oriHalfCheckedKeys\n }),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n checkedObj = _checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n\n _checkedKeys.forEach(function (key) {\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var node = entity.node,\n pos = entity.pos;\n\n\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node: node, pos: pos });\n });\n\n this.setUncontrolledState({\n _checkedKeys: _checkedKeys,\n _halfCheckedKeys: _halfCheckedKeys\n });\n }\n this.__emit('check', checkedObj, eventObj);\n },\n onNodeLoad: function onNodeLoad(treeNode) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n // We need to get the latest state of loading/loaded keys\n _this2.setState(function (_ref) {\n var _ref$_loadedKeys = _ref._loadedKeys,\n loadedKeys = _ref$_loadedKeys === undefined ? [] : _ref$_loadedKeys,\n _ref$_loadingKeys = _ref._loadingKeys,\n loadingKeys = _ref$_loadingKeys === undefined ? [] : _ref$_loadingKeys;\n var loadData = _this2.$props.loadData;\n\n var _getOptionProps3 = getOptionProps(treeNode),\n eventKey = _getOptionProps3.eventKey;\n\n if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) {\n return {};\n }\n\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var _$data4 = _this2.$data,\n currentLoadedKeys = _$data4._loadedKeys,\n currentLoadingKeys = _$data4._loadingKeys;\n\n var newLoadedKeys = arrAdd(currentLoadedKeys, eventKey);\n var newLoadingKeys = arrDel(currentLoadingKeys, eventKey);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n _this2.__emit('load', newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this2.setUncontrolledState({\n _loadedKeys: newLoadedKeys\n });\n _this2.setState({\n _loadingKeys: newLoadingKeys\n });\n resolve();\n });\n\n return {\n _loadingKeys: arrAdd(loadingKeys, eventKey)\n };\n });\n });\n },\n onNodeExpand: function onNodeExpand(e, treeNode) {\n var _this3 = this;\n\n var expandedKeys = this.$data._expandedKeys;\n var loadData = this.$props.loadData;\n\n var _getOptionProps4 = getOptionProps(treeNode),\n eventKey = _getOptionProps4.eventKey,\n expanded = _getOptionProps4.expanded;\n\n // Update selected keys\n\n\n var index = expandedKeys.indexOf(eventKey);\n var targetExpanded = !expanded;\n\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, eventKey);\n } else {\n expandedKeys = arrDel(expandedKeys, eventKey);\n }\n\n this.setUncontrolledState({ _expandedKeys: expandedKeys });\n this.__emit('expand', expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e\n });\n this.__emit('update:expandedKeys', expandedKeys);\n\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = this.onNodeLoad(treeNode);\n return loadPromise ? loadPromise.then(function () {\n // [Legacy] Refresh logic\n _this3.setUncontrolledState({ _expandedKeys: expandedKeys });\n }) : null;\n }\n\n return null;\n },\n onNodeMouseEnter: function onNodeMouseEnter(event, node) {\n this.__emit('mouseenter', { event: event, node: node });\n },\n onNodeMouseLeave: function onNodeMouseLeave(event, node) {\n this.__emit('mouseleave', { event: event, node: node });\n },\n onNodeContextMenu: function onNodeContextMenu(event, node) {\n event.preventDefault();\n this.__emit('rightClick', { event: event, node: node });\n },\n\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState: function setUncontrolledState(state) {\n var needSync = false;\n var newState = {};\n var props = getOptionProps(this);\n Object.keys(state).forEach(function (name) {\n if (name.replace('_', '') in props) return;\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n },\n registerTreeNode: function registerTreeNode(key, node) {\n if (node) {\n this.domTreeNodes[key] = node;\n } else {\n delete this.domTreeNodes[key];\n }\n },\n isKeyChecked: function isKeyChecked(key) {\n var _$data$_checkedKeys = this.$data._checkedKeys,\n checkedKeys = _$data$_checkedKeys === undefined ? [] : _$data$_checkedKeys;\n\n return checkedKeys.indexOf(key) !== -1;\n },\n\n\n /**\n * [Legacy] Original logic use `key` as tracking clue.\n * We have to use `cloneElement` to pass `key`.\n */\n renderTreeNode: function renderTreeNode(child, index) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var _$data5 = this.$data,\n keyEntities = _$data5._keyEntities,\n _$data5$_expandedKeys = _$data5._expandedKeys,\n expandedKeys = _$data5$_expandedKeys === undefined ? [] : _$data5$_expandedKeys,\n _$data5$_selectedKeys = _$data5._selectedKeys,\n selectedKeys = _$data5$_selectedKeys === undefined ? [] : _$data5$_selectedKeys,\n _$data5$_halfCheckedK = _$data5._halfCheckedKeys,\n halfCheckedKeys = _$data5$_halfCheckedK === undefined ? [] : _$data5$_halfCheckedK,\n _$data5$_loadedKeys = _$data5._loadedKeys,\n loadedKeys = _$data5$_loadedKeys === undefined ? [] : _$data5$_loadedKeys,\n _$data5$_loadingKeys = _$data5._loadingKeys,\n loadingKeys = _$data5$_loadingKeys === undefined ? [] : _$data5$_loadingKeys,\n dragOverNodeKey = _$data5._dragOverNodeKey,\n dropPosition = _$data5._dropPosition;\n\n var pos = getPosition(level, index);\n var key = child.key;\n if (!key && (key === undefined || key === null)) {\n key = pos;\n }\n if (!keyEntities.get(key)) {\n warnOnlyTreeNode();\n return null;\n }\n\n return cloneElement(child, {\n props: {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: this.isKeyChecked(key),\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: pos,\n\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n },\n key: key\n });\n }\n },\n\n render: function render() {\n var _this4 = this;\n\n var h = arguments[0];\n var treeNode = this.$data._treeNode;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n focusable = _$props.focusable,\n showLine = _$props.showLine,\n _$props$tabIndex = _$props.tabIndex,\n tabIndex = _$props$tabIndex === undefined ? 0 : _$props$tabIndex;\n\n\n return h(\n 'ul',\n {\n 'class': classNames(prefixCls, _defineProperty({}, prefixCls + '-show-line', showLine)),\n attrs: { role: 'tree',\n unselectable: 'on',\n tabIndex: focusable ? tabIndex : null\n }\n },\n [mapChildren(treeNode, function (node, index) {\n return _this4.renderTreeNode(node, index);\n })]\n );\n }\n};\n\nexport { Tree };\n\nexport default proxyComponent(Tree);","import ProxyTree, { Tree } from './Tree';\nimport TreeNode from './TreeNode';\nTree.TreeNode = TreeNode;\nProxyTree.TreeNode = TreeNode;\n\nexport { Tree, TreeNode };\nexport default ProxyTree;","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 _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Icon from '../icon';\nimport { getListeners, getComponentFromProp } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\n\nexport default {\n name: 'AAvatar',\n props: {\n prefixCls: {\n type: String,\n 'default': undefined\n },\n shape: {\n validator: function validator(val) {\n return ['circle', 'square'].includes(val);\n },\n 'default': 'circle'\n },\n size: {\n validator: function validator(val) {\n return typeof val === 'number' || ['small', 'large', 'default'].includes(val);\n },\n 'default': 'default'\n },\n src: String,\n /** Srcset of image avatar */\n srcSet: String,\n icon: PropTypes.any,\n alt: String,\n loadError: Function\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n return {\n isImgExist: true,\n isMounted: false,\n scale: 1\n };\n },\n\n watch: {\n src: function src() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.isImgExist = true;\n _this.scale = 1;\n // force uodate for position\n _this.$forceUpdate();\n });\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setScale();\n _this2.isMounted = true;\n });\n },\n updated: function updated() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.setScale();\n });\n },\n\n methods: {\n setScale: function setScale() {\n if (!this.$refs.avatarChildren || !this.$refs.avatarNode) {\n return;\n }\n var childrenWidth = this.$refs.avatarChildren.offsetWidth; // offsetWidth avoid affecting be transform scale\n var nodeWidth = this.$refs.avatarNode.offsetWidth;\n // denominator is 0 is no meaning\n if (childrenWidth === 0 || nodeWidth === 0 || this.lastChildrenWidth === childrenWidth && this.lastNodeWidth === nodeWidth) {\n return;\n }\n this.lastChildrenWidth = childrenWidth;\n this.lastNodeWidth = nodeWidth;\n // add 4px gap for each side to get better performance\n this.scale = nodeWidth - 8 < childrenWidth ? (nodeWidth - 8) / childrenWidth : 1;\n },\n handleImgLoadError: function handleImgLoadError() {\n var loadError = this.$props.loadError;\n\n var errorFlag = loadError ? loadError() : undefined;\n if (errorFlag !== false) {\n this.isImgExist = false;\n }\n }\n },\n render: function render() {\n var _sizeCls, _extends3;\n\n var h = arguments[0];\n var _$props = this.$props,\n customizePrefixCls = _$props.prefixCls,\n shape = _$props.shape,\n size = _$props.size,\n src = _$props.src,\n alt = _$props.alt,\n srcSet = _$props.srcSet;\n\n var icon = getComponentFromProp(this, 'icon');\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('avatar', customizePrefixCls);\n\n var _$data = this.$data,\n isImgExist = _$data.isImgExist,\n scale = _$data.scale,\n isMounted = _$data.isMounted;\n\n\n var sizeCls = (_sizeCls = {}, _defineProperty(_sizeCls, prefixCls + '-lg', size === 'large'), _defineProperty(_sizeCls, prefixCls + '-sm', size === 'small'), _sizeCls);\n\n var classString = _extends(_defineProperty({}, prefixCls, true), sizeCls, (_extends3 = {}, _defineProperty(_extends3, prefixCls + '-' + shape, shape), _defineProperty(_extends3, prefixCls + '-image', src && isImgExist), _defineProperty(_extends3, prefixCls + '-icon', icon), _extends3));\n\n var sizeStyle = typeof size === 'number' ? {\n width: size + 'px',\n height: size + 'px',\n lineHeight: size + 'px',\n fontSize: icon ? size / 2 + 'px' : '18px'\n } : {};\n\n var children = this.$slots['default'];\n if (src && isImgExist) {\n children = h('img', {\n attrs: { src: src, srcSet: srcSet, alt: alt },\n on: {\n 'error': this.handleImgLoadError\n }\n });\n } else if (icon) {\n if (typeof icon === 'string') {\n children = h(Icon, {\n attrs: { type: icon }\n });\n } else {\n children = icon;\n }\n } else {\n var childrenNode = this.$refs.avatarChildren;\n if (childrenNode || scale !== 1) {\n var transformString = 'scale(' + scale + ') translateX(-50%)';\n var childrenStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString\n };\n var sizeChildrenStyle = typeof size === 'number' ? {\n lineHeight: size + 'px'\n } : {};\n children = h(\n 'span',\n {\n 'class': prefixCls + '-string',\n ref: 'avatarChildren',\n style: _extends({}, sizeChildrenStyle, childrenStyle)\n },\n [children]\n );\n } else {\n var _childrenStyle = {};\n if (!isMounted) {\n _childrenStyle.opacity = 0;\n }\n children = h(\n 'span',\n { 'class': prefixCls + '-string', ref: 'avatarChildren', style: { opacity: 0 } },\n [children]\n );\n }\n }\n return h(\n 'span',\n _mergeJSXProps([{ ref: 'avatarNode' }, { on: getListeners(this), 'class': classString, style: sizeStyle }]),\n [children]\n );\n }\n};","import Avatar from './Avatar';\nimport Base from '../base';\n\n/* istanbul ignore next */\nAvatar.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Avatar.name, Avatar);\n};\n\nexport default Avatar;","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;","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n var args = [].slice.call(arguments, 0);\n if (args.length === 1) {\n return args[0];\n }\n\n return function chainedFunction() {\n for (var i = 0; i < args.length; i++) {\n if (args[i] && args[i].apply) {\n args[i].apply(this, arguments);\n }\n }\n };\n}","// based on rc-notification 3.3.1\nimport Notification from './Notification';\nexport default Notification;","var scrollbarVerticalSize = void 0;\nvar scrollbarHorizontalSize = void 0;\n\n// Measure scrollbar width for padding body during modal show/hide\nvar scrollbarMeasure = {\n position: 'absolute',\n top: '-9999px',\n width: '50px',\n height: '50px'\n};\n\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\n\nexport function measureScrollbar(_ref) {\n var _ref$direction = _ref.direction,\n direction = _ref$direction === undefined ? 'vertical' : _ref$direction,\n prefixCls = _ref.prefixCls;\n\n if (typeof document === 'undefined' || typeof window === 'undefined') {\n return 0;\n }\n var isVertical = direction === 'vertical';\n if (isVertical && scrollbarVerticalSize) {\n return scrollbarVerticalSize;\n }\n if (!isVertical && scrollbarHorizontalSize) {\n return scrollbarHorizontalSize;\n }\n var scrollDiv = document.createElement('div');\n Object.keys(scrollbarMeasure).forEach(function (scrollProp) {\n scrollDiv.style[scrollProp] = scrollbarMeasure[scrollProp];\n });\n // apply hide scrollbar className ahead\n scrollDiv.className = prefixCls + '-hide-scrollbar scroll-div-append-to-body';\n\n // Append related overflow style\n if (isVertical) {\n scrollDiv.style.overflowY = 'scroll';\n } else {\n scrollDiv.style.overflowX = 'scroll';\n }\n document.body.appendChild(scrollDiv);\n var size = 0;\n if (isVertical) {\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n scrollbarVerticalSize = size;\n } else {\n size = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n scrollbarHorizontalSize = size;\n }\n\n document.body.removeChild(scrollDiv);\n return size;\n}\n\nexport function debounce(func, wait, immediate) {\n var timeout = void 0;\n function debounceFunc() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var context = this;\n // https://fb.me/react-event-pooling\n if (args[0] && args[0].persist) {\n args[0].persist();\n }\n var later = function later() {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n }\n debounceFunc.cancel = function cancel() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n return debounceFunc;\n}\n\nexport function remove(array, item) {\n var index = array.indexOf(item);\n var front = array.slice(0, index);\n var last = array.slice(index + 1, array.length);\n return front.concat(last);\n}","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\n\nvar ColumnManager = function () {\n function ColumnManager(columns) {\n _classCallCheck(this, ColumnManager);\n\n this.columns = columns;\n this._cached = {};\n }\n\n _createClass(ColumnManager, [{\n key: 'isAnyColumnsFixed',\n value: function isAnyColumnsFixed() {\n var _this = this;\n\n return this._cache('isAnyColumnsFixed', function () {\n return _this.columns.some(function (column) {\n return !!column.fixed;\n });\n });\n }\n }, {\n key: 'isAnyColumnsLeftFixed',\n value: function isAnyColumnsLeftFixed() {\n var _this2 = this;\n\n return this._cache('isAnyColumnsLeftFixed', function () {\n return _this2.columns.some(function (column) {\n return column.fixed === 'left' || column.fixed === true;\n });\n });\n }\n }, {\n key: 'isAnyColumnsRightFixed',\n value: function isAnyColumnsRightFixed() {\n var _this3 = this;\n\n return this._cache('isAnyColumnsRightFixed', function () {\n return _this3.columns.some(function (column) {\n return column.fixed === 'right';\n });\n });\n }\n }, {\n key: 'leftColumns',\n value: function leftColumns() {\n var _this4 = this;\n\n return this._cache('leftColumns', function () {\n return _this4.groupedColumns().filter(function (column) {\n return column.fixed === 'left' || column.fixed === true;\n });\n });\n }\n }, {\n key: 'rightColumns',\n value: function rightColumns() {\n var _this5 = this;\n\n return this._cache('rightColumns', function () {\n return _this5.groupedColumns().filter(function (column) {\n return column.fixed === 'right';\n });\n });\n }\n }, {\n key: 'leafColumns',\n value: function leafColumns() {\n var _this6 = this;\n\n return this._cache('leafColumns', function () {\n return _this6._leafColumns(_this6.columns);\n });\n }\n }, {\n key: 'leftLeafColumns',\n value: function leftLeafColumns() {\n var _this7 = this;\n\n return this._cache('leftLeafColumns', function () {\n return _this7._leafColumns(_this7.leftColumns());\n });\n }\n }, {\n key: 'rightLeafColumns',\n value: function rightLeafColumns() {\n var _this8 = this;\n\n return this._cache('rightLeafColumns', function () {\n return _this8._leafColumns(_this8.rightColumns());\n });\n }\n\n // add appropriate rowspan and colspan to column\n\n }, {\n key: 'groupedColumns',\n value: function groupedColumns() {\n var _this9 = this;\n\n return this._cache('groupedColumns', function () {\n var _groupColumns = function _groupColumns(columns) {\n var currentRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parentColumn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n // track how many rows we got\n rows[currentRow] = rows[currentRow] || [];\n var grouped = [];\n var setRowSpan = function setRowSpan(column) {\n var rowSpan = rows.length - currentRow;\n if (column && !column.children && // parent columns are supposed to be one row\n rowSpan > 1 && (!column.rowSpan || column.rowSpan < rowSpan)) {\n column.rowSpan = rowSpan;\n }\n };\n columns.forEach(function (column, index) {\n var newColumn = _extends({}, column);\n rows[currentRow].push(newColumn);\n parentColumn.colSpan = parentColumn.colSpan || 0;\n if (newColumn.children && newColumn.children.length > 0) {\n newColumn.children = _groupColumns(newColumn.children, currentRow + 1, newColumn, rows);\n parentColumn.colSpan += newColumn.colSpan;\n } else {\n parentColumn.colSpan += 1;\n }\n // update rowspan to all same row columns\n for (var i = 0; i < rows[currentRow].length - 1; i += 1) {\n setRowSpan(rows[currentRow][i]);\n }\n // last column, update rowspan immediately\n if (index + 1 === columns.length) {\n setRowSpan(newColumn);\n }\n grouped.push(newColumn);\n });\n return grouped;\n };\n return _groupColumns(_this9.columns);\n });\n }\n }, {\n key: 'reset',\n value: function reset(columns) {\n this.columns = columns;\n this._cached = {};\n }\n }, {\n key: '_cache',\n value: function _cache(name, fn) {\n if (name in this._cached) {\n return this._cached[name];\n }\n this._cached[name] = fn();\n return this._cached[name];\n }\n }, {\n key: '_leafColumns',\n value: function _leafColumns(columns) {\n var _this10 = this;\n\n var leafColumns = [];\n columns.forEach(function (column) {\n if (!column.children) {\n leafColumns.push(column);\n } else {\n leafColumns.push.apply(leafColumns, _toConsumableArray(_this10._leafColumns(column.children)));\n }\n });\n return leafColumns;\n }\n }]);\n\n return ColumnManager;\n}();\n\nexport default ColumnManager;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../../_util/vue-types';\nimport { INTERNAL_COL_DEFINE } from './utils';\n\nexport default {\n name: 'ColGroup',\n props: {\n fixed: PropTypes.string,\n columns: PropTypes.array\n },\n inject: {\n table: { 'default': function _default() {\n return {};\n } }\n },\n render: function render() {\n var h = arguments[0];\n var fixed = this.fixed,\n table = this.table;\n var prefixCls = table.prefixCls,\n expandIconAsCell = table.expandIconAsCell,\n columnManager = table.columnManager;\n\n\n var cols = [];\n\n if (expandIconAsCell && fixed !== 'right') {\n cols.push(h('col', { 'class': prefixCls + '-expand-icon-col', key: 'rc-table-expand-icon-col' }));\n }\n\n var leafColumns = void 0;\n\n if (fixed === 'left') {\n leafColumns = columnManager.leftLeafColumns();\n } else if (fixed === 'right') {\n leafColumns = columnManager.rightLeafColumns();\n } else {\n leafColumns = columnManager.leafColumns();\n }\n cols = cols.concat(leafColumns.map(function (_ref) {\n var key = _ref.key,\n dataIndex = _ref.dataIndex,\n width = _ref.width,\n additionalProps = _ref[INTERNAL_COL_DEFINE];\n\n var mergedKey = key !== undefined ? key : dataIndex;\n var w = typeof width === 'number' ? width + 'px' : width;\n return h('col', _mergeJSXProps([{ key: mergedKey, style: { width: w, minWidth: w } }, additionalProps]));\n }));\n return h('colgroup', [cols]);\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classNames from 'classnames';\nimport PropTypes from '../../_util/vue-types';\nimport { mergeProps } from '../../_util/props-util';\n\nvar TableHeaderRow = {\n inject: {\n store: { from: 'table-store', 'default': function _default() {\n return {};\n } }\n },\n props: {\n index: PropTypes.number,\n fixed: PropTypes.string,\n columns: PropTypes.array,\n rows: PropTypes.array,\n row: PropTypes.array,\n components: PropTypes.object,\n customHeaderRow: PropTypes.func,\n prefixCls: PropTypes.string\n },\n name: 'TableHeaderRow',\n computed: {\n height: function height() {\n var fixedColumnsHeadRowsHeight = this.store.fixedColumnsHeadRowsHeight;\n var _$props = this.$props,\n columns = _$props.columns,\n rows = _$props.rows,\n fixed = _$props.fixed;\n\n var headerHeight = fixedColumnsHeadRowsHeight[0];\n\n if (!fixed) {\n return null;\n }\n\n if (headerHeight && columns) {\n if (headerHeight === 'auto') {\n return 'auto';\n }\n return headerHeight / rows.length + 'px';\n }\n return null;\n }\n },\n render: function render(h) {\n var row = this.row,\n index = this.index,\n height = this.height,\n components = this.components,\n customHeaderRow = this.customHeaderRow,\n prefixCls = this.prefixCls;\n\n var HeaderRow = components.header.row;\n var HeaderCell = components.header.cell;\n var rowProps = customHeaderRow(row.map(function (cell) {\n return cell.column;\n }), index);\n var customStyle = rowProps ? rowProps.style : {};\n var style = _extends({ height: height }, customStyle);\n if (style.height === null) {\n delete style.height;\n }\n return h(\n HeaderRow,\n _mergeJSXProps([rowProps, { style: style }]),\n [row.map(function (cell, i) {\n var _classNames;\n\n var column = cell.column,\n isLast = cell.isLast,\n children = cell.children,\n className = cell.className,\n cellProps = _objectWithoutProperties(cell, ['column', 'isLast', 'children', 'className']);\n\n var customProps = column.customHeaderCell ? column.customHeaderCell(column) : {};\n var headerCellProps = mergeProps({\n attrs: _extends({}, cellProps)\n }, _extends({}, customProps, {\n key: column.key || column.dataIndex || i\n }));\n\n if (column.align) {\n headerCellProps.style = _extends({}, customProps.style, { textAlign: column.align });\n }\n\n headerCellProps['class'] = classNames(customProps['class'], customProps.className, column['class'], column.className, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-align-' + column.align, !!column.align), _defineProperty(_classNames, prefixCls + '-row-cell-ellipsis', !!column.ellipsis), _defineProperty(_classNames, prefixCls + '-row-cell-break-word', !!column.width), _defineProperty(_classNames, prefixCls + '-row-cell-last', isLast), _classNames));\n\n if (typeof HeaderCell === 'function') {\n return HeaderCell(h, headerCellProps, children);\n }\n return h(\n HeaderCell,\n headerCellProps,\n [children]\n );\n })]\n );\n }\n};\n\nexport default TableHeaderRow;","import PropTypes from '../../_util/vue-types';\nimport TableHeaderRow from './TableHeaderRow';\n\nfunction getHeaderRows(_ref) {\n var _ref$columns = _ref.columns,\n columns = _ref$columns === undefined ? [] : _ref$columns,\n _ref$currentRow = _ref.currentRow,\n currentRow = _ref$currentRow === undefined ? 0 : _ref$currentRow,\n _ref$rows = _ref.rows,\n rows = _ref$rows === undefined ? [] : _ref$rows,\n _ref$isLast = _ref.isLast,\n isLast = _ref$isLast === undefined ? true : _ref$isLast;\n\n rows = rows || [];\n rows[currentRow] = rows[currentRow] || [];\n\n columns.forEach(function (column, i) {\n if (column.rowSpan && rows.length < column.rowSpan) {\n while (rows.length < column.rowSpan) {\n rows.push([]);\n }\n }\n var cellIsLast = isLast && i === columns.length - 1;\n var cell = {\n key: column.key,\n className: column.className || column['class'] || '',\n children: column.title,\n isLast: cellIsLast,\n column: column\n };\n if (column.children) {\n getHeaderRows({\n columns: column.children,\n currentRow: currentRow + 1,\n rows: rows,\n isLast: cellIsLast\n });\n }\n if ('colSpan' in column) {\n cell.colSpan = column.colSpan;\n }\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n if (cell.colSpan !== 0) {\n rows[currentRow].push(cell);\n }\n });\n return rows.filter(function (row) {\n return row.length > 0;\n });\n}\n\nexport default {\n name: 'TableHeader',\n props: {\n fixed: PropTypes.string,\n columns: PropTypes.array.isRequired,\n expander: PropTypes.object.isRequired\n },\n inject: {\n table: { 'default': function _default() {\n return {};\n } }\n },\n\n render: function render() {\n var h = arguments[0];\n var _table = this.table,\n components = _table.sComponents,\n prefixCls = _table.prefixCls,\n showHeader = _table.showHeader,\n customHeaderRow = _table.customHeaderRow;\n var expander = this.expander,\n columns = this.columns,\n fixed = this.fixed;\n\n\n if (!showHeader) {\n return null;\n }\n\n var rows = getHeaderRows({ columns: columns });\n\n expander.renderExpandIndentCell(rows, fixed);\n\n var HeaderWrapper = components.header.wrapper;\n\n return h(\n HeaderWrapper,\n { 'class': prefixCls + '-thead' },\n [rows.map(function (row, index) {\n return h(TableHeaderRow, {\n attrs: {\n prefixCls: prefixCls,\n\n index: index,\n fixed: fixed,\n columns: columns,\n rows: rows,\n row: row,\n components: components,\n customHeaderRow: customHeaderRow\n },\n key: index });\n })]\n );\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 get from 'lodash/get';\nimport classNames from 'classnames';\nimport { isValidElement, mergeProps } from '../../_util/props-util';\n\nfunction isInvalidRenderCellText(text) {\n return text && !isValidElement(text) && Object.prototype.toString.call(text) === '[object Object]';\n}\n\nexport default {\n name: 'TableCell',\n props: {\n record: PropTypes.object,\n prefixCls: PropTypes.string,\n index: PropTypes.number,\n indent: PropTypes.number,\n indentSize: PropTypes.number,\n column: PropTypes.object,\n expandIcon: PropTypes.any,\n component: PropTypes.any\n },\n inject: {\n table: { 'default': function _default() {\n return {};\n } }\n },\n methods: {\n handleClick: function handleClick(e) {\n var record = this.record,\n onCellClick = this.column.onCellClick;\n\n if (onCellClick) {\n onCellClick(record, e);\n }\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var record = this.record,\n indentSize = this.indentSize,\n prefixCls = this.prefixCls,\n indent = this.indent,\n index = this.index,\n expandIcon = this.expandIcon,\n column = this.column,\n BodyCell = this.component;\n var dataIndex = column.dataIndex,\n customRender = column.customRender,\n _column$className = column.className,\n className = _column$className === undefined ? '' : _column$className;\n var transformCellText = this.table.transformCellText;\n // We should return undefined if no dataIndex is specified, but in order to\n // be compatible with object-path's behavior, we return the record object instead.\n\n var text = void 0;\n if (typeof dataIndex === 'number') {\n text = get(record, dataIndex);\n } else if (!dataIndex || dataIndex.length === 0) {\n text = record;\n } else {\n text = get(record, dataIndex);\n }\n var tdProps = {\n props: {},\n attrs: {},\n on: {\n click: this.handleClick\n }\n };\n var colSpan = void 0;\n var rowSpan = void 0;\n\n if (customRender) {\n text = customRender(text, record, index, column);\n if (isInvalidRenderCellText(text)) {\n tdProps.attrs = text.attrs || {};\n tdProps.props = text.props || {};\n tdProps['class'] = text['class'];\n tdProps.style = text.style;\n colSpan = tdProps.attrs.colSpan;\n rowSpan = tdProps.attrs.rowSpan;\n text = text.children;\n }\n }\n\n if (column.customCell) {\n tdProps = mergeProps(tdProps, column.customCell(record, index));\n }\n\n // Fix https://github.com/ant-design/ant-design/issues/1202\n if (isInvalidRenderCellText(text)) {\n text = null;\n }\n\n if (transformCellText) {\n text = transformCellText({ text: text, column: column, record: record, index: index });\n }\n\n var indentText = expandIcon ? h('span', {\n style: { paddingLeft: indentSize * indent + 'px' },\n 'class': prefixCls + '-indent indent-level-' + indent\n }) : null;\n\n if (rowSpan === 0 || colSpan === 0) {\n return null;\n }\n if (column.align) {\n tdProps.style = _extends({ textAlign: column.align }, tdProps.style);\n }\n\n var cellClassName = classNames(className, column['class'], (_classNames = {}, _defineProperty(_classNames, prefixCls + '-cell-ellipsis', !!column.ellipsis), _defineProperty(_classNames, prefixCls + '-cell-break-word', !!column.width), _classNames));\n\n if (column.ellipsis) {\n if (typeof text === 'string') {\n tdProps.attrs.title = text;\n } else if (text) {\n // const { props: textProps } = text;\n // if (textProps && textProps.children && typeof textProps.children === 'string') {\n // tdProps.attrs.title = textProps.children;\n // }\n }\n }\n\n return h(\n BodyCell,\n _mergeJSXProps([{ 'class': cellClassName }, tdProps]),\n [indentText, expandIcon, text]\n );\n }\n};","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classNames from 'classnames';\nimport PropTypes from '../../_util/vue-types';\nimport TableCell from './TableCell';\nimport { initDefaultProps, mergeProps, getStyle as _getStyle } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport warning from '../../_util/warning';\nfunction noop() {}\nvar TableRow = {\n name: 'TableRow',\n mixins: [BaseMixin],\n inject: {\n store: { from: 'table-store', 'default': function _default() {\n return {};\n } }\n },\n props: initDefaultProps({\n customRow: PropTypes.func,\n // onRowClick: PropTypes.func,\n // onRowDoubleClick: PropTypes.func,\n // onRowContextMenu: PropTypes.func,\n // onRowMouseEnter: PropTypes.func,\n // onRowMouseLeave: PropTypes.func,\n record: PropTypes.object,\n prefixCls: PropTypes.string,\n // onHover: PropTypes.func,\n columns: PropTypes.array,\n index: PropTypes.number,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n className: PropTypes.string,\n indent: PropTypes.number,\n indentSize: PropTypes.number,\n hasExpandIcon: PropTypes.func,\n fixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n renderExpandIcon: PropTypes.func,\n renderExpandIconCell: PropTypes.func,\n components: PropTypes.any,\n expandedRow: PropTypes.bool,\n isAnyColumnsFixed: PropTypes.bool,\n ancestorKeys: PropTypes.array.isRequired,\n expandIconColumnIndex: PropTypes.number,\n expandRowByClick: PropTypes.bool\n // visible: PropTypes.bool,\n // hovered: PropTypes.bool,\n // height: PropTypes.any,\n }, {\n // expandIconColumnIndex: 0,\n // expandRowByClick: false,\n hasExpandIcon: function hasExpandIcon() {},\n renderExpandIcon: function renderExpandIcon() {},\n renderExpandIconCell: function renderExpandIconCell() {}\n }),\n\n computed: {\n visible: function visible() {\n var expandedRowKeys = this.store.expandedRowKeys;\n var ancestorKeys = this.$props.ancestorKeys;\n\n return !!(ancestorKeys.length === 0 || ancestorKeys.every(function (k) {\n return expandedRowKeys.includes(k);\n }));\n },\n height: function height() {\n var _store = this.store,\n expandedRowsHeight = _store.expandedRowsHeight,\n fixedColumnsBodyRowsHeight = _store.fixedColumnsBodyRowsHeight;\n var _$props = this.$props,\n fixed = _$props.fixed,\n rowKey = _$props.rowKey;\n\n\n if (!fixed) {\n return null;\n }\n\n if (expandedRowsHeight[rowKey]) {\n return expandedRowsHeight[rowKey];\n }\n\n if (fixedColumnsBodyRowsHeight[rowKey]) {\n return fixedColumnsBodyRowsHeight[rowKey];\n }\n\n return null;\n },\n hovered: function hovered() {\n var currentHoverKey = this.store.currentHoverKey;\n var rowKey = this.$props.rowKey;\n\n return currentHoverKey === rowKey;\n }\n },\n\n data: function data() {\n // this.shouldRender = this.visible\n return {\n shouldRender: this.visible\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n if (this.shouldRender) {\n this.$nextTick(function () {\n _this.saveRowRef();\n });\n }\n },\n\n watch: {\n visible: {\n handler: function handler(val) {\n if (val) {\n this.shouldRender = true;\n }\n },\n\n immediate: true\n }\n },\n\n updated: function updated() {\n var _this2 = this;\n\n if (this.shouldRender && !this.rowRef) {\n this.$nextTick(function () {\n _this2.saveRowRef();\n });\n }\n },\n\n methods: {\n onRowClick: function onRowClick(event) {\n var rowPropFunc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var record = this.record,\n index = this.index;\n\n this.__emit('rowClick', record, index, event);\n rowPropFunc(event);\n },\n onRowDoubleClick: function onRowDoubleClick(event) {\n var rowPropFunc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var record = this.record,\n index = this.index;\n\n this.__emit('rowDoubleClick', record, index, event);\n rowPropFunc(event);\n },\n onContextMenu: function onContextMenu(event) {\n var rowPropFunc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var record = this.record,\n index = this.index;\n\n this.__emit('rowContextmenu', record, index, event);\n rowPropFunc(event);\n },\n onMouseEnter: function onMouseEnter(event) {\n var rowPropFunc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var record = this.record,\n index = this.index,\n rowKey = this.rowKey;\n\n this.__emit('hover', true, rowKey);\n this.__emit('rowMouseenter', record, index, event);\n rowPropFunc(event);\n },\n onMouseLeave: function onMouseLeave(event) {\n var rowPropFunc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var record = this.record,\n index = this.index,\n rowKey = this.rowKey;\n\n this.__emit('hover', false, rowKey);\n this.__emit('rowMouseleave', record, index, event);\n rowPropFunc(event);\n },\n setExpandedRowHeight: function setExpandedRowHeight() {\n var store = this.store,\n rowKey = this.rowKey;\n var expandedRowsHeight = store.expandedRowsHeight;\n\n var height = this.rowRef.getBoundingClientRect().height;\n expandedRowsHeight = _extends({}, expandedRowsHeight, _defineProperty({}, rowKey, height));\n store.expandedRowsHeight = expandedRowsHeight;\n },\n setRowHeight: function setRowHeight() {\n var store = this.store,\n rowKey = this.rowKey;\n var fixedColumnsBodyRowsHeight = store.fixedColumnsBodyRowsHeight;\n\n var height = this.rowRef.getBoundingClientRect().height;\n store.fixedColumnsBodyRowsHeight = _extends({}, fixedColumnsBodyRowsHeight, _defineProperty({}, rowKey, height));\n },\n getStyle: function getStyle() {\n var height = this.height,\n visible = this.visible;\n\n var style = _getStyle(this);\n if (height) {\n style = _extends({}, style, { height: height });\n }\n\n if (!visible && !style.display) {\n style = _extends({}, style, { display: 'none' });\n }\n\n return style;\n },\n saveRowRef: function saveRowRef() {\n this.rowRef = this.$el;\n\n var isAnyColumnsFixed = this.isAnyColumnsFixed,\n fixed = this.fixed,\n expandedRow = this.expandedRow,\n ancestorKeys = this.ancestorKeys;\n\n\n if (!isAnyColumnsFixed) {\n return;\n }\n\n if (!fixed && expandedRow) {\n this.setExpandedRowHeight();\n }\n\n if (!fixed && ancestorKeys.length >= 0) {\n this.setRowHeight();\n }\n }\n },\n\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return null;\n }\n\n var prefixCls = this.prefixCls,\n columns = this.columns,\n record = this.record,\n rowKey = this.rowKey,\n index = this.index,\n _customRow = this.customRow,\n customRow = _customRow === undefined ? noop : _customRow,\n indent = this.indent,\n indentSize = this.indentSize,\n hovered = this.hovered,\n height = this.height,\n visible = this.visible,\n components = this.components,\n hasExpandIcon = this.hasExpandIcon,\n renderExpandIcon = this.renderExpandIcon,\n renderExpandIconCell = this.renderExpandIconCell;\n\n var BodyRow = components.body.row;\n var BodyCell = components.body.cell;\n\n var className = '';\n\n if (hovered) {\n className += ' ' + prefixCls + '-hover';\n }\n\n var cells = [];\n\n renderExpandIconCell(cells);\n\n for (var i = 0; i < columns.length; i += 1) {\n var column = columns[i];\n\n warning(column.onCellClick === undefined, 'column[onCellClick] is deprecated, please use column[customCell] instead.');\n\n cells.push(h(TableCell, {\n attrs: {\n prefixCls: prefixCls,\n record: record,\n indentSize: indentSize,\n indent: indent,\n index: index,\n column: column,\n\n expandIcon: hasExpandIcon(i) && renderExpandIcon(),\n component: BodyCell\n },\n key: column.key || column.dataIndex }));\n }\n\n var _ref = customRow(record, index) || {},\n customClass = _ref['class'],\n customClassName = _ref.className,\n customStyle = _ref.style,\n rowProps = _objectWithoutProperties(_ref, ['class', 'className', 'style']);\n\n var style = { height: typeof height === 'number' ? height + 'px' : height };\n\n if (!visible) {\n style.display = 'none';\n }\n\n style = _extends({}, style, customStyle);\n var rowClassName = classNames(prefixCls, className, prefixCls + '-level-' + indent, customClassName, customClass);\n var rowPropEvents = rowProps.on || {};\n var bodyRowProps = mergeProps(_extends({}, rowProps, { style: style }), {\n on: {\n click: function click(e) {\n _this3.onRowClick(e, rowPropEvents.click);\n },\n dblclick: function dblclick(e) {\n _this3.onRowDoubleClick(e, rowPropEvents.dblclick);\n },\n mouseenter: function mouseenter(e) {\n _this3.onMouseEnter(e, rowPropEvents.mouseenter);\n },\n mouseleave: function mouseleave(e) {\n _this3.onMouseLeave(e, rowPropEvents.mouseleave);\n },\n contextmenu: function contextmenu(e) {\n _this3.onContextMenu(e, rowPropEvents.contextmenu);\n }\n },\n 'class': rowClassName\n }, {\n attrs: {\n 'data-row-key': rowKey\n }\n });\n return h(\n BodyRow,\n bodyRowProps,\n [cells]\n );\n }\n};\n\nexport default TableRow;","import PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nexport default {\n name: 'ExpandIcon',\n mixins: [BaseMixin],\n props: {\n record: PropTypes.object,\n prefixCls: PropTypes.string,\n expandable: PropTypes.any,\n expanded: PropTypes.bool,\n needIndentSpaced: PropTypes.bool\n },\n methods: {\n onExpand: function onExpand(e) {\n this.__emit('expand', this.record, e);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var expandable = this.expandable,\n prefixCls = this.prefixCls,\n onExpand = this.onExpand,\n needIndentSpaced = this.needIndentSpaced,\n expanded = this.expanded;\n\n if (expandable) {\n var expandClassName = expanded ? 'expanded' : 'collapsed';\n return h('span', {\n 'class': prefixCls + '-expand-icon ' + prefixCls + '-' + expandClassName,\n on: {\n 'click': onExpand\n }\n });\n }\n if (needIndentSpaced) {\n return h('span', { 'class': prefixCls + '-expand-icon ' + prefixCls + '-spaced' });\n }\n return null;\n }\n};","import PropTypes from '../../_util/vue-types';\nimport ExpandIcon from './ExpandIcon';\nimport BaseMixin from '../../_util/BaseMixin';\n\nvar ExpandableRow = {\n mixins: [BaseMixin],\n name: 'ExpandableRow',\n props: {\n prefixCls: PropTypes.string.isRequired,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n fixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n record: PropTypes.oneOfType([PropTypes.object, PropTypes.array]).isRequired,\n indentSize: PropTypes.number,\n needIndentSpaced: PropTypes.bool.isRequired,\n expandRowByClick: PropTypes.bool,\n expandIconAsCell: PropTypes.bool,\n expandIconColumnIndex: PropTypes.number,\n childrenColumnName: PropTypes.string,\n expandedRowRender: PropTypes.func,\n expandIcon: PropTypes.func\n // onExpandedChange: PropTypes.func.isRequired,\n // onRowClick: PropTypes.func,\n // children: PropTypes.func.isRequired,\n },\n inject: {\n store: { from: 'table-store', 'default': function _default() {\n return {};\n } }\n },\n computed: {\n expanded: function expanded() {\n return this.store.expandedRowKeys.includes(this.$props.rowKey);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.handleDestroy();\n },\n\n methods: {\n hasExpandIcon: function hasExpandIcon(columnIndex) {\n var _$props = this.$props,\n expandRowByClick = _$props.expandRowByClick,\n expandIcon = _$props.expandIcon;\n\n\n if (this.tempExpandIconAsCell || columnIndex !== this.tempExpandIconColumnIndex) {\n return false;\n }\n\n return !!expandIcon || !expandRowByClick;\n },\n handleExpandChange: function handleExpandChange(record, event) {\n var expanded = this.expanded,\n rowKey = this.rowKey;\n\n this.__emit('expandedChange', !expanded, record, event, rowKey);\n },\n handleDestroy: function handleDestroy() {\n var rowKey = this.rowKey,\n record = this.record;\n\n this.__emit('expandedChange', false, record, null, rowKey, true);\n },\n handleRowClick: function handleRowClick(record, index, event) {\n var expandRowByClick = this.expandRowByClick;\n\n if (expandRowByClick) {\n this.handleExpandChange(record, event);\n }\n this.__emit('rowClick', record, index, event);\n },\n renderExpandIcon: function renderExpandIcon() {\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n expanded = this.expanded,\n record = this.record,\n needIndentSpaced = this.needIndentSpaced,\n expandIcon = this.expandIcon;\n\n if (expandIcon) {\n return expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n record: record,\n needIndentSpaced: needIndentSpaced,\n expandable: this.expandable,\n onExpand: this.handleExpandChange\n });\n }\n return h(ExpandIcon, {\n attrs: {\n expandable: this.expandable,\n prefixCls: prefixCls,\n\n needIndentSpaced: needIndentSpaced,\n expanded: expanded,\n record: record\n },\n on: {\n 'expand': this.handleExpandChange\n }\n });\n },\n renderExpandIconCell: function renderExpandIconCell(cells) {\n var h = this.$createElement;\n\n if (!this.tempExpandIconAsCell) {\n return;\n }\n var prefixCls = this.prefixCls;\n\n\n cells.push(h(\n 'td',\n { 'class': prefixCls + '-expand-icon-cell', key: 'rc-table-expand-icon-cell' },\n [this.renderExpandIcon()]\n ));\n }\n },\n\n render: function render() {\n var childrenColumnName = this.childrenColumnName,\n expandedRowRender = this.expandedRowRender,\n indentSize = this.indentSize,\n record = this.record,\n fixed = this.fixed,\n $scopedSlots = this.$scopedSlots,\n expanded = this.expanded;\n\n\n this.tempExpandIconAsCell = fixed !== 'right' ? this.expandIconAsCell : false;\n this.tempExpandIconColumnIndex = fixed !== 'right' ? this.expandIconColumnIndex : -1;\n var childrenData = record[childrenColumnName];\n this.expandable = !!(childrenData || expandedRowRender);\n var expandableRowProps = {\n props: {\n indentSize: indentSize,\n expanded: expanded, // not used in TableRow, but it's required to re-render TableRow when `expanded` changes\n hasExpandIcon: this.hasExpandIcon,\n renderExpandIcon: this.renderExpandIcon,\n renderExpandIconCell: this.renderExpandIconCell\n },\n\n on: {\n rowClick: this.handleRowClick\n }\n };\n\n return $scopedSlots['default'] && $scopedSlots['default'](expandableRowProps);\n }\n};\n\nexport default ExpandableRow;","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport ColGroup from './ColGroup';\nimport TableHeader from './TableHeader';\nimport TableRow from './TableRow';\nimport ExpandableRow from './ExpandableRow';\nimport { mergeProps, getListeners } from '../../_util/props-util';\nfunction noop() {}\nvar BaseTable = {\n name: 'BaseTable',\n props: {\n fixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n columns: PropTypes.array.isRequired,\n tableClassName: PropTypes.string.isRequired,\n hasHead: PropTypes.bool.isRequired,\n hasBody: PropTypes.bool.isRequired,\n expander: PropTypes.object.isRequired,\n getRowKey: PropTypes.func,\n isAnyColumnsFixed: PropTypes.bool\n },\n inject: {\n table: { 'default': function _default() {\n return {};\n } },\n store: { from: 'table-store', 'default': function _default() {\n return {};\n } }\n },\n methods: {\n getColumns: function getColumns(cols) {\n var _$props = this.$props,\n _$props$columns = _$props.columns,\n columns = _$props$columns === undefined ? [] : _$props$columns,\n fixed = _$props.fixed;\n var table = this.table;\n var prefixCls = table.$props.prefixCls;\n\n return (cols || columns).map(function (column) {\n return _extends({}, column, {\n className: !!column.fixed && !fixed ? classNames(prefixCls + '-fixed-columns-in-body', column.className || column['class']) : column.className || column['class']\n });\n });\n },\n handleRowHover: function handleRowHover(isHover, key) {\n this.store.currentHoverKey = isHover ? key : null;\n },\n renderRows: function renderRows(renderData, indent) {\n var _this = this;\n\n var ancestorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var h = this.$createElement;\n var _table = this.table,\n columnManager = _table.columnManager,\n components = _table.sComponents,\n prefixCls = _table.prefixCls,\n childrenColumnName = _table.childrenColumnName,\n rowClassName = _table.rowClassName,\n _table$customRow = _table.customRow,\n customRow = _table$customRow === undefined ? noop : _table$customRow;\n\n var _getListeners = getListeners(this.table),\n _getListeners$rowClic = _getListeners.rowClick,\n onRowClick = _getListeners$rowClic === undefined ? noop : _getListeners$rowClic,\n _getListeners$rowDoub = _getListeners.rowDoubleclick,\n onRowDoubleClick = _getListeners$rowDoub === undefined ? noop : _getListeners$rowDoub,\n _getListeners$rowCont = _getListeners.rowContextmenu,\n onRowContextMenu = _getListeners$rowCont === undefined ? noop : _getListeners$rowCont,\n _getListeners$rowMous = _getListeners.rowMouseenter,\n onRowMouseEnter = _getListeners$rowMous === undefined ? noop : _getListeners$rowMous,\n _getListeners$rowMous2 = _getListeners.rowMouseleave,\n onRowMouseLeave = _getListeners$rowMous2 === undefined ? noop : _getListeners$rowMous2;\n\n var getRowKey = this.getRowKey,\n fixed = this.fixed,\n expander = this.expander,\n isAnyColumnsFixed = this.isAnyColumnsFixed;\n\n\n var rows = [];\n\n var _loop = function _loop(i) {\n var record = renderData[i];\n var key = getRowKey(record, i);\n var className = typeof rowClassName === 'string' ? rowClassName : rowClassName(record, i, indent);\n\n var onHoverProps = {};\n if (columnManager.isAnyColumnsFixed()) {\n onHoverProps.hover = _this.handleRowHover;\n }\n\n var leafColumns = void 0;\n if (fixed === 'left') {\n leafColumns = columnManager.leftLeafColumns();\n } else if (fixed === 'right') {\n leafColumns = columnManager.rightLeafColumns();\n } else {\n leafColumns = _this.getColumns(columnManager.leafColumns());\n }\n\n var rowPrefixCls = prefixCls + '-row';\n\n var expandableRowProps = {\n props: _extends({}, expander.props, {\n fixed: fixed,\n index: i,\n prefixCls: rowPrefixCls,\n record: record,\n rowKey: key,\n needIndentSpaced: expander.needIndentSpaced\n }),\n key: key,\n on: {\n // ...expander.on,\n rowClick: onRowClick,\n expandedChange: expander.handleExpandChange\n },\n scopedSlots: {\n 'default': function _default(expandableRow) {\n var tableRowProps = mergeProps({\n props: {\n fixed: fixed,\n indent: indent,\n record: record,\n index: i,\n prefixCls: rowPrefixCls,\n childrenColumnName: childrenColumnName,\n columns: leafColumns,\n rowKey: key,\n ancestorKeys: ancestorKeys,\n components: components,\n isAnyColumnsFixed: isAnyColumnsFixed,\n customRow: customRow\n },\n on: _extends({\n rowDoubleclick: onRowDoubleClick,\n rowContextmenu: onRowContextMenu,\n rowMouseenter: onRowMouseEnter,\n rowMouseleave: onRowMouseLeave\n }, onHoverProps),\n 'class': className,\n ref: 'row_' + i + '_' + indent\n }, expandableRow);\n return h(TableRow, tableRowProps);\n }\n }\n };\n var row = h(ExpandableRow, expandableRowProps);\n\n rows.push(row);\n expander.renderRows(_this.renderRows, rows, record, i, indent, fixed, key, ancestorKeys);\n };\n\n for (var i = 0; i < renderData.length; i += 1) {\n _loop(i);\n }\n return rows;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _table2 = this.table,\n components = _table2.sComponents,\n prefixCls = _table2.prefixCls,\n scroll = _table2.scroll,\n data = _table2.data,\n getBodyWrapper = _table2.getBodyWrapper;\n var _$props2 = this.$props,\n expander = _$props2.expander,\n tableClassName = _$props2.tableClassName,\n hasHead = _$props2.hasHead,\n hasBody = _$props2.hasBody,\n fixed = _$props2.fixed,\n isAnyColumnsFixed = _$props2.isAnyColumnsFixed;\n\n var columns = this.getColumns();\n var tableStyle = {};\n\n if (!fixed && scroll.x) {\n // 当有固定列时,width auto 会导致 body table 的宽度撑不开,从而固定列无法对齐\n // 详情见:https://github.com/ant-design/ant-design/issues/22160\n var tableWidthScrollX = isAnyColumnsFixed ? 'max-content' : 'auto';\n // not set width, then use content fixed width\n tableStyle.width = scroll.x === true ? tableWidthScrollX : scroll.x;\n tableStyle.width = typeof tableStyle.width === 'number' ? tableStyle.width + 'px' : tableStyle.width;\n }\n if (fixed) {\n var width = columns.reduce(function (sum, _ref) {\n var w = _ref.width;\n\n return sum + parseFloat(w, 10);\n }, 0);\n if (width > 0) {\n tableStyle.width = width + 'px';\n }\n }\n\n var Table = hasBody ? components.table : 'table';\n var BodyWrapper = components.body.wrapper;\n\n var body = void 0;\n if (hasBody) {\n body = h(\n BodyWrapper,\n { 'class': prefixCls + '-tbody' },\n [this.renderRows(data, 0)]\n );\n if (getBodyWrapper) {\n body = getBodyWrapper(body);\n }\n }\n return h(\n Table,\n { 'class': tableClassName, style: tableStyle, key: 'table' },\n [h(ColGroup, {\n attrs: { columns: columns, fixed: fixed }\n }), hasHead && h(TableHeader, {\n attrs: { expander: expander, columns: columns, fixed: fixed }\n }), body]\n );\n }\n};\n\nexport default BaseTable;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../_util/vue-types';\nimport { measureScrollbar } from './utils';\nimport BaseTable from './BaseTable';\nimport classNames from 'classnames';\n\nexport default {\n name: 'HeadTable',\n props: {\n fixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n columns: PropTypes.array.isRequired,\n tableClassName: PropTypes.string.isRequired,\n handleBodyScrollLeft: PropTypes.func.isRequired,\n expander: PropTypes.object.isRequired\n },\n inject: {\n table: { 'default': function _default() {\n return {};\n } }\n },\n render: function render() {\n var h = arguments[0];\n var columns = this.columns,\n fixed = this.fixed,\n tableClassName = this.tableClassName,\n handleBodyScrollLeft = this.handleBodyScrollLeft,\n expander = this.expander,\n table = this.table;\n var prefixCls = table.prefixCls,\n scroll = table.scroll,\n showHeader = table.showHeader,\n saveRef = table.saveRef;\n var useFixedHeader = table.useFixedHeader;\n\n var headStyle = {};\n\n var scrollbarWidth = measureScrollbar({ direction: 'vertical' });\n\n if (scroll.y) {\n useFixedHeader = true;\n // https://github.com/ant-design/ant-design/issues/17051\n var scrollbarWidthOfHeader = measureScrollbar({ direction: 'horizontal', prefixCls: prefixCls });\n // Add negative margin bottom for scroll bar overflow bug\n if (scrollbarWidthOfHeader > 0 && !fixed) {\n headStyle.marginBottom = '-' + scrollbarWidthOfHeader + 'px';\n headStyle.paddingBottom = '0px';\n // https://github.com/ant-design/ant-design/pull/19986\n headStyle.minWidth = scrollbarWidth + 'px';\n // https://github.com/ant-design/ant-design/issues/17051\n headStyle.overflowX = 'scroll';\n headStyle.overflowY = scrollbarWidth === 0 ? 'hidden' : 'scroll';\n }\n }\n\n if (!useFixedHeader || !showHeader) {\n return null;\n }\n return h(\n 'div',\n _mergeJSXProps([{\n key: 'headTable'\n }, {\n directives: [{\n name: 'ant-ref',\n value: fixed ? function () {} : saveRef('headTable')\n }]\n }, {\n 'class': classNames(prefixCls + '-header', _defineProperty({}, prefixCls + '-hide-scrollbar', scrollbarWidth > 0)),\n style: headStyle,\n on: {\n 'scroll': handleBodyScrollLeft\n }\n }]),\n [h(BaseTable, {\n attrs: {\n tableClassName: tableClassName,\n hasHead: true,\n hasBody: false,\n fixed: fixed,\n columns: columns,\n expander: expander\n }\n })]\n );\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport { measureScrollbar } from './utils';\nimport BaseTable from './BaseTable';\n\nexport default {\n name: 'BodyTable',\n props: {\n fixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n columns: PropTypes.array.isRequired,\n tableClassName: PropTypes.string.isRequired,\n handleBodyScroll: PropTypes.func.isRequired,\n handleWheel: PropTypes.func.isRequired,\n getRowKey: PropTypes.func.isRequired,\n expander: PropTypes.object.isRequired,\n isAnyColumnsFixed: PropTypes.bool\n },\n inject: {\n table: { 'default': function _default() {\n return {};\n } }\n },\n render: function render() {\n var h = arguments[0];\n var _table = this.table,\n prefixCls = _table.prefixCls,\n scroll = _table.scroll;\n var columns = this.columns,\n fixed = this.fixed,\n tableClassName = this.tableClassName,\n getRowKey = this.getRowKey,\n handleBodyScroll = this.handleBodyScroll,\n handleWheel = this.handleWheel,\n expander = this.expander,\n isAnyColumnsFixed = this.isAnyColumnsFixed;\n var _table2 = this.table,\n useFixedHeader = _table2.useFixedHeader,\n saveRef = _table2.saveRef;\n\n var bodyStyle = _extends({}, this.table.bodyStyle);\n var innerBodyStyle = {};\n\n if (scroll.x || fixed) {\n bodyStyle.overflowX = bodyStyle.overflowX || 'scroll';\n // Fix weired webkit render bug\n // https://github.com/ant-design/ant-design/issues/7783\n bodyStyle.WebkitTransform = 'translate3d (0, 0, 0)';\n }\n\n if (scroll.y) {\n // maxHeight will make fixed-Table scrolling not working\n // so we only set maxHeight to body-Table here\n var maxHeight = bodyStyle.maxHeight || scroll.y;\n maxHeight = typeof maxHeight === 'number' ? maxHeight + 'px' : maxHeight;\n if (fixed) {\n innerBodyStyle.maxHeight = maxHeight;\n innerBodyStyle.overflowY = bodyStyle.overflowY || 'scroll';\n } else {\n bodyStyle.maxHeight = maxHeight;\n }\n bodyStyle.overflowY = bodyStyle.overflowY || 'scroll';\n useFixedHeader = true;\n\n // Add negative margin bottom for scroll bar overflow bug\n var scrollbarWidth = measureScrollbar({ direction: 'vertical' });\n if (scrollbarWidth > 0 && fixed) {\n bodyStyle.marginBottom = '-' + scrollbarWidth + 'px';\n bodyStyle.paddingBottom = '0px';\n }\n }\n\n var baseTable = h(BaseTable, {\n attrs: {\n tableClassName: tableClassName,\n hasHead: !useFixedHeader,\n hasBody: true,\n fixed: fixed,\n columns: columns,\n expander: expander,\n getRowKey: getRowKey,\n isAnyColumnsFixed: isAnyColumnsFixed\n }\n });\n\n if (fixed && columns.length) {\n var refName = void 0;\n if (columns[0].fixed === 'left' || columns[0].fixed === true) {\n refName = 'fixedColumnsBodyLeft';\n } else if (columns[0].fixed === 'right') {\n refName = 'fixedColumnsBodyRight';\n }\n delete bodyStyle.overflowX;\n delete bodyStyle.overflowY;\n return h(\n 'div',\n { key: 'bodyTable', 'class': prefixCls + '-body-outer', style: _extends({}, bodyStyle) },\n [h(\n 'div',\n _mergeJSXProps([{\n 'class': prefixCls + '-body-inner',\n style: innerBodyStyle\n }, {\n directives: [{\n name: 'ant-ref',\n value: saveRef(refName)\n }]\n }, {\n on: {\n 'wheel': handleWheel,\n 'scroll': handleBodyScroll\n }\n }]),\n [baseTable]\n )]\n );\n }\n // Should provides `tabIndex` if use scroll to enable keyboard scroll\n var useTabIndex = scroll && (scroll.x || scroll.y);\n\n return h(\n 'div',\n _mergeJSXProps([{\n attrs: {\n tabIndex: useTabIndex ? -1 : undefined\n },\n key: 'bodyTable',\n 'class': prefixCls + '-body',\n style: bodyStyle\n }, {\n directives: [{\n name: 'ant-ref',\n value: saveRef('bodyTable')\n }]\n }, {\n on: {\n 'wheel': handleWheel,\n 'scroll': handleBodyScroll\n }\n }]),\n [baseTable]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport PropTypes from '../../_util/vue-types';\nimport BaseMixin from '../../_util/BaseMixin';\nimport shallowEqual from 'shallowequal';\nimport TableRow from './TableRow';\nimport { remove } from './utils';\nimport { initDefaultProps, getOptionProps, getListeners } from '../../_util/props-util';\n\nexport var ExpandableTableProps = function ExpandableTableProps() {\n return {\n expandIconAsCell: PropTypes.bool,\n expandRowByClick: PropTypes.bool,\n expandedRowKeys: PropTypes.array,\n expandedRowClassName: PropTypes.func,\n defaultExpandAllRows: PropTypes.bool,\n defaultExpandedRowKeys: PropTypes.array,\n expandIconColumnIndex: PropTypes.number,\n expandedRowRender: PropTypes.func,\n expandIcon: PropTypes.func,\n childrenColumnName: PropTypes.string,\n indentSize: PropTypes.number,\n // onExpand: PropTypes.func,\n // onExpandedRowsChange: PropTypes.func,\n columnManager: PropTypes.object.isRequired,\n prefixCls: PropTypes.string.isRequired,\n data: PropTypes.array,\n getRowKey: PropTypes.func\n };\n};\n\nvar ExpandableTable = {\n name: 'ExpandableTable',\n mixins: [BaseMixin],\n props: initDefaultProps(ExpandableTableProps(), {\n expandIconAsCell: false,\n expandedRowClassName: function expandedRowClassName() {\n return '';\n },\n expandIconColumnIndex: 0,\n defaultExpandAllRows: false,\n defaultExpandedRowKeys: [],\n childrenColumnName: 'children',\n indentSize: 15\n }),\n inject: {\n store: { from: 'table-store', 'default': function _default() {\n return {};\n } }\n },\n data: function data() {\n var data = this.data,\n childrenColumnName = this.childrenColumnName,\n defaultExpandAllRows = this.defaultExpandAllRows,\n expandedRowKeys = this.expandedRowKeys,\n defaultExpandedRowKeys = this.defaultExpandedRowKeys,\n getRowKey = this.getRowKey;\n\n\n var finalExpandedRowKeys = [];\n var rows = [].concat(_toConsumableArray(data));\n\n if (defaultExpandAllRows) {\n for (var i = 0; i < rows.length; i += 1) {\n var row = rows[i];\n finalExpandedRowKeys.push(getRowKey(row, i));\n rows = rows.concat(row[childrenColumnName] || []);\n }\n } else {\n finalExpandedRowKeys = expandedRowKeys || defaultExpandedRowKeys;\n }\n\n // this.columnManager = props.columnManager\n // this.store = props.store\n\n this.store.expandedRowsHeight = {};\n this.store.expandedRowKeys = finalExpandedRowKeys;\n return {};\n },\n mounted: function mounted() {\n this.handleUpdated();\n },\n updated: function updated() {\n this.handleUpdated();\n },\n\n watch: {\n expandedRowKeys: function expandedRowKeys(val) {\n var _this = this;\n\n this.$nextTick(function () {\n _this.store.expandedRowKeys = val;\n });\n }\n },\n methods: {\n handleUpdated: function handleUpdated() {\n // We should record latest expanded rows to avoid multiple rows remove cause `onExpandedRowsChange` trigger many times\n this.latestExpandedRows = null;\n },\n handleExpandChange: function handleExpandChange(expanded, record, event, rowKey) {\n var destroy = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n var expandedRowKeys = this.store.expandedRowKeys;\n\n\n if (expanded) {\n // row was expaned\n expandedRowKeys = [].concat(_toConsumableArray(expandedRowKeys), [rowKey]);\n } else {\n // row was collapse\n var expandedRowIndex = expandedRowKeys.indexOf(rowKey);\n if (expandedRowIndex !== -1) {\n expandedRowKeys = remove(expandedRowKeys, rowKey);\n }\n }\n\n if (!this.expandedRowKeys) {\n this.store.expandedRowKeys = expandedRowKeys;\n }\n // De-dup of repeat call\n if (!this.latestExpandedRows || !shallowEqual(this.latestExpandedRows, expandedRowKeys)) {\n this.latestExpandedRows = expandedRowKeys;\n this.__emit('expandedRowsChange', expandedRowKeys);\n this.__emit('update:expandedRowKeys', expandedRowKeys);\n }\n\n if (!destroy) {\n this.__emit('expand', expanded, record);\n }\n },\n renderExpandIndentCell: function renderExpandIndentCell(rows, fixed) {\n var prefixCls = this.prefixCls,\n expandIconAsCell = this.expandIconAsCell;\n\n if (!expandIconAsCell || fixed === 'right' || !rows.length) {\n return;\n }\n\n var iconColumn = {\n key: 'rc-table-expand-icon-cell',\n className: prefixCls + '-expand-icon-th',\n title: '',\n rowSpan: rows.length\n };\n\n rows[0].unshift(_extends({}, iconColumn, { column: iconColumn }));\n },\n renderExpandedRow: function renderExpandedRow(record, index, expandedRowRender, className, ancestorKeys, indent, fixed) {\n var _this2 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n expandIconAsCell = this.expandIconAsCell,\n indentSize = this.indentSize;\n\n var parentKey = ancestorKeys[ancestorKeys.length - 1];\n var rowKey = parentKey + '-extra-row';\n var components = {\n body: {\n row: 'tr',\n cell: 'td'\n }\n };\n var colCount = void 0;\n if (fixed === 'left') {\n colCount = this.columnManager.leftLeafColumns().length;\n } else if (fixed === 'right') {\n colCount = this.columnManager.rightLeafColumns().length;\n } else {\n colCount = this.columnManager.leafColumns().length;\n }\n var columns = [{\n key: 'extra-row',\n customRender: function customRender() {\n var expandedRowKeys = _this2.store.expandedRowKeys;\n\n var expanded = expandedRowKeys.includes(parentKey);\n return {\n attrs: {\n colSpan: colCount\n },\n children: fixed !== 'right' ? expandedRowRender(record, index, indent, expanded) : ' '\n };\n }\n }];\n if (expandIconAsCell && fixed !== 'right') {\n columns.unshift({\n key: 'expand-icon-placeholder',\n customRender: function customRender() {\n return null;\n }\n });\n }\n\n return h(TableRow, {\n key: rowKey,\n attrs: { columns: columns,\n\n rowKey: rowKey,\n ancestorKeys: ancestorKeys,\n prefixCls: prefixCls + '-expanded-row',\n indentSize: indentSize,\n indent: indent,\n fixed: fixed,\n components: components,\n expandedRow: true,\n hasExpandIcon: function hasExpandIcon() {}\n },\n 'class': className });\n },\n renderRows: function renderRows(_renderRows, rows, record, index, indent, fixed, parentKey, ancestorKeys) {\n var expandedRowClassName = this.expandedRowClassName,\n expandedRowRender = this.expandedRowRender,\n childrenColumnName = this.childrenColumnName;\n\n var childrenData = record[childrenColumnName];\n var nextAncestorKeys = [].concat(_toConsumableArray(ancestorKeys), [parentKey]);\n var nextIndent = indent + 1;\n\n if (expandedRowRender) {\n rows.push(this.renderExpandedRow(record, index, expandedRowRender, expandedRowClassName(record, index, indent), nextAncestorKeys, nextIndent, fixed));\n }\n\n if (childrenData) {\n rows.push.apply(rows, _toConsumableArray(_renderRows(childrenData, nextIndent, nextAncestorKeys)));\n }\n }\n },\n\n render: function render() {\n var data = this.data,\n childrenColumnName = this.childrenColumnName,\n $scopedSlots = this.$scopedSlots;\n\n var props = getOptionProps(this);\n var needIndentSpaced = data.some(function (record) {\n return record[childrenColumnName];\n });\n\n return $scopedSlots['default'] && $scopedSlots['default']({\n props: props,\n on: getListeners(this),\n needIndentSpaced: needIndentSpaced,\n renderRows: this.renderRows,\n handleExpandChange: this.handleExpandChange,\n renderExpandIndentCell: this.renderExpandIndentCell\n });\n }\n};\n\nexport default ExpandableTable;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\n/* eslint-disable camelcase */\nimport shallowequal from 'shallowequal';\nimport merge from 'lodash/merge';\nimport classes from 'component-classes';\nimport classNames from 'classnames';\nimport PropTypes from '../../_util/vue-types';\nimport { debounce } from './utils';\nimport warning from '../../_util/warning';\nimport addEventListener from '../../vc-util/Dom/addEventListener';\nimport ColumnManager from './ColumnManager';\nimport HeadTable from './HeadTable';\nimport BodyTable from './BodyTable';\nimport ExpandableTable from './ExpandableTable';\nimport { initDefaultProps, getOptionProps, getListeners } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport Vue from 'vue';\n\nexport default {\n name: 'Table',\n mixins: [BaseMixin],\n provide: function provide() {\n return { 'table-store': this.store, table: this };\n },\n\n props: initDefaultProps({\n data: PropTypes.array,\n useFixedHeader: PropTypes.bool,\n columns: PropTypes.array,\n prefixCls: PropTypes.string,\n bodyStyle: PropTypes.object,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n customRow: PropTypes.func,\n customHeaderRow: PropTypes.func,\n // onRowClick: PropTypes.func,\n // onRowDoubleClick: PropTypes.func,\n // onRowContextMenu: PropTypes.func,\n // onRowMouseEnter: PropTypes.func,\n // onRowMouseLeave: PropTypes.func,\n showHeader: PropTypes.bool,\n title: PropTypes.func,\n id: PropTypes.string,\n footer: PropTypes.func,\n emptyText: PropTypes.any,\n scroll: PropTypes.object,\n rowRef: PropTypes.func,\n getBodyWrapper: PropTypes.func,\n components: PropTypes.shape({\n table: PropTypes.any,\n header: PropTypes.shape({\n wrapper: PropTypes.any,\n row: PropTypes.any,\n cell: PropTypes.any\n }),\n body: PropTypes.shape({\n wrapper: PropTypes.any,\n row: PropTypes.any,\n cell: PropTypes.any\n })\n }),\n expandIconAsCell: PropTypes.bool,\n expandedRowKeys: PropTypes.array,\n expandedRowClassName: PropTypes.func,\n defaultExpandAllRows: PropTypes.bool,\n defaultExpandedRowKeys: PropTypes.array,\n expandIconColumnIndex: PropTypes.number,\n expandedRowRender: PropTypes.func,\n childrenColumnName: PropTypes.string,\n indentSize: PropTypes.number,\n expandRowByClick: PropTypes.bool,\n expandIcon: PropTypes.func,\n tableLayout: PropTypes.string,\n transformCellText: PropTypes.func\n }, {\n data: [],\n useFixedHeader: false,\n rowKey: 'key',\n rowClassName: function rowClassName() {\n return '';\n },\n prefixCls: 'rc-table',\n bodyStyle: {},\n showHeader: true,\n scroll: {},\n rowRef: function rowRef() {\n return null;\n },\n emptyText: function emptyText() {\n return 'No Data';\n },\n customHeaderRow: function customHeaderRow() {}\n }),\n data: function data() {\n this.preData = [].concat(_toConsumableArray(this.data));\n this.store = (this.$root.constructor.observable || Vue.observable)({\n currentHoverKey: null,\n fixedColumnsHeadRowsHeight: [],\n fixedColumnsBodyRowsHeight: {},\n expandedRowsHeight: {},\n expandedRowKeys: []\n });\n return {\n columnManager: new ColumnManager(this.columns),\n sComponents: merge({\n table: 'table',\n header: {\n wrapper: 'thead',\n row: 'tr',\n cell: 'th'\n },\n body: {\n wrapper: 'tbody',\n row: 'tr',\n cell: 'td'\n }\n }, this.components)\n };\n },\n\n watch: {\n components: function components() {\n this._components = merge({\n table: 'table',\n header: {\n wrapper: 'thead',\n row: 'tr',\n cell: 'th'\n },\n body: {\n wrapper: 'tbody',\n row: 'tr',\n cell: 'td'\n }\n }, this.components);\n },\n columns: function columns(val) {\n if (val) {\n this.columnManager.reset(val);\n }\n },\n data: function data(val) {\n var _this = this;\n\n if (val.length === 0 && this.hasScrollX()) {\n this.$nextTick(function () {\n _this.resetScrollX();\n });\n }\n }\n },\n\n // static childContextTypes = {\n // table: PropTypes.any,\n // components: PropTypes.any,\n // },\n\n created: function created() {\n var _this2 = this;\n\n ['rowClick', 'rowDoubleclick', 'rowContextmenu', 'rowMouseenter', 'rowMouseleave'].forEach(function (name) {\n warning(getListeners(_this2)[name] === undefined, name + ' is deprecated, please use customRow instead.');\n });\n\n warning(this.getBodyWrapper === undefined, 'getBodyWrapper is deprecated, please use custom components instead.');\n\n this.setScrollPosition('left');\n\n this.debouncedWindowResize = debounce(this.handleWindowResize, 150);\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.$nextTick(function () {\n if (_this3.columnManager.isAnyColumnsFixed()) {\n _this3.handleWindowResize();\n _this3.resizeEvent = addEventListener(window, 'resize', _this3.debouncedWindowResize);\n }\n // https://github.com/ant-design/ant-design/issues/11635\n if (_this3.ref_headTable) {\n _this3.ref_headTable.scrollLeft = 0;\n }\n if (_this3.ref_bodyTable) {\n _this3.ref_bodyTable.scrollLeft = 0;\n }\n });\n },\n updated: function updated() {\n var _this4 = this;\n\n this.$nextTick(function () {\n if (_this4.columnManager.isAnyColumnsFixed()) {\n _this4.handleWindowResize();\n if (!_this4.resizeEvent) {\n _this4.resizeEvent = addEventListener(window, 'resize', _this4.debouncedWindowResize);\n }\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (this.resizeEvent) {\n this.resizeEvent.remove();\n }\n if (this.debouncedWindowResize) {\n this.debouncedWindowResize.cancel();\n }\n },\n\n methods: {\n getRowKey: function getRowKey(record, index) {\n var rowKey = this.rowKey;\n var key = typeof rowKey === 'function' ? rowKey(record, index) : record[rowKey];\n warning(key !== undefined, 'Each record in table should have a unique `key` prop,' + 'or set `rowKey` to an unique primary key.');\n return key === undefined ? index : key;\n },\n setScrollPosition: function setScrollPosition(position) {\n this.scrollPosition = position;\n if (this.tableNode) {\n var prefixCls = this.prefixCls;\n\n if (position === 'both') {\n classes(this.tableNode).remove(new RegExp('^' + prefixCls + '-scroll-position-.+$')).add(prefixCls + '-scroll-position-left').add(prefixCls + '-scroll-position-right');\n } else {\n classes(this.tableNode).remove(new RegExp('^' + prefixCls + '-scroll-position-.+$')).add(prefixCls + '-scroll-position-' + position);\n }\n }\n },\n setScrollPositionClassName: function setScrollPositionClassName() {\n var node = this.ref_bodyTable;\n var scrollToLeft = node.scrollLeft === 0;\n var scrollToRight = node.scrollLeft + 1 >= node.children[0].getBoundingClientRect().width - node.getBoundingClientRect().width;\n if (scrollToLeft && scrollToRight) {\n this.setScrollPosition('both');\n } else if (scrollToLeft) {\n this.setScrollPosition('left');\n } else if (scrollToRight) {\n this.setScrollPosition('right');\n } else if (this.scrollPosition !== 'middle') {\n this.setScrollPosition('middle');\n }\n },\n isTableLayoutFixed: function isTableLayoutFixed() {\n var _$props = this.$props,\n tableLayout = _$props.tableLayout,\n _$props$columns = _$props.columns,\n columns = _$props$columns === undefined ? [] : _$props$columns,\n useFixedHeader = _$props.useFixedHeader,\n _$props$scroll = _$props.scroll,\n scroll = _$props$scroll === undefined ? {} : _$props$scroll;\n\n if (typeof tableLayout !== 'undefined') {\n return tableLayout === 'fixed';\n }\n // if one column is ellipsis, use fixed table layout to fix align issue\n if (columns.some(function (_ref) {\n var ellipsis = _ref.ellipsis;\n return !!ellipsis;\n })) {\n return true;\n }\n // if header fixed, use fixed table layout to fix align issue\n if (useFixedHeader || scroll.y) {\n return true;\n }\n // if scroll.x is number/px/% width value, we should fixed table layout\n // to avoid long word layout broken issue\n if (scroll.x && scroll.x !== true && scroll.x !== 'max-content') {\n return true;\n }\n return false;\n },\n handleWindowResize: function handleWindowResize() {\n this.syncFixedTableRowHeight();\n this.setScrollPositionClassName();\n },\n syncFixedTableRowHeight: function syncFixedTableRowHeight() {\n var tableRect = this.tableNode.getBoundingClientRect();\n // If tableNode's height less than 0, suppose it is hidden and don't recalculate rowHeight.\n // see: https://github.com/ant-design/ant-design/issues/4836\n if (tableRect.height !== undefined && tableRect.height <= 0) {\n return;\n }\n var prefixCls = this.prefixCls;\n\n var headRows = this.ref_headTable ? this.ref_headTable.querySelectorAll('thead') : this.ref_bodyTable.querySelectorAll('thead');\n var bodyRows = this.ref_bodyTable.querySelectorAll('.' + prefixCls + '-row') || [];\n var fixedColumnsHeadRowsHeight = [].map.call(headRows, function (row) {\n return row.getBoundingClientRect().height ? row.getBoundingClientRect().height - 0.5 : 'auto';\n });\n var state = this.store;\n var fixedColumnsBodyRowsHeight = [].reduce.call(bodyRows, function (acc, row) {\n var rowKey = row.getAttribute('data-row-key');\n var height = row.getBoundingClientRect().height || state.fixedColumnsBodyRowsHeight[rowKey] || 'auto';\n acc[rowKey] = height;\n return acc;\n }, {});\n if (shallowequal(state.fixedColumnsHeadRowsHeight, fixedColumnsHeadRowsHeight) && shallowequal(state.fixedColumnsBodyRowsHeight, fixedColumnsBodyRowsHeight)) {\n return;\n }\n this.store.fixedColumnsHeadRowsHeight = fixedColumnsHeadRowsHeight;\n this.store.fixedColumnsBodyRowsHeight = fixedColumnsBodyRowsHeight;\n },\n resetScrollX: function resetScrollX() {\n if (this.ref_headTable) {\n this.ref_headTable.scrollLeft = 0;\n }\n if (this.ref_bodyTable) {\n this.ref_bodyTable.scrollLeft = 0;\n }\n },\n hasScrollX: function hasScrollX() {\n var _scroll = this.scroll,\n scroll = _scroll === undefined ? {} : _scroll;\n\n return 'x' in scroll;\n },\n handleBodyScrollLeft: function handleBodyScrollLeft(e) {\n // Fix https://github.com/ant-design/ant-design/issues/7635\n if (e.currentTarget !== e.target) {\n return;\n }\n var target = e.target;\n var _scroll2 = this.scroll,\n scroll = _scroll2 === undefined ? {} : _scroll2;\n var ref_headTable = this.ref_headTable,\n ref_bodyTable = this.ref_bodyTable;\n\n if (target.scrollLeft !== this.lastScrollLeft && scroll.x) {\n if (target === ref_bodyTable && ref_headTable) {\n ref_headTable.scrollLeft = target.scrollLeft;\n } else if (target === ref_headTable && ref_bodyTable) {\n ref_bodyTable.scrollLeft = target.scrollLeft;\n }\n this.setScrollPositionClassName();\n }\n // Remember last scrollLeft for scroll direction detecting.\n this.lastScrollLeft = target.scrollLeft;\n },\n handleBodyScrollTop: function handleBodyScrollTop(e) {\n var target = e.target;\n // Fix https://github.com/ant-design/ant-design/issues/9033\n if (e.currentTarget !== target) {\n return;\n }\n var _scroll3 = this.scroll,\n scroll = _scroll3 === undefined ? {} : _scroll3;\n var ref_headTable = this.ref_headTable,\n ref_bodyTable = this.ref_bodyTable,\n ref_fixedColumnsBodyLeft = this.ref_fixedColumnsBodyLeft,\n ref_fixedColumnsBodyRight = this.ref_fixedColumnsBodyRight;\n\n if (target.scrollTop !== this.lastScrollTop && scroll.y && target !== ref_headTable) {\n var scrollTop = target.scrollTop;\n if (ref_fixedColumnsBodyLeft && target !== ref_fixedColumnsBodyLeft) {\n ref_fixedColumnsBodyLeft.scrollTop = scrollTop;\n }\n if (ref_fixedColumnsBodyRight && target !== ref_fixedColumnsBodyRight) {\n ref_fixedColumnsBodyRight.scrollTop = scrollTop;\n }\n if (ref_bodyTable && target !== ref_bodyTable) {\n ref_bodyTable.scrollTop = scrollTop;\n }\n }\n // Remember last scrollTop for scroll direction detecting.\n this.lastScrollTop = target.scrollTop;\n },\n handleBodyScroll: function handleBodyScroll(e) {\n this.handleBodyScrollLeft(e);\n this.handleBodyScrollTop(e);\n },\n handleWheel: function handleWheel(event) {\n var _$props$scroll2 = this.$props.scroll,\n scroll = _$props$scroll2 === undefined ? {} : _$props$scroll2;\n\n if (window.navigator.userAgent.match(/Trident\\/7\\./) && scroll.y) {\n event.preventDefault();\n var wd = event.deltaY;\n var target = event.target;\n var bodyTable = this.ref_bodyTable,\n fixedColumnsBodyLeft = this.ref_fixedColumnsBodyLeft,\n fixedColumnsBodyRight = this.ref_fixedColumnsBodyRight;\n\n var scrollTop = 0;\n\n if (this.lastScrollTop) {\n scrollTop = this.lastScrollTop + wd;\n } else {\n scrollTop = wd;\n }\n\n if (fixedColumnsBodyLeft && target !== fixedColumnsBodyLeft) {\n fixedColumnsBodyLeft.scrollTop = scrollTop;\n }\n if (fixedColumnsBodyRight && target !== fixedColumnsBodyRight) {\n fixedColumnsBodyRight.scrollTop = scrollTop;\n }\n if (bodyTable && target !== bodyTable) {\n bodyTable.scrollTop = scrollTop;\n }\n }\n },\n\n // saveChildrenRef(name, node) {\n // this[`ref_${name}`] = node;\n // },\n saveRef: function saveRef(name) {\n var _this5 = this;\n\n return function (node) {\n _this5['ref_' + name] = node;\n };\n },\n saveTableNodeRef: function saveTableNodeRef(node) {\n this.tableNode = node;\n },\n renderMainTable: function renderMainTable() {\n var h = this.$createElement;\n var scroll = this.scroll,\n prefixCls = this.prefixCls;\n\n var isAnyColumnsFixed = this.columnManager.isAnyColumnsFixed();\n var scrollable = isAnyColumnsFixed || scroll.x || scroll.y;\n\n var table = [this.renderTable({\n columns: this.columnManager.groupedColumns(),\n isAnyColumnsFixed: isAnyColumnsFixed\n }), this.renderEmptyText(), this.renderFooter()];\n\n return scrollable ? h(\n 'div',\n { 'class': prefixCls + '-scroll' },\n [table]\n ) : table;\n },\n renderLeftFixedTable: function renderLeftFixedTable() {\n var h = this.$createElement;\n var prefixCls = this.prefixCls;\n\n\n return h(\n 'div',\n { 'class': prefixCls + '-fixed-left' },\n [this.renderTable({\n columns: this.columnManager.leftColumns(),\n fixed: 'left'\n })]\n );\n },\n renderRightFixedTable: function renderRightFixedTable() {\n var h = this.$createElement;\n var prefixCls = this.prefixCls;\n\n\n return h(\n 'div',\n { 'class': prefixCls + '-fixed-right' },\n [this.renderTable({\n columns: this.columnManager.rightColumns(),\n fixed: 'right'\n })]\n );\n },\n renderTable: function renderTable(options) {\n var h = this.$createElement;\n var columns = options.columns,\n fixed = options.fixed,\n isAnyColumnsFixed = options.isAnyColumnsFixed;\n var prefixCls = this.prefixCls,\n _scroll4 = this.scroll,\n scroll = _scroll4 === undefined ? {} : _scroll4;\n\n var tableClassName = scroll.x || fixed ? prefixCls + '-fixed' : '';\n\n var headTable = h(HeadTable, {\n key: 'head',\n attrs: { columns: columns,\n fixed: fixed,\n tableClassName: tableClassName,\n handleBodyScrollLeft: this.handleBodyScrollLeft,\n expander: this.expander\n }\n });\n\n var bodyTable = h(BodyTable, {\n key: 'body',\n attrs: { columns: columns,\n fixed: fixed,\n tableClassName: tableClassName,\n getRowKey: this.getRowKey,\n handleWheel: this.handleWheel,\n handleBodyScroll: this.handleBodyScroll,\n expander: this.expander,\n isAnyColumnsFixed: isAnyColumnsFixed\n }\n });\n\n return [headTable, bodyTable];\n },\n renderTitle: function renderTitle() {\n var h = this.$createElement;\n var title = this.title,\n prefixCls = this.prefixCls,\n data = this.data;\n\n return title ? h(\n 'div',\n { 'class': prefixCls + '-title', key: 'title' },\n [title(data)]\n ) : null;\n },\n renderFooter: function renderFooter() {\n var h = this.$createElement;\n var footer = this.footer,\n prefixCls = this.prefixCls,\n data = this.data;\n\n return footer ? h(\n 'div',\n { 'class': prefixCls + '-footer', key: 'footer' },\n [footer(data)]\n ) : null;\n },\n renderEmptyText: function renderEmptyText() {\n var h = this.$createElement;\n var emptyText = this.emptyText,\n prefixCls = this.prefixCls,\n data = this.data;\n\n if (data.length) {\n return null;\n }\n var emptyClassName = prefixCls + '-placeholder';\n return h(\n 'div',\n { 'class': emptyClassName, key: 'emptyText' },\n [typeof emptyText === 'function' ? emptyText() : emptyText]\n );\n }\n },\n\n render: function render() {\n var _classNames,\n _this6 = this;\n\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var columnManager = this.columnManager,\n getRowKey = this.getRowKey;\n\n var prefixCls = props.prefixCls;\n\n var tableClassName = classNames(props.prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-fixed-header', props.useFixedHeader || props.scroll && props.scroll.y), _defineProperty(_classNames, prefixCls + '-scroll-position-left ' + prefixCls + '-scroll-position-right', this.scrollPosition === 'both'), _defineProperty(_classNames, prefixCls + '-scroll-position-' + this.scrollPosition, this.scrollPosition !== 'both'), _defineProperty(_classNames, prefixCls + '-layout-fixed', this.isTableLayoutFixed()), _classNames));\n\n var hasLeftFixed = columnManager.isAnyColumnsLeftFixed();\n var hasRightFixed = columnManager.isAnyColumnsRightFixed();\n\n var expandableTableProps = {\n props: _extends({}, props, {\n columnManager: columnManager,\n getRowKey: getRowKey\n }),\n on: getListeners(this),\n scopedSlots: {\n 'default': function _default(expander) {\n _this6.expander = expander;\n return h(\n 'div',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: _this6.saveTableNodeRef\n }]\n }, {\n 'class': tableClassName\n // style={props.style}\n // id={props.id}\n }]),\n [_this6.renderTitle(), h(\n 'div',\n { 'class': prefixCls + '-content' },\n [_this6.renderMainTable(), hasLeftFixed && _this6.renderLeftFixedTable(), hasRightFixed && _this6.renderRightFixedTable()]\n )]\n );\n }\n }\n };\n return h(ExpandableTable, expandableTableProps);\n }\n};","import _extends from 'babel-runtime/helpers/extends';\n// base rc-table 6.10.9\nimport T from './src/Table';\nimport Column from './src/Column';\nimport ColumnGroup from './src/ColumnGroup';\nimport { getOptionProps, getKey, getClass, getStyle, getEvents, getSlotOptions, camelize, getSlots, getListeners } from '../_util/props-util';\nimport { INTERNAL_COL_DEFINE } from './src/utils';\nvar Table = {\n name: 'Table',\n Column: Column,\n ColumnGroup: ColumnGroup,\n props: T.props,\n methods: {\n getTableNode: function getTableNode() {\n return this.$refs.table.tableNode;\n },\n getBodyTable: function getBodyTable() {\n return this.$refs.table.ref_bodyTable;\n },\n normalize: function normalize() {\n var _this = this;\n\n var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var columns = [];\n elements.forEach(function (element) {\n if (!element.tag) {\n return;\n }\n var key = getKey(element);\n var style = getStyle(element);\n var cls = getClass(element);\n var props = getOptionProps(element);\n var events = getEvents(element);\n var listeners = {};\n Object.keys(events).forEach(function (e) {\n var k = 'on-' + e;\n listeners[camelize(k)] = events[e];\n });\n\n var _getSlots = getSlots(element),\n children = _getSlots['default'],\n title = _getSlots.title;\n\n var column = _extends({ title: title }, props, { style: style, 'class': cls }, listeners);\n if (key) {\n column.key = key;\n }\n if (getSlotOptions(element).isTableColumnGroup) {\n column.children = _this.normalize(typeof children === 'function' ? children() : children);\n } else {\n var customRender = element.data && element.data.scopedSlots && element.data.scopedSlots['default'];\n column.customRender = column.customRender || customRender;\n }\n columns.push(column);\n });\n return columns;\n }\n },\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots,\n normalize = this.normalize;\n\n var props = getOptionProps(this);\n var columns = props.columns || normalize($slots['default']);\n var tProps = {\n props: _extends({}, props, {\n columns: columns\n }),\n on: getListeners(this),\n ref: 'table'\n };\n return h(T, tProps);\n }\n};\n\nexport default Table;\nexport { Column, ColumnGroup, INTERNAL_COL_DEFINE };","import PropTypes from '../../_util/vue-types';\n\nexport default {\n name: 'Column',\n props: {\n rowSpan: PropTypes.number,\n colSpan: PropTypes.number,\n title: PropTypes.any,\n dataIndex: PropTypes.string,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n ellipsis: PropTypes.bool,\n fixed: PropTypes.oneOf([true, 'left', 'right']),\n align: PropTypes.oneOf(['left', 'center', 'right']),\n customRender: PropTypes.func,\n className: PropTypes.string,\n // onCellClick: PropTypes.func,\n customCell: PropTypes.func,\n customHeaderCell: PropTypes.func\n }\n};","import PropTypes from '../../_util/vue-types';\n\nexport default {\n name: 'ColumnGroup',\n props: {\n title: PropTypes.any\n },\n isTableColumnGroup: true\n};","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","// base in 2.4.1\nimport Dropdown from './Dropdown';\nexport default Dropdown;","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport PropTypes from '../../_util/vue-types';\nimport Trigger from '../../vc-trigger';\nimport placements from './placements';\nimport { hasProp, getEvents, getOptionProps } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { cloneElement } from '../../_util/vnode';\n\nexport default {\n mixins: [BaseMixin],\n props: {\n minOverlayWidthMatchTrigger: PropTypes.bool,\n prefixCls: PropTypes.string.def('rc-dropdown'),\n transitionName: PropTypes.string,\n overlayClassName: PropTypes.string.def(''),\n openClassName: PropTypes.string,\n animation: PropTypes.any,\n align: PropTypes.object,\n overlayStyle: PropTypes.object.def(function () {\n return {};\n }),\n placement: PropTypes.string.def('bottomLeft'),\n overlay: PropTypes.any,\n trigger: PropTypes.array.def(['hover']),\n alignPoint: PropTypes.bool,\n showAction: PropTypes.array.def([]),\n hideAction: PropTypes.array.def([]),\n getPopupContainer: PropTypes.func,\n visible: PropTypes.bool,\n defaultVisible: PropTypes.bool.def(false),\n mouseEnterDelay: PropTypes.number.def(0.15),\n mouseLeaveDelay: PropTypes.number.def(0.1)\n },\n data: function data() {\n var sVisible = this.defaultVisible;\n if (hasProp(this, 'visible')) {\n sVisible = this.visible;\n }\n return {\n sVisible: sVisible\n };\n },\n\n watch: {\n visible: function visible(val) {\n if (val !== undefined) {\n this.setState({\n sVisible: val\n });\n }\n }\n },\n methods: {\n onClick: function onClick(e) {\n // do no call onVisibleChange, if you need click to hide, use onClick and control visible\n if (!hasProp(this, 'visible')) {\n this.setState({\n sVisible: false\n });\n }\n this.$emit('overlayClick', e);\n if (this.childOriginEvents.click) {\n this.childOriginEvents.click(e);\n }\n },\n onVisibleChange: function onVisibleChange(visible) {\n if (!hasProp(this, 'visible')) {\n this.setState({\n sVisible: visible\n });\n }\n this.__emit('visibleChange', visible);\n },\n getMinOverlayWidthMatchTrigger: function getMinOverlayWidthMatchTrigger() {\n var props = getOptionProps(this);\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n },\n getOverlayElement: function getOverlayElement() {\n var overlay = this.overlay || this.$slots.overlay || this.$scopedSlots.overlay;\n var overlayElement = void 0;\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n return overlayElement;\n },\n getMenuElement: function getMenuElement() {\n var _this = this;\n\n var onClick = this.onClick,\n prefixCls = this.prefixCls,\n $slots = this.$slots;\n\n this.childOriginEvents = getEvents($slots.overlay[0]);\n var overlayElement = this.getOverlayElement();\n var extraOverlayProps = {\n props: {\n prefixCls: prefixCls + '-menu',\n getPopupContainer: function getPopupContainer() {\n return _this.getPopupDomNode();\n }\n },\n on: {\n click: onClick\n }\n };\n if (typeof overlayElement.type === 'string') {\n delete extraOverlayProps.props.prefixCls;\n }\n return cloneElement($slots.overlay[0], extraOverlayProps);\n },\n getMenuElementOrLambda: function getMenuElementOrLambda() {\n var overlay = this.overlay || this.$slots.overlay || this.$scopedSlots.overlay;\n if (typeof overlay === 'function') {\n return this.getMenuElement;\n }\n return this.getMenuElement();\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.trigger.getPopupDomNode();\n },\n getOpenClassName: function getOpenClassName() {\n var _$props = this.$props,\n openClassName = _$props.openClassName,\n prefixCls = _$props.prefixCls;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n return prefixCls + '-open';\n },\n afterVisibleChange: function afterVisibleChange(visible) {\n if (visible && this.getMinOverlayWidthMatchTrigger()) {\n var overlayNode = this.getPopupDomNode();\n var rootNode = this.$el;\n if (rootNode && overlayNode && rootNode.offsetWidth > overlayNode.offsetWidth) {\n overlayNode.style.minWidth = rootNode.offsetWidth + 'px';\n if (this.$refs.trigger && this.$refs.trigger._component && this.$refs.trigger._component.$refs && this.$refs.trigger._component.$refs.alignInstance) {\n this.$refs.trigger._component.$refs.alignInstance.forceAlign();\n }\n }\n }\n },\n renderChildren: function renderChildren() {\n var children = this.$slots['default'] && this.$slots['default'][0];\n var sVisible = this.sVisible;\n\n return sVisible && children ? cloneElement(children, { 'class': this.getOpenClassName() }) : children;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n transitionName = _$props2.transitionName,\n animation = _$props2.animation,\n align = _$props2.align,\n placement = _$props2.placement,\n getPopupContainer = _$props2.getPopupContainer,\n showAction = _$props2.showAction,\n hideAction = _$props2.hideAction,\n overlayClassName = _$props2.overlayClassName,\n overlayStyle = _$props2.overlayStyle,\n trigger = _$props2.trigger,\n otherProps = _objectWithoutProperties(_$props2, ['prefixCls', 'transitionName', 'animation', 'align', 'placement', 'getPopupContainer', 'showAction', 'hideAction', 'overlayClassName', 'overlayStyle', 'trigger']);\n\n var triggerHideAction = hideAction;\n if (!triggerHideAction && trigger.indexOf('contextmenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n var triggerProps = {\n props: _extends({}, otherProps, {\n prefixCls: prefixCls,\n popupClassName: overlayClassName,\n popupStyle: overlayStyle,\n builtinPlacements: placements,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: this.sVisible,\n afterPopupVisibleChange: this.afterVisibleChange,\n getPopupContainer: getPopupContainer\n }),\n on: {\n popupVisibleChange: this.onVisibleChange\n },\n ref: 'trigger'\n };\n return h(\n Trigger,\n triggerProps,\n [this.renderChildren(), h(\n 'template',\n { slot: 'popup' },\n [this.$slots.overlay && this.getMenuElement()]\n )]\n );\n }\n};","import PropTypes from '../_util/vue-types';\nexport default (function () {\n return {\n trigger: PropTypes.array.def(['hover']),\n overlay: PropTypes.any,\n visible: PropTypes.bool,\n disabled: PropTypes.bool,\n align: PropTypes.object,\n getPopupContainer: PropTypes.func,\n prefixCls: PropTypes.string,\n transitionName: PropTypes.string,\n placement: PropTypes.oneOf(['topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight']),\n overlayClassName: PropTypes.string,\n overlayStyle: PropTypes.object,\n forceRender: PropTypes.bool,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n openClassName: PropTypes.string,\n minOverlayWidthMatchTrigger: PropTypes.bool\n };\n});","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport Button from '../button';\nimport buttonTypes from '../button/buttonTypes';\nimport { ButtonGroupProps } from '../button/button-group';\nimport Dropdown from './dropdown';\nimport PropTypes from '../_util/vue-types';\nimport { hasProp, getComponentFromProp } from '../_util/props-util';\nimport getDropdownProps from './getDropdownProps';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Icon from '../icon';\n\nvar ButtonTypesProps = buttonTypes();\nvar DropdownProps = getDropdownProps();\nvar ButtonGroup = Button.Group;\nvar DropdownButtonProps = _extends({}, ButtonGroupProps, DropdownProps, {\n type: PropTypes.oneOf(['primary', 'ghost', 'dashed', 'danger', 'default']).def('default'),\n size: PropTypes.oneOf(['small', 'large', 'default']).def('default'),\n htmlType: ButtonTypesProps.htmlType,\n href: PropTypes.string,\n disabled: PropTypes.bool,\n prefixCls: PropTypes.string,\n placement: DropdownProps.placement.def('bottomRight'),\n icon: PropTypes.any,\n title: PropTypes.string\n});\nexport { DropdownButtonProps };\nexport default {\n name: 'ADropdownButton',\n model: {\n prop: 'visible',\n event: 'visibleChange'\n },\n props: DropdownButtonProps,\n provide: function provide() {\n return {\n savePopupRef: this.savePopupRef\n };\n },\n\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n savePopupRef: function savePopupRef(ref) {\n this.popupRef = ref;\n },\n onClick: function onClick(e) {\n this.$emit('click', e);\n },\n onVisibleChange: function onVisibleChange(val) {\n this.$emit('visibleChange', val);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var _$props = this.$props,\n type = _$props.type,\n disabled = _$props.disabled,\n htmlType = _$props.htmlType,\n customizePrefixCls = _$props.prefixCls,\n trigger = _$props.trigger,\n align = _$props.align,\n visible = _$props.visible,\n placement = _$props.placement,\n getPopupContainer = _$props.getPopupContainer,\n href = _$props.href,\n title = _$props.title,\n restProps = _objectWithoutProperties(_$props, ['type', 'disabled', 'htmlType', 'prefixCls', 'trigger', 'align', 'visible', 'placement', 'getPopupContainer', 'href', 'title']);\n\n var icon = getComponentFromProp(this, 'icon') || h(Icon, {\n attrs: { type: 'ellipsis' }\n });\n var getContextPopupContainer = this.configProvider.getPopupContainer;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('dropdown-button', customizePrefixCls);\n var dropdownProps = {\n props: {\n align: align,\n disabled: disabled,\n trigger: disabled ? [] : trigger,\n placement: placement,\n getPopupContainer: getPopupContainer || getContextPopupContainer\n },\n on: {\n visibleChange: this.onVisibleChange\n }\n };\n if (hasProp(this, 'visible')) {\n dropdownProps.props.visible = visible;\n }\n\n var buttonGroupProps = {\n props: _extends({}, restProps),\n 'class': prefixCls\n };\n\n return h(\n ButtonGroup,\n buttonGroupProps,\n [h(\n Button,\n {\n attrs: {\n type: type,\n disabled: disabled,\n\n htmlType: htmlType,\n href: href,\n title: title\n },\n on: {\n 'click': this.onClick\n }\n },\n [this.$slots['default']]\n ), h(\n Dropdown,\n dropdownProps,\n [h(\n 'template',\n { slot: 'overlay' },\n [getComponentFromProp(this, 'overlay')]\n ), h(\n Button,\n {\n attrs: { type: type }\n },\n [icon]\n )]\n )]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport RcDropdown from '../vc-dropdown/src/index';\nimport DropdownButton from './dropdown-button';\nimport PropTypes from '../_util/vue-types';\nimport { cloneElement } from '../_util/vnode';\nimport { getOptionProps, getPropsData, getComponentFromProp, getListeners } from '../_util/props-util';\nimport getDropdownProps from './getDropdownProps';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Icon from '../icon';\n\nvar DropdownProps = getDropdownProps();\nvar Dropdown = {\n name: 'ADropdown',\n props: _extends({}, DropdownProps, {\n prefixCls: PropTypes.string,\n mouseEnterDelay: PropTypes.number.def(0.15),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n placement: DropdownProps.placement.def('bottomLeft')\n }),\n model: {\n prop: 'visible',\n event: 'visibleChange'\n },\n provide: function provide() {\n return {\n savePopupRef: this.savePopupRef\n };\n },\n\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n savePopupRef: function savePopupRef(ref) {\n this.popupRef = ref;\n },\n getTransitionName: function getTransitionName() {\n var _$props = this.$props,\n _$props$placement = _$props.placement,\n placement = _$props$placement === undefined ? '' : _$props$placement,\n transitionName = _$props.transitionName;\n\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.indexOf('top') >= 0) {\n return 'slide-down';\n }\n return 'slide-up';\n },\n renderOverlay: function renderOverlay(prefixCls) {\n var h = this.$createElement;\n\n var overlay = getComponentFromProp(this, 'overlay');\n var overlayNode = Array.isArray(overlay) ? overlay[0] : overlay;\n // menu cannot be selectable in dropdown defaultly\n // menu should be focusable in dropdown defaultly\n var overlayProps = overlayNode && getPropsData(overlayNode);\n\n var _ref = overlayProps || {},\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === undefined ? false : _ref$selectable,\n _ref$focusable = _ref.focusable,\n focusable = _ref$focusable === undefined ? true : _ref$focusable;\n\n var expandIcon = h(\n 'span',\n { 'class': prefixCls + '-menu-submenu-arrow' },\n [h(Icon, {\n attrs: { type: 'right' },\n 'class': prefixCls + '-menu-submenu-arrow-icon' })]\n );\n\n var fixedModeOverlay = overlayNode && overlayNode.componentOptions ? cloneElement(overlayNode, {\n props: {\n mode: 'vertical',\n selectable: selectable,\n focusable: focusable,\n expandIcon: expandIcon\n }\n }) : overlay;\n return fixedModeOverlay;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots;\n\n var props = getOptionProps(this);\n var customizePrefixCls = props.prefixCls,\n trigger = props.trigger,\n disabled = props.disabled,\n getPopupContainer = props.getPopupContainer;\n var getContextPopupContainer = this.configProvider.getPopupContainer;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n\n var dropdownTrigger = cloneElement($slots['default'], {\n 'class': prefixCls + '-trigger',\n props: {\n disabled: disabled\n }\n });\n var triggerActions = disabled ? [] : trigger;\n var alignPoint = void 0;\n if (triggerActions && triggerActions.indexOf('contextmenu') !== -1) {\n alignPoint = true;\n }\n var dropdownProps = {\n props: _extends({\n alignPoint: alignPoint\n }, props, {\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: this.getTransitionName(),\n trigger: triggerActions\n }),\n on: getListeners(this)\n };\n return h(\n RcDropdown,\n dropdownProps,\n [dropdownTrigger, h(\n 'template',\n { slot: 'overlay' },\n [this.renderOverlay(prefixCls)]\n )]\n );\n }\n};\n\nDropdown.Button = DropdownButton;\nexport default Dropdown;\nexport { DropdownProps };","import Dropdown from './dropdown';\nimport DropdownButton from './dropdown-button';\n\nexport { DropdownProps } from './dropdown';\nexport { DropdownButtonProps } from './dropdown-button';\nimport Base from '../base';\n\nDropdown.Button = DropdownButton;\n\n/* istanbul ignore next */\nDropdown.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Dropdown.name, Dropdown);\n Vue.component(DropdownButton.name, DropdownButton);\n};\n\nexport default Dropdown;","import Checkbox from './Checkbox';\n\nexport default Checkbox;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport { getOptionProps, hasProp, initDefaultProps, getAttrs, getListeners } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\n\nexport default {\n name: 'Checkbox',\n mixins: [BaseMixin],\n inheritAttrs: false,\n model: {\n prop: 'checked',\n event: 'change'\n },\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n name: PropTypes.string,\n id: PropTypes.string,\n type: PropTypes.string,\n defaultChecked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n checked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n disabled: PropTypes.bool,\n // onFocus: PropTypes.func,\n // onBlur: PropTypes.func,\n // onChange: PropTypes.func,\n // onClick: PropTypes.func,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n readOnly: PropTypes.bool,\n autoFocus: PropTypes.bool,\n value: PropTypes.any\n }, {\n prefixCls: 'rc-checkbox',\n type: 'checkbox',\n defaultChecked: false\n }),\n data: function data() {\n var checked = hasProp(this, 'checked') ? this.checked : this.defaultChecked;\n return {\n sChecked: checked\n };\n },\n\n watch: {\n checked: function checked(val) {\n this.sChecked = val;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus) {\n _this.$refs.input && _this.$refs.input.focus();\n }\n });\n },\n\n methods: {\n focus: function focus() {\n this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input.blur();\n },\n handleChange: function handleChange(e) {\n var props = getOptionProps(this);\n if (props.disabled) {\n return;\n }\n if (!('checked' in props)) {\n this.sChecked = e.target.checked;\n }\n this.$forceUpdate(); // change前,维持现有状态\n e.shiftKey = this.eventShiftKey;\n this.__emit('change', {\n target: _extends({}, props, {\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n\n nativeEvent: e\n });\n this.eventShiftKey = false;\n // fix https://github.com/vueComponent/ant-design-vue/issues/3047\n if ('checked' in props) {\n this.$refs.input.checked = props.checked;\n }\n },\n onClick: function onClick(e) {\n this.__emit('click', e);\n // onChange没能获取到shiftKey,使用onClick hack\n this.eventShiftKey = e.shiftKey;\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n prefixCls = _getOptionProps.prefixCls,\n name = _getOptionProps.name,\n id = _getOptionProps.id,\n type = _getOptionProps.type,\n disabled = _getOptionProps.disabled,\n readOnly = _getOptionProps.readOnly,\n tabIndex = _getOptionProps.tabIndex,\n autoFocus = _getOptionProps.autoFocus,\n value = _getOptionProps.value,\n others = _objectWithoutProperties(_getOptionProps, ['prefixCls', 'name', 'id', 'type', 'disabled', 'readOnly', 'tabIndex', 'autoFocus', 'value']);\n\n var attrs = getAttrs(this);\n var globalProps = Object.keys(_extends({}, others, attrs)).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {\n prev[key] = others[key];\n }\n return prev;\n }, {});\n\n var sChecked = this.sChecked;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-checked', sChecked), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _classNames));\n\n return h(\n 'span',\n { 'class': classString },\n [h('input', _mergeJSXProps([{\n attrs: {\n name: name,\n id: id,\n type: type,\n readOnly: readOnly,\n disabled: disabled,\n tabIndex: tabIndex,\n\n autoFocus: autoFocus\n },\n 'class': prefixCls + '-input',\n domProps: {\n 'checked': !!sChecked,\n 'value': value\n },\n ref: 'input'\n }, {\n attrs: globalProps,\n on: _extends({}, getListeners(this), {\n change: this.handleChange,\n click: this.onClick\n })\n }])), h('span', { 'class': prefixCls + '-inner' })]\n );\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 _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport PropTypes from '../_util/vue-types';\nimport classNames from 'classnames';\nimport VcCheckbox from '../vc-checkbox';\nimport hasProp, { getOptionProps, getAttrs, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport warning from '../_util/warning';\nfunction noop() {}\n\nexport default {\n name: 'ACheckbox',\n inheritAttrs: false,\n __ANT_CHECKBOX: true,\n model: {\n prop: 'checked'\n },\n props: {\n prefixCls: PropTypes.string,\n defaultChecked: PropTypes.bool,\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n isGroup: PropTypes.bool,\n value: PropTypes.any,\n name: PropTypes.string,\n id: PropTypes.string,\n indeterminate: PropTypes.bool,\n type: PropTypes.string.def('checkbox'),\n autoFocus: PropTypes.bool\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } },\n checkboxGroupContext: { 'default': function _default() {\n return undefined;\n } }\n },\n watch: {\n value: function value(_value, prevValue) {\n var _this = this;\n\n this.$nextTick(function () {\n var _checkboxGroupContext = _this.checkboxGroupContext,\n checkboxGroup = _checkboxGroupContext === undefined ? {} : _checkboxGroupContext;\n\n if (checkboxGroup.registerValue && checkboxGroup.cancelValue) {\n checkboxGroup.cancelValue(prevValue);\n checkboxGroup.registerValue(_value);\n }\n });\n }\n },\n mounted: function mounted() {\n var value = this.value,\n _checkboxGroupContext2 = this.checkboxGroupContext,\n checkboxGroup = _checkboxGroupContext2 === undefined ? {} : _checkboxGroupContext2;\n\n if (checkboxGroup.registerValue) {\n checkboxGroup.registerValue(value);\n }\n\n warning(hasProp(this, 'checked') || this.checkboxGroupContext || !hasProp(this, 'value'), 'Checkbox', '`value` is not validate prop, do you mean `checked`?');\n },\n beforeDestroy: function beforeDestroy() {\n var value = this.value,\n _checkboxGroupContext3 = this.checkboxGroupContext,\n checkboxGroup = _checkboxGroupContext3 === undefined ? {} : _checkboxGroupContext3;\n\n if (checkboxGroup.cancelValue) {\n checkboxGroup.cancelValue(value);\n }\n },\n\n methods: {\n handleChange: function handleChange(event) {\n var targetChecked = event.target.checked;\n this.$emit('input', targetChecked);\n this.$emit('change', event);\n },\n focus: function focus() {\n this.$refs.vcCheckbox.focus();\n },\n blur: function blur() {\n this.$refs.vcCheckbox.blur();\n }\n },\n\n render: function render() {\n var _this2 = this,\n _classNames;\n\n var h = arguments[0];\n var checkboxGroup = this.checkboxGroupContext,\n $slots = this.$slots;\n\n var props = getOptionProps(this);\n var children = $slots['default'];\n\n var _getListeners = getListeners(this),\n _getListeners$mouseen = _getListeners.mouseenter,\n mouseenter = _getListeners$mouseen === undefined ? noop : _getListeners$mouseen,\n _getListeners$mousele = _getListeners.mouseleave,\n mouseleave = _getListeners$mousele === undefined ? noop : _getListeners$mousele,\n input = _getListeners.input,\n restListeners = _objectWithoutProperties(_getListeners, ['mouseenter', 'mouseleave', 'input']);\n\n var customizePrefixCls = props.prefixCls,\n indeterminate = props.indeterminate,\n restProps = _objectWithoutProperties(props, ['prefixCls', 'indeterminate']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n\n var checkboxProps = {\n props: _extends({}, restProps, { prefixCls: prefixCls }),\n on: restListeners,\n attrs: getAttrs(this)\n };\n if (checkboxGroup) {\n checkboxProps.on.change = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.$emit.apply(_this2, ['change'].concat(args));\n checkboxGroup.toggleOption({ label: children, value: props.value });\n };\n checkboxProps.props.name = checkboxGroup.name;\n checkboxProps.props.checked = checkboxGroup.sValue.indexOf(props.value) !== -1;\n checkboxProps.props.disabled = props.disabled || checkboxGroup.disabled;\n checkboxProps.props.indeterminate = indeterminate;\n } else {\n checkboxProps.on.change = this.handleChange;\n }\n var classString = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-wrapper', true), _defineProperty(_classNames, prefixCls + '-wrapper-checked', checkboxProps.props.checked), _defineProperty(_classNames, prefixCls + '-wrapper-disabled', checkboxProps.props.disabled), _classNames));\n var checkboxClass = classNames(_defineProperty({}, prefixCls + '-indeterminate', indeterminate));\n return h(\n 'label',\n { 'class': classString, on: {\n 'mouseenter': mouseenter,\n 'mouseleave': mouseleave\n }\n },\n [h(VcCheckbox, _mergeJSXProps([checkboxProps, { 'class': checkboxClass, ref: 'vcCheckbox' }])), children !== undefined && h('span', [children])]\n );\n }\n};","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport Checkbox from './Checkbox';\nimport hasProp from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nfunction noop() {}\nexport default {\n name: 'ACheckboxGroup',\n model: {\n prop: 'value'\n },\n props: {\n name: PropTypes.string,\n prefixCls: PropTypes.string,\n defaultValue: PropTypes.array,\n value: PropTypes.array,\n options: PropTypes.array.def([]),\n disabled: PropTypes.bool\n },\n provide: function provide() {\n return {\n checkboxGroupContext: this\n };\n },\n\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n var value = this.value,\n defaultValue = this.defaultValue;\n\n return {\n sValue: value || defaultValue || [],\n registeredValues: []\n };\n },\n\n watch: {\n value: function value(val) {\n this.sValue = val || [];\n }\n },\n methods: {\n getOptions: function getOptions() {\n var options = this.options,\n $scopedSlots = this.$scopedSlots;\n\n return options.map(function (option) {\n if (typeof option === 'string') {\n return {\n label: option,\n value: option\n };\n }\n var label = option.label;\n if (label === undefined && $scopedSlots.label) {\n label = $scopedSlots.label(option);\n }\n return _extends({}, option, { label: label });\n });\n },\n cancelValue: function cancelValue(value) {\n this.registeredValues = this.registeredValues.filter(function (val) {\n return val !== value;\n });\n },\n registerValue: function registerValue(value) {\n this.registeredValues = [].concat(_toConsumableArray(this.registeredValues), [value]);\n },\n toggleOption: function toggleOption(option) {\n var registeredValues = this.registeredValues;\n\n var optionIndex = this.sValue.indexOf(option.value);\n var value = [].concat(_toConsumableArray(this.sValue));\n if (optionIndex === -1) {\n value.push(option.value);\n } else {\n value.splice(optionIndex, 1);\n }\n if (!hasProp(this, 'value')) {\n this.sValue = value;\n }\n var options = this.getOptions();\n var val = value.filter(function (val) {\n return registeredValues.indexOf(val) !== -1;\n }).sort(function (a, b) {\n var indexA = options.findIndex(function (opt) {\n return opt.value === a;\n });\n var indexB = options.findIndex(function (opt) {\n return opt.value === b;\n });\n return indexA - indexB;\n });\n this.$emit('input', val);\n this.$emit('change', val);\n }\n },\n render: function render() {\n var h = arguments[0];\n var props = this.$props,\n state = this.$data,\n $slots = this.$slots;\n var customizePrefixCls = props.prefixCls,\n options = props.options;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n\n var children = $slots['default'];\n var groupPrefixCls = prefixCls + '-group';\n if (options && options.length > 0) {\n children = this.getOptions().map(function (option) {\n return h(\n Checkbox,\n {\n attrs: {\n prefixCls: prefixCls,\n\n disabled: 'disabled' in option ? option.disabled : props.disabled,\n indeterminate: option.indeterminate,\n value: option.value,\n checked: state.sValue.indexOf(option.value) !== -1\n },\n key: option.value.toString(), on: {\n 'change': option.onChange || noop\n },\n\n 'class': groupPrefixCls + '-item'\n },\n [option.label]\n );\n });\n }\n return h(\n 'div',\n { 'class': groupPrefixCls },\n [children]\n );\n }\n};","import Checkbox from './Checkbox';\nimport CheckboxGroup from './Group';\nimport Base from '../base';\n\nCheckbox.Group = CheckboxGroup;\n\n/* istanbul ignore next */\nCheckbox.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Checkbox.name, Checkbox);\n Vue.component(CheckboxGroup.name, CheckboxGroup);\n};\n\nexport default Checkbox;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport PropTypes from '../_util/vue-types';\nimport VcCheckbox from '../vc-checkbox';\nimport classNames from 'classnames';\nimport { getOptionProps, getAttrs, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nfunction noop() {}\n\nexport default {\n name: 'ARadio',\n model: {\n prop: 'checked'\n },\n props: {\n prefixCls: PropTypes.string,\n defaultChecked: Boolean,\n checked: { type: Boolean, 'default': undefined },\n disabled: Boolean,\n isGroup: Boolean,\n value: PropTypes.any,\n name: String,\n id: String,\n autoFocus: Boolean,\n type: PropTypes.string.def('radio')\n },\n inject: {\n radioGroupContext: { 'default': undefined },\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n focus: function focus() {\n this.$refs.vcCheckbox.focus();\n },\n blur: function blur() {\n this.$refs.vcCheckbox.blur();\n },\n handleChange: function handleChange(event) {\n var targetChecked = event.target.checked;\n this.$emit('input', targetChecked);\n this.$emit('change', event);\n },\n onChange: function onChange(e) {\n this.$emit('change', e);\n if (this.radioGroupContext && this.radioGroupContext.onRadioChange) {\n this.radioGroupContext.onRadioChange(e);\n }\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var $slots = this.$slots,\n radioGroup = this.radioGroupContext;\n\n var props = getOptionProps(this);\n var children = $slots['default'];\n\n var _getListeners = getListeners(this),\n _getListeners$mouseen = _getListeners.mouseenter,\n mouseenter = _getListeners$mouseen === undefined ? noop : _getListeners$mouseen,\n _getListeners$mousele = _getListeners.mouseleave,\n mouseleave = _getListeners$mousele === undefined ? noop : _getListeners$mousele,\n restListeners = _objectWithoutProperties(_getListeners, ['mouseenter', 'mouseleave']);\n\n var customizePrefixCls = props.prefixCls,\n restProps = _objectWithoutProperties(props, ['prefixCls']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n\n var radioProps = {\n props: _extends({}, restProps, { prefixCls: prefixCls }),\n on: restListeners,\n attrs: getAttrs(this)\n };\n\n if (radioGroup) {\n radioProps.props.name = radioGroup.name;\n radioProps.on.change = this.onChange;\n radioProps.props.checked = props.value === radioGroup.stateValue;\n radioProps.props.disabled = props.disabled || radioGroup.disabled;\n } else {\n radioProps.on.change = this.handleChange;\n }\n var wrapperClassString = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-wrapper', true), _defineProperty(_classNames, prefixCls + '-wrapper-checked', radioProps.props.checked), _defineProperty(_classNames, prefixCls + '-wrapper-disabled', radioProps.props.disabled), _classNames));\n\n return h(\n 'label',\n { 'class': wrapperClassString, on: {\n 'mouseenter': mouseenter,\n 'mouseleave': mouseleave\n }\n },\n [h(VcCheckbox, _mergeJSXProps([radioProps, { ref: 'vcCheckbox' }])), children !== undefined ? h('span', [children]) : null]\n );\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classNames from 'classnames';\nimport PropTypes from '../_util/vue-types';\nimport Radio from './Radio';\nimport { getOptionProps, filterEmpty, hasProp, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nfunction noop() {}\n\nexport default {\n name: 'ARadioGroup',\n model: {\n prop: 'value'\n },\n props: {\n prefixCls: PropTypes.string,\n defaultValue: PropTypes.any,\n value: PropTypes.any,\n size: {\n 'default': 'default',\n validator: function validator(value) {\n return ['large', 'default', 'small'].includes(value);\n }\n },\n options: {\n 'default': function _default() {\n return [];\n },\n type: Array\n },\n disabled: Boolean,\n name: String,\n buttonStyle: PropTypes.string.def('outline')\n },\n data: function data() {\n var value = this.value,\n defaultValue = this.defaultValue;\n\n this.updatingValue = false;\n return {\n stateValue: value === undefined ? defaultValue : value\n };\n },\n provide: function provide() {\n return {\n radioGroupContext: this\n };\n },\n\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n computed: {\n radioOptions: function radioOptions() {\n var disabled = this.disabled;\n\n return this.options.map(function (option) {\n return typeof option === 'string' ? { label: option, value: option } : _extends({}, option, { disabled: option.disabled === undefined ? disabled : option.disabled });\n });\n },\n classes: function classes() {\n var _ref;\n\n var prefixCls = this.prefixCls,\n size = this.size;\n\n return _ref = {}, _defineProperty(_ref, '' + prefixCls, true), _defineProperty(_ref, prefixCls + '-' + size, size), _ref;\n }\n },\n watch: {\n value: function value(val) {\n this.updatingValue = false;\n this.stateValue = val;\n }\n },\n methods: {\n onRadioChange: function onRadioChange(ev) {\n var _this = this;\n\n var lastValue = this.stateValue;\n var value = ev.target.value;\n\n if (!hasProp(this, 'value')) {\n this.stateValue = value;\n }\n // nextTick for https://github.com/vueComponent/ant-design-vue/issues/1280\n if (!this.updatingValue && value !== lastValue) {\n this.updatingValue = true;\n this.$emit('input', value);\n this.$emit('change', ev);\n }\n this.$nextTick(function () {\n _this.updatingValue = false;\n });\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n\n var _getListeners = getListeners(this),\n _getListeners$mouseen = _getListeners.mouseenter,\n mouseenter = _getListeners$mouseen === undefined ? noop : _getListeners$mouseen,\n _getListeners$mousele = _getListeners.mouseleave,\n mouseleave = _getListeners$mousele === undefined ? noop : _getListeners$mousele;\n\n var props = getOptionProps(this);\n var customizePrefixCls = props.prefixCls,\n options = props.options,\n buttonStyle = props.buttonStyle;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n\n var groupPrefixCls = prefixCls + '-group';\n var classString = classNames(groupPrefixCls, groupPrefixCls + '-' + buttonStyle, _defineProperty({}, groupPrefixCls + '-' + props.size, props.size));\n\n var children = filterEmpty(this.$slots['default']);\n\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n children = options.map(function (option) {\n if (typeof option === 'string') {\n return h(\n Radio,\n {\n key: option,\n attrs: { prefixCls: prefixCls,\n disabled: props.disabled,\n value: option,\n checked: _this2.stateValue === option\n }\n },\n [option]\n );\n } else {\n return h(\n Radio,\n {\n key: 'radio-group-value-options-' + option.value,\n attrs: { prefixCls: prefixCls,\n disabled: option.disabled || props.disabled,\n value: option.value,\n checked: _this2.stateValue === option.value\n }\n },\n [option.label]\n );\n }\n });\n }\n\n return h(\n 'div',\n { 'class': classString, on: {\n 'mouseenter': mouseenter,\n 'mouseleave': mouseleave\n }\n },\n [children]\n );\n }\n};","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport Radio from './Radio';\nimport { getOptionProps, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nexport default {\n name: 'ARadioButton',\n props: _extends({}, Radio.props),\n inject: {\n radioGroupContext: { 'default': undefined },\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n render: function render() {\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n customizePrefixCls = _getOptionProps.prefixCls,\n otherProps = _objectWithoutProperties(_getOptionProps, ['prefixCls']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('radio-button', customizePrefixCls);\n\n var radioProps = {\n props: _extends({}, otherProps, {\n prefixCls: prefixCls\n }),\n on: getListeners(this)\n };\n if (this.radioGroupContext) {\n radioProps.on.change = this.radioGroupContext.onRadioChange;\n radioProps.props.checked = this.$props.value === this.radioGroupContext.stateValue;\n radioProps.props.disabled = this.$props.disabled || this.radioGroupContext.disabled;\n }\n return h(\n Radio,\n radioProps,\n [this.$slots['default']]\n );\n }\n};","import Radio from './Radio';\nimport Group from './Group';\nimport Button from './RadioButton';\nimport Base from '../base';\n\nRadio.Group = Group;\nRadio.Button = Button;\n\n/* istanbul ignore next */\nRadio.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Radio.name, Radio);\n Vue.component(Radio.Group.name, Radio.Group);\n Vue.component(Radio.Button.name, Radio.Button);\n};\n\nexport { Button, Group };\nexport default Radio;","export default {\n name: 'FilterDropdownMenuWrapper',\n methods: {\n handelClick: function handelClick(e) {\n e.stopPropagation();\n //this.$emit('click', e);\n }\n },\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots,\n handelClick = this.handelClick;\n\n return h(\n 'div',\n {\n on: {\n 'click': handelClick\n }\n },\n [$slots['default']]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport VcSelect, { SelectProps } from '../select';\nimport { getOptionProps, filterEmpty, getListeners } from '../_util/props-util';\n\nexport default {\n props: _extends({}, SelectProps),\n Option: VcSelect.Option,\n render: function render() {\n var h = arguments[0];\n\n var selectOptionsProps = getOptionProps(this);\n var selelctProps = {\n props: _extends({}, selectOptionsProps, {\n size: 'small'\n }),\n on: getListeners(this)\n };\n return h(\n VcSelect,\n selelctProps,\n [filterEmpty(this.$slots['default'])]\n );\n }\n};","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};","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport VcSelect from '../select';\nimport MiniSelect from './MiniSelect';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { getOptionProps, getListeners } from '../_util/props-util';\nimport VcPagination from '../vc-pagination';\nimport enUS from '../vc-pagination/locale/en_US';\nimport Icon from '../icon';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nexport var PaginationProps = function PaginationProps() {\n return {\n total: PropTypes.number,\n defaultCurrent: PropTypes.number,\n disabled: PropTypes.bool,\n current: PropTypes.number,\n defaultPageSize: PropTypes.number,\n pageSize: PropTypes.number,\n hideOnSinglePage: PropTypes.bool,\n showSizeChanger: PropTypes.bool,\n pageSizeOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),\n buildOptionText: PropTypes.func,\n showSizeChange: PropTypes.func,\n showQuickJumper: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n showTotal: PropTypes.any,\n size: PropTypes.string,\n simple: PropTypes.bool,\n locale: PropTypes.object,\n prefixCls: PropTypes.string,\n selectPrefixCls: PropTypes.string,\n itemRender: PropTypes.any,\n role: PropTypes.string,\n showLessItems: PropTypes.bool\n };\n};\n\nexport var PaginationConfig = function PaginationConfig() {\n return _extends({}, PaginationProps(), {\n position: PropTypes.oneOf(['top', 'bottom', 'both'])\n });\n};\n\nexport default {\n name: 'APagination',\n model: {\n prop: 'current',\n event: 'change.current'\n },\n props: _extends({}, PaginationProps()),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n getIconsProps: function getIconsProps(prefixCls) {\n var h = this.$createElement;\n\n var prevIcon = h(\n 'a',\n { 'class': prefixCls + '-item-link' },\n [h(Icon, {\n attrs: { type: 'left' }\n })]\n );\n var nextIcon = h(\n 'a',\n { 'class': prefixCls + '-item-link' },\n [h(Icon, {\n attrs: { type: 'right' }\n })]\n );\n var jumpPrevIcon = h(\n 'a',\n { 'class': prefixCls + '-item-link' },\n [h(\n 'div',\n { 'class': prefixCls + '-item-container' },\n [h(Icon, { 'class': prefixCls + '-item-link-icon', attrs: { type: 'double-left' }\n }), h(\n 'span',\n { 'class': prefixCls + '-item-ellipsis' },\n ['\\u2022\\u2022\\u2022']\n )]\n )]\n );\n var jumpNextIcon = h(\n 'a',\n { 'class': prefixCls + '-item-link' },\n [h(\n 'div',\n { 'class': prefixCls + '-item-container' },\n [h(Icon, { 'class': prefixCls + '-item-link-icon', attrs: { type: 'double-right' }\n }), h(\n 'span',\n { 'class': prefixCls + '-item-ellipsis' },\n ['\\u2022\\u2022\\u2022']\n )]\n )]\n );\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n },\n renderPagination: function renderPagination(contextLocale) {\n var h = this.$createElement;\n\n var _getOptionProps = getOptionProps(this),\n customizePrefixCls = _getOptionProps.prefixCls,\n customizeSelectPrefixCls = _getOptionProps.selectPrefixCls,\n buildOptionText = _getOptionProps.buildOptionText,\n size = _getOptionProps.size,\n customLocale = _getOptionProps.locale,\n restProps = _objectWithoutProperties(_getOptionProps, ['prefixCls', 'selectPrefixCls', 'buildOptionText', 'size', 'locale']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n\n var isSmall = size === 'small';\n var paginationProps = {\n props: _extends({\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls\n }, restProps, this.getIconsProps(prefixCls), {\n selectComponentClass: isSmall ? MiniSelect : VcSelect,\n locale: _extends({}, contextLocale, customLocale),\n buildOptionText: buildOptionText || this.$scopedSlots.buildOptionText\n }),\n 'class': {\n mini: isSmall\n },\n on: getListeners(this)\n };\n\n return h(VcPagination, paginationProps);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n return h(LocaleReceiver, {\n attrs: {\n componentName: 'Pagination',\n defaultLocale: enUS\n },\n scopedSlots: { 'default': this.renderPagination }\n });\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport debounce from 'lodash/debounce';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { filterEmpty, initDefaultProps, isValidElement, getComponentFromProp, getListeners } from '../_util/props-util';\nimport { cloneElement } from '../_util/vnode';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nexport var SpinSize = PropTypes.oneOf(['small', 'default', 'large']);\n\nexport var SpinProps = function SpinProps() {\n return {\n prefixCls: PropTypes.string,\n spinning: PropTypes.bool,\n size: SpinSize,\n wrapperClassName: PropTypes.string,\n tip: PropTypes.string,\n delay: PropTypes.number,\n indicator: PropTypes.any\n };\n};\n\n// Render indicator\nvar defaultIndicator = void 0;\n\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\n\nexport function setDefaultIndicator(Content) {\n defaultIndicator = typeof Content.indicator === 'function' ? Content.indicator : function (h) {\n return h(Content.indicator);\n };\n}\n\nexport default {\n name: 'ASpin',\n mixins: [BaseMixin],\n props: initDefaultProps(SpinProps(), {\n size: 'default',\n spinning: true,\n wrapperClassName: ''\n }),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n var spinning = this.spinning,\n delay = this.delay;\n\n var shouldBeDelayed = shouldDelay(spinning, delay);\n this.originalUpdateSpinning = this.updateSpinning;\n this.debouncifyUpdateSpinning(this.$props);\n return {\n sSpinning: spinning && !shouldBeDelayed\n };\n },\n mounted: function mounted() {\n this.updateSpinning();\n },\n updated: function updated() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.debouncifyUpdateSpinning();\n _this.updateSpinning();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.cancelExistingSpin();\n },\n\n methods: {\n debouncifyUpdateSpinning: function debouncifyUpdateSpinning(props) {\n var _ref = props || this.$props,\n delay = _ref.delay;\n\n if (delay) {\n this.cancelExistingSpin();\n this.updateSpinning = debounce(this.originalUpdateSpinning, delay);\n }\n },\n updateSpinning: function updateSpinning() {\n var spinning = this.spinning,\n sSpinning = this.sSpinning;\n\n if (sSpinning !== spinning) {\n this.setState({ sSpinning: spinning });\n }\n },\n cancelExistingSpin: function cancelExistingSpin() {\n var updateSpinning = this.updateSpinning;\n\n if (updateSpinning && updateSpinning.cancel) {\n updateSpinning.cancel();\n }\n },\n getChildren: function getChildren() {\n if (this.$slots && this.$slots['default']) {\n return filterEmpty(this.$slots['default']);\n }\n return null;\n },\n renderIndicator: function renderIndicator(h, prefixCls) {\n // const h = this.$createElement\n var dotClassName = prefixCls + '-dot';\n var indicator = getComponentFromProp(this, 'indicator');\n // should not be render default indicator when indicator value is null\n if (indicator === null) {\n return null;\n }\n if (Array.isArray(indicator)) {\n indicator = filterEmpty(indicator);\n indicator = indicator.length === 1 ? indicator[0] : indicator;\n }\n if (isValidElement(indicator)) {\n return cloneElement(indicator, { 'class': dotClassName });\n }\n\n if (defaultIndicator && isValidElement(defaultIndicator(h))) {\n return cloneElement(defaultIndicator(h), { 'class': dotClassName });\n }\n\n return h(\n 'span',\n { 'class': dotClassName + ' ' + prefixCls + '-dot-spin' },\n [h('i', { 'class': prefixCls + '-dot-item' }), h('i', { 'class': prefixCls + '-dot-item' }), h('i', { 'class': prefixCls + '-dot-item' }), h('i', { 'class': prefixCls + '-dot-item' })]\n );\n }\n },\n render: function render(h) {\n var _spinClassName;\n\n var _$props = this.$props,\n size = _$props.size,\n customizePrefixCls = _$props.prefixCls,\n tip = _$props.tip,\n wrapperClassName = _$props.wrapperClassName,\n restProps = _objectWithoutProperties(_$props, ['size', 'prefixCls', 'tip', 'wrapperClassName']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('spin', customizePrefixCls);\n\n var sSpinning = this.sSpinning;\n\n var spinClassName = (_spinClassName = {}, _defineProperty(_spinClassName, prefixCls, true), _defineProperty(_spinClassName, prefixCls + '-sm', size === 'small'), _defineProperty(_spinClassName, prefixCls + '-lg', size === 'large'), _defineProperty(_spinClassName, prefixCls + '-spinning', sSpinning), _defineProperty(_spinClassName, prefixCls + '-show-text', !!tip), _spinClassName);\n\n var spinElement = h(\n 'div',\n _mergeJSXProps([restProps, { 'class': spinClassName }]),\n [this.renderIndicator(h, prefixCls), tip ? h(\n 'div',\n { 'class': prefixCls + '-text' },\n [tip]\n ) : null]\n );\n var children = this.getChildren();\n if (children) {\n var _containerClassName;\n\n var containerClassName = (_containerClassName = {}, _defineProperty(_containerClassName, prefixCls + '-container', true), _defineProperty(_containerClassName, prefixCls + '-blur', sSpinning), _containerClassName);\n\n return h(\n 'div',\n _mergeJSXProps([{ on: getListeners(this) }, {\n 'class': [prefixCls + '-nested-loading', wrapperClassName]\n }]),\n [sSpinning && h(\n 'div',\n { key: 'loading' },\n [spinElement]\n ), h(\n 'div',\n { 'class': containerClassName, key: 'container' },\n [children]\n )]\n );\n }\n return spinElement;\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport { PaginationProps as getPaginationProps } from '../pagination';\nimport { SpinProps as getSpinProps } from '../spin';\n\nvar PaginationProps = getPaginationProps();\nvar SpinProps = getSpinProps();\n\n// export type CompareFn = ((a: T, b: T) => number);\nexport var ColumnFilterItem = PropTypes.shape({\n text: PropTypes.string,\n value: PropTypes.string,\n children: PropTypes.array\n}).loose;\n\nexport var ColumnProps = {\n title: PropTypes.any,\n // key?: React.Key;\n dataIndex: PropTypes.string,\n customRender: PropTypes.func,\n customCell: PropTypes.func,\n customHeaderCell: PropTypes.func,\n align: PropTypes.oneOf(['left', 'right', 'center']),\n ellipsis: PropTypes.bool,\n filters: PropTypes.arrayOf(ColumnFilterItem),\n // onFilter: (value: any, record: T) => PropTypes.bool,\n filterMultiple: PropTypes.bool,\n filterDropdown: PropTypes.any,\n filterDropdownVisible: PropTypes.bool,\n // onFilterDropdownVisibleChange?: (visible: boolean) => void;\n sorter: PropTypes.oneOfType([PropTypes.boolean, PropTypes.func]),\n defaultSortOrder: PropTypes.oneOf(['ascend', 'descend']),\n colSpan: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n className: PropTypes.string,\n fixed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),\n filterIcon: PropTypes.any,\n filteredValue: PropTypes.array,\n filtered: PropTypes.bool,\n defaultFilteredValue: PropTypes.array,\n sortOrder: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['ascend', 'descend'])]),\n sortDirections: PropTypes.array\n // children?: ColumnProps[];\n // onCellClick?: (record: T, event: any) => void;\n // onCell?: (record: T) => any;\n // onHeaderCell?: (props: ColumnProps) => any;\n};\n\n// export interface TableComponents {\n// table?: any;\n// header?: {\n// wrapper?: any;\n// row?: any;\n// cell?: any;\n// };\n// body?: {\n// wrapper?: any;\n// row?: any;\n// cell?: any;\n// };\n// }\n\nexport var TableLocale = PropTypes.shape({\n filterTitle: PropTypes.string,\n filterConfirm: PropTypes.any,\n filterReset: PropTypes.any,\n emptyText: PropTypes.any,\n selectAll: PropTypes.any,\n selectInvert: PropTypes.any,\n sortTitle: PropTypes.string,\n expand: PropTypes.string,\n collapse: PropTypes.string\n}).loose;\n\nexport var RowSelectionType = PropTypes.oneOf(['checkbox', 'radio']);\n// export type SelectionSelectFn = (record: T, selected: boolean, selectedRows: Object[]) => any;\n\nexport var TableRowSelection = {\n type: RowSelectionType,\n selectedRowKeys: PropTypes.array,\n // onChange?: (selectedRowKeys: string[] | number[], selectedRows: Object[]) => any;\n getCheckboxProps: PropTypes.func,\n // onSelect?: SelectionSelectFn;\n // onSelectAll?: (selected: boolean, selectedRows: Object[], changeRows: Object[]) => any;\n // onSelectInvert?: (selectedRows: Object[]) => any;\n selections: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),\n hideDefaultSelections: PropTypes.bool,\n fixed: PropTypes.bool,\n columnWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selectWay: PropTypes.oneOf(['onSelect', 'onSelectMultiple', 'onSelectAll', 'onSelectInvert']),\n columnTitle: PropTypes.any\n};\n\nexport var TableProps = {\n prefixCls: PropTypes.string,\n dropdownPrefixCls: PropTypes.string,\n rowSelection: PropTypes.oneOfType([PropTypes.shape(TableRowSelection).loose, null]),\n pagination: PropTypes.oneOfType([PropTypes.shape(_extends({}, PaginationProps, {\n position: PropTypes.oneOf(['top', 'bottom', 'both'])\n })).loose, PropTypes.bool]),\n size: PropTypes.oneOf(['default', 'middle', 'small', 'large']),\n dataSource: PropTypes.array,\n components: PropTypes.object,\n columns: PropTypes.array,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n rowClassName: PropTypes.func,\n expandedRowRender: PropTypes.any,\n defaultExpandAllRows: PropTypes.bool,\n defaultExpandedRowKeys: PropTypes.array,\n expandedRowKeys: PropTypes.array,\n expandIconAsCell: PropTypes.bool,\n expandIconColumnIndex: PropTypes.number,\n expandRowByClick: PropTypes.bool,\n // onExpandedRowsChange?: (expandedRowKeys: string[] | number[]) => void;\n // onExpand?: (expanded: boolean, record: T) => void;\n // onChange?: (pagination: PaginationProps | boolean, filters: string[], sorter: Object) => any;\n loading: PropTypes.oneOfType([PropTypes.shape(SpinProps).loose, PropTypes.bool]),\n locale: TableLocale,\n indentSize: PropTypes.number,\n // onRowClick?: (record: T, index: number, event: Event) => any;\n customRow: PropTypes.func,\n customHeaderRow: PropTypes.func,\n useFixedHeader: PropTypes.bool,\n bordered: PropTypes.bool,\n showHeader: PropTypes.bool,\n footer: PropTypes.func,\n title: PropTypes.func,\n scroll: PropTypes.object,\n childrenColumnName: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n bodyStyle: PropTypes.any,\n sortDirections: PropTypes.array,\n tableLayout: PropTypes.string,\n getPopupContainer: PropTypes.func,\n expandIcon: PropTypes.func,\n transformCellText: PropTypes.func\n // className?: PropTypes.string,\n // style?: React.CSSProperties;\n // children?: React.ReactNode;\n};\n\n// export interface TableStateFilters {\n// [key: string]: string[];\n// }\n\n// export interface TableState {\n// pagination: PaginationProps;\n// filters: TableStateFilters;\n// sortColumn: ColumnProps | null;\n// sortOrder: PropTypes.string,\n// }\n\n// export type SelectionItemSelectFn = (key: string[]) => any;\n\n// export interface SelectionItem {\n// key: PropTypes.string,\n// text: PropTypes.any,\n// onSelect: SelectionItemSelectFn;\n// }\n\nexport var SelectionCheckboxAllProps = {\n store: PropTypes.any,\n locale: PropTypes.any,\n disabled: PropTypes.bool,\n getCheckboxPropsByItem: PropTypes.func,\n getRecordKey: PropTypes.func,\n data: PropTypes.array,\n prefixCls: PropTypes.string,\n // onSelect: (key: string, index: number, selectFunc: any) => void;\n hideDefaultSelections: PropTypes.bool,\n selections: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),\n getPopupContainer: PropTypes.func\n};\n\n// export interface SelectionCheckboxAllState {\n// checked: PropTypes.bool,\n// indeterminate: PropTypes.bool,\n// }\n\nexport var SelectionBoxProps = {\n store: PropTypes.any,\n type: RowSelectionType,\n defaultSelection: PropTypes.arrayOf([PropTypes.string, PropTypes.number]),\n rowIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string\n // onChange: React.ChangeEventHandler;\n};\n\n// export interface SelectionBoxState {\n// checked?: PropTypes.bool,\n// }\n\nexport var FilterMenuProps = {\n _propsSymbol: PropTypes.any,\n locale: TableLocale,\n selectedKeys: PropTypes.arrayOf([PropTypes.string, PropTypes.number]),\n column: PropTypes.object,\n confirmFilter: PropTypes.func,\n prefixCls: PropTypes.string,\n dropdownPrefixCls: PropTypes.string,\n getPopupContainer: PropTypes.func,\n handleFilter: PropTypes.func\n};\n\n// export interface FilterMenuState {\n// selectedKeys: string[];\n// keyPathOfSelectedItem: { [key: string]: string };\n// visible?: PropTypes.bool,\n// }","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nexport function flatArray() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var childrenName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'children';\n\n var result = [];\n var loop = function loop(array) {\n array.forEach(function (item) {\n if (item[childrenName]) {\n var newItem = _extends({}, item);\n delete newItem[childrenName];\n result.push(newItem);\n if (item[childrenName].length > 0) {\n loop(item[childrenName]);\n }\n } else {\n result.push(item);\n }\n });\n };\n loop(data);\n return result;\n}\n\nexport function treeMap(tree, mapper) {\n var childrenName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'children';\n\n return tree.map(function (node, index) {\n var extra = {};\n if (node[childrenName]) {\n extra[childrenName] = treeMap(node[childrenName], mapper, childrenName);\n }\n return _extends({}, mapper(node, index), extra);\n });\n}\n\nexport function flatFilter(tree, callback) {\n return tree.reduce(function (acc, node) {\n if (callback(node)) {\n acc.push(node);\n }\n if (node.children) {\n var children = flatFilter(node.children, callback);\n acc.push.apply(acc, _toConsumableArray(children));\n }\n return acc;\n }, []);\n}\n\n// export function normalizeColumns (elements) {\n// const columns = []\n// React.Children.forEach(elements, (element) => {\n// if (!React.isValidElement(element)) {\n// return\n// }\n// const column = {\n// ...element.props,\n// }\n// if (element.key) {\n// column.key = element.key\n// }\n// if (element.type && element.type.__ANT_TABLE_COLUMN_GROUP) {\n// column.children = normalizeColumns(column.children)\n// }\n// columns.push(column)\n// })\n// return columns\n// }\n\nexport function generateValueMaps(items) {\n var maps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n (items || []).forEach(function (_ref) {\n var value = _ref.value,\n children = _ref.children;\n\n maps[value.toString()] = value;\n generateValueMaps(children, maps);\n });\n return maps;\n}","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport Menu, { SubMenu, Item as MenuItem } from '../vc-menu';\nimport closest from 'dom-closest';\nimport classNames from 'classnames';\nimport shallowequal from 'shallowequal';\nimport Dropdown from '../dropdown';\nimport Icon from '../icon';\nimport Checkbox from '../checkbox';\nimport Radio from '../radio';\nimport FilterDropdownMenuWrapper from './FilterDropdownMenuWrapper';\nimport { FilterMenuProps } from './interface';\nimport { initDefaultProps, getOptionProps, isValidElement } from '../_util/props-util';\nimport { cloneElement } from '../_util/vnode';\nimport BaseMixin from '../_util/BaseMixin';\nimport { generateValueMaps } from './util';\n\nfunction stopPropagation(e) {\n e.stopPropagation();\n}\n\nexport default {\n name: 'FilterMenu',\n mixins: [BaseMixin],\n props: initDefaultProps(FilterMenuProps, {\n handleFilter: function handleFilter() {},\n\n column: {}\n }),\n\n data: function data() {\n var visible = 'filterDropdownVisible' in this.column ? this.column.filterDropdownVisible : false;\n this.preProps = _extends({}, getOptionProps(this));\n return {\n sSelectedKeys: this.selectedKeys,\n sKeyPathOfSelectedItem: {}, // 记录所有有选中子菜单的祖先菜单\n sVisible: visible,\n sValueKeys: generateValueMaps(this.column.filters)\n };\n },\n\n watch: {\n _propsSymbol: function _propsSymbol() {\n var nextProps = getOptionProps(this);\n var column = nextProps.column;\n\n var newState = {};\n\n /**\n * if the state is visible the component should ignore updates on selectedKeys prop to avoid\n * that the user selection is lost\n * this happens frequently when a table is connected on some sort of realtime data\n * Fixes https://github.com/ant-design/ant-design/issues/10289 and\n * https://github.com/ant-design/ant-design/issues/10209\n */\n if ('selectedKeys' in nextProps && !shallowequal(this.preProps.selectedKeys, nextProps.selectedKeys)) {\n newState.sSelectedKeys = nextProps.selectedKeys;\n }\n if (!shallowequal((this.preProps.column || {}).filters, (nextProps.column || {}).filters)) {\n newState.sValueKeys = generateValueMaps(nextProps.column.filters);\n }\n if ('filterDropdownVisible' in column) {\n newState.sVisible = column.filterDropdownVisible;\n }\n if (Object.keys(newState).length > 0) {\n this.setState(newState);\n }\n this.preProps = _extends({}, nextProps);\n }\n },\n\n mounted: function mounted() {\n var _this = this;\n\n var column = this.column;\n\n this.$nextTick(function () {\n _this.setNeverShown(column);\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n var column = this.column;\n\n this.$nextTick(function () {\n _this2.setNeverShown(column);\n });\n },\n\n methods: {\n getDropdownVisible: function getDropdownVisible() {\n return this.neverShown ? false : this.sVisible;\n },\n setNeverShown: function setNeverShown(column) {\n var rootNode = this.$el;\n var filterBelongToScrollBody = !!closest(rootNode, '.ant-table-scroll');\n if (filterBelongToScrollBody) {\n // When fixed column have filters, there will be two dropdown menus\n // Filter dropdown menu inside scroll body should never be shown\n // To fix https://github.com/ant-design/ant-design/issues/5010 and\n // https://github.com/ant-design/ant-design/issues/7909\n this.neverShown = !!column.fixed;\n }\n },\n setSelectedKeys: function setSelectedKeys(_ref) {\n var selectedKeys = _ref.selectedKeys;\n\n this.setState({ sSelectedKeys: selectedKeys });\n },\n setVisible: function setVisible(visible) {\n var column = this.column;\n\n if (!('filterDropdownVisible' in column)) {\n this.setState({ sVisible: visible });\n }\n if (column.onFilterDropdownVisibleChange) {\n column.onFilterDropdownVisibleChange(visible);\n }\n },\n handleClearFilters: function handleClearFilters() {\n this.setState({\n sSelectedKeys: []\n }, this.handleConfirm);\n },\n handleConfirm: function handleConfirm() {\n var _this3 = this;\n\n this.setVisible(false);\n this.confirmFilter2();\n // Call `setSelectedKeys` & `confirm` in the same time will make filter data not up to date\n // https://github.com/ant-design/ant-design/issues/12284\n this.$forceUpdate();\n this.$nextTick(function () {\n _this3.confirmFilter;\n });\n },\n onVisibleChange: function onVisibleChange(visible) {\n this.setVisible(visible);\n var column = this.$props.column;\n // https://github.com/ant-design/ant-design/issues/17833\n\n if (!visible && !(column.filterDropdown instanceof Function)) {\n this.confirmFilter2();\n }\n },\n handleMenuItemClick: function handleMenuItemClick(info) {\n var selectedKeys = this.$data.sSelectedKeys;\n\n if (!info.keyPath || info.keyPath.length <= 1) {\n return;\n }\n var keyPathOfSelectedItem = this.$data.sKeyPathOfSelectedItem;\n\n if (selectedKeys && selectedKeys.indexOf(info.key) >= 0) {\n // deselect SubMenu child\n delete keyPathOfSelectedItem[info.key];\n } else {\n // select SubMenu child\n keyPathOfSelectedItem[info.key] = info.keyPath;\n }\n this.setState({ sKeyPathOfSelectedItem: keyPathOfSelectedItem });\n },\n hasSubMenu: function hasSubMenu() {\n var _column$filters = this.column.filters,\n filters = _column$filters === undefined ? [] : _column$filters;\n\n return filters.some(function (item) {\n return !!(item.children && item.children.length > 0);\n });\n },\n confirmFilter2: function confirmFilter2() {\n var _$props = this.$props,\n column = _$props.column,\n propSelectedKeys = _$props.selectedKeys,\n confirmFilter = _$props.confirmFilter;\n var _$data = this.$data,\n selectedKeys = _$data.sSelectedKeys,\n valueKeys = _$data.sValueKeys;\n var filterDropdown = column.filterDropdown;\n\n\n if (!shallowequal(selectedKeys, propSelectedKeys)) {\n confirmFilter(column, filterDropdown ? selectedKeys : selectedKeys.map(function (key) {\n return valueKeys[key];\n }).filter(function (key) {\n return key !== undefined;\n }));\n }\n },\n renderMenus: function renderMenus(items) {\n var _this4 = this;\n\n var h = this.$createElement;\n var _$props2 = this.$props,\n dropdownPrefixCls = _$props2.dropdownPrefixCls,\n prefixCls = _$props2.prefixCls;\n\n return items.map(function (item) {\n if (item.children && item.children.length > 0) {\n var sKeyPathOfSelectedItem = _this4.sKeyPathOfSelectedItem;\n\n var containSelected = Object.keys(sKeyPathOfSelectedItem).some(function (key) {\n return sKeyPathOfSelectedItem[key].indexOf(item.value) >= 0;\n });\n var subMenuCls = classNames(prefixCls + '-dropdown-submenu', _defineProperty({}, dropdownPrefixCls + '-submenu-contain-selected', containSelected));\n return h(\n SubMenu,\n {\n attrs: { title: item.text, popupClassName: subMenuCls },\n key: item.value },\n [_this4.renderMenus(item.children)]\n );\n }\n return _this4.renderMenuItem(item);\n });\n },\n renderFilterIcon: function renderFilterIcon() {\n var _classNames2;\n\n var h = this.$createElement;\n var column = this.column,\n locale = this.locale,\n prefixCls = this.prefixCls,\n selectedKeys = this.selectedKeys;\n\n var filtered = selectedKeys && selectedKeys.length > 0;\n var filterIcon = column.filterIcon;\n if (typeof filterIcon === 'function') {\n filterIcon = filterIcon(filtered, column);\n }\n var dropdownIconClass = classNames((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-selected', 'filtered' in column ? column.filtered : filtered), _defineProperty(_classNames2, prefixCls + '-open', this.getDropdownVisible()), _classNames2));\n if (!filterIcon) {\n return h(Icon, {\n attrs: {\n title: locale.filterTitle,\n type: 'filter',\n theme: 'filled'\n },\n 'class': dropdownIconClass,\n on: {\n 'click': stopPropagation\n }\n });\n }\n if (filterIcon.length === 1 && isValidElement(filterIcon[0])) {\n return cloneElement(filterIcon[0], {\n on: {\n click: stopPropagation\n },\n 'class': classNames(prefixCls + '-icon', dropdownIconClass)\n });\n }\n return h(\n 'span',\n { 'class': classNames(prefixCls + '-icon', dropdownIconClass) },\n [filterIcon]\n );\n },\n renderMenuItem: function renderMenuItem(item) {\n var h = this.$createElement;\n var column = this.column;\n var selectedKeys = this.$data.sSelectedKeys;\n\n var multiple = 'filterMultiple' in column ? column.filterMultiple : true;\n\n var input = multiple ? h(Checkbox, {\n attrs: { checked: selectedKeys && selectedKeys.indexOf(item.value) >= 0 }\n }) : h(Radio, {\n attrs: { checked: selectedKeys && selectedKeys.indexOf(item.value) >= 0 }\n });\n\n return h(\n MenuItem,\n { key: item.value },\n [input, h('span', [item.text])]\n );\n }\n },\n\n render: function render() {\n var _this5 = this;\n\n var h = arguments[0];\n var originSelectedKeys = this.$data.sSelectedKeys;\n var column = this.column,\n locale = this.locale,\n prefixCls = this.prefixCls,\n dropdownPrefixCls = this.dropdownPrefixCls,\n getPopupContainer = this.getPopupContainer;\n // default multiple selection in filter dropdown\n\n var multiple = 'filterMultiple' in column ? column.filterMultiple : true;\n var dropdownMenuClass = classNames(_defineProperty({}, dropdownPrefixCls + '-menu-without-submenu', !this.hasSubMenu()));\n var filterDropdown = column.filterDropdown;\n\n if (filterDropdown instanceof Function) {\n filterDropdown = filterDropdown({\n prefixCls: dropdownPrefixCls + '-custom',\n setSelectedKeys: function setSelectedKeys(selectedKeys) {\n return _this5.setSelectedKeys({ selectedKeys: selectedKeys });\n },\n selectedKeys: originSelectedKeys,\n confirm: this.handleConfirm,\n clearFilters: this.handleClearFilters,\n filters: column.filters,\n visible: this.getDropdownVisible(),\n column: column\n });\n }\n\n var menus = filterDropdown ? h(\n FilterDropdownMenuWrapper,\n { 'class': prefixCls + '-dropdown' },\n [filterDropdown]\n ) : h(\n FilterDropdownMenuWrapper,\n { 'class': prefixCls + '-dropdown' },\n [h(\n Menu,\n {\n attrs: {\n multiple: multiple,\n\n prefixCls: dropdownPrefixCls + '-menu',\n\n selectedKeys: originSelectedKeys && originSelectedKeys.map(function (val) {\n return val;\n }),\n getPopupContainer: getPopupContainer\n },\n on: {\n 'click': this.handleMenuItemClick,\n 'select': this.setSelectedKeys,\n 'deselect': this.setSelectedKeys\n },\n 'class': dropdownMenuClass\n },\n [this.renderMenus(column.filters)]\n ), h(\n 'div',\n { 'class': prefixCls + '-dropdown-btns' },\n [h(\n 'a',\n { 'class': prefixCls + '-dropdown-link confirm', on: {\n 'click': this.handleConfirm\n }\n },\n [locale.filterConfirm]\n ), h(\n 'a',\n { 'class': prefixCls + '-dropdown-link clear', on: {\n 'click': this.handleClearFilters\n }\n },\n [locale.filterReset]\n )]\n )]\n );\n\n return h(\n Dropdown,\n {\n attrs: {\n trigger: ['click'],\n placement: 'bottomRight',\n visible: this.getDropdownVisible(),\n\n getPopupContainer: getPopupContainer,\n forceRender: true\n },\n on: {\n 'visibleChange': this.onVisibleChange\n }\n },\n [h(\n 'template',\n { slot: 'overlay' },\n [menus]\n ), this.renderFilterIcon()]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport Checkbox from '../checkbox';\nimport Radio from '../radio';\nimport { SelectionBoxProps } from './interface';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getOptionProps, getListeners } from '../_util/props-util';\n\nexport default {\n name: 'SelectionBox',\n mixins: [BaseMixin],\n props: SelectionBoxProps,\n computed: {\n checked: function checked() {\n var _$props = this.$props,\n store = _$props.store,\n defaultSelection = _$props.defaultSelection,\n rowIndex = _$props.rowIndex;\n\n var checked = false;\n if (store.selectionDirty) {\n checked = store.selectedRowKeys.indexOf(rowIndex) >= 0;\n } else {\n checked = store.selectedRowKeys.indexOf(rowIndex) >= 0 || defaultSelection.indexOf(rowIndex) >= 0;\n }\n return checked;\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n type = _getOptionProps.type,\n rowIndex = _getOptionProps.rowIndex,\n rest = _objectWithoutProperties(_getOptionProps, ['type', 'rowIndex']);\n\n var checked = this.checked;\n\n var checkboxProps = {\n props: _extends({\n checked: checked\n }, rest),\n on: getListeners(this)\n };\n if (type === 'radio') {\n checkboxProps.props.value = rowIndex;\n return h(Radio, checkboxProps);\n }\n return h(Checkbox, checkboxProps);\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport Checkbox from '../checkbox';\nimport Dropdown from '../dropdown';\nimport Menu from '../menu';\nimport Icon from '../icon';\nimport classNames from 'classnames';\nimport { SelectionCheckboxAllProps } from './interface';\nimport BaseMixin from '../_util/BaseMixin';\n\nfunction checkSelection(_ref) {\n var store = _ref.store,\n getCheckboxPropsByItem = _ref.getCheckboxPropsByItem,\n getRecordKey = _ref.getRecordKey,\n data = _ref.data,\n type = _ref.type,\n byDefaultChecked = _ref.byDefaultChecked;\n\n return byDefaultChecked ? data[type](function (item, i) {\n return getCheckboxPropsByItem(item, i).defaultChecked;\n }) : data[type](function (item, i) {\n return store.selectedRowKeys.indexOf(getRecordKey(item, i)) >= 0;\n });\n}\n\nfunction getIndeterminateState(props) {\n var store = props.store,\n data = props.data;\n\n if (!data.length) {\n return false;\n }\n\n var someCheckedNotByDefaultChecked = checkSelection(_extends({}, props, {\n data: data,\n type: 'some',\n byDefaultChecked: false\n })) && !checkSelection(_extends({}, props, {\n data: data,\n type: 'every',\n byDefaultChecked: false\n }));\n var someCheckedByDefaultChecked = checkSelection(_extends({}, props, {\n data: data,\n type: 'some',\n byDefaultChecked: true\n })) && !checkSelection(_extends({}, props, {\n data: data,\n type: 'every',\n byDefaultChecked: true\n }));\n\n if (store.selectionDirty) {\n return someCheckedNotByDefaultChecked;\n }\n return someCheckedNotByDefaultChecked || someCheckedByDefaultChecked;\n}\n\nfunction getCheckState(props) {\n var store = props.store,\n data = props.data;\n\n if (!data.length) {\n return false;\n }\n if (store.selectionDirty) {\n return checkSelection(_extends({}, props, {\n data: data,\n type: 'every',\n byDefaultChecked: false\n }));\n }\n return checkSelection(_extends({}, props, {\n data: data,\n type: 'every',\n byDefaultChecked: false\n })) || checkSelection(_extends({}, props, {\n data: data,\n type: 'every',\n byDefaultChecked: true\n }));\n}\n\nexport default {\n name: 'SelectionCheckboxAll',\n mixins: [BaseMixin],\n props: SelectionCheckboxAllProps,\n data: function data() {\n var props = this.$props;\n\n this.defaultSelections = props.hideDefaultSelections ? [] : [{\n key: 'all',\n text: props.locale.selectAll\n }, {\n key: 'invert',\n text: props.locale.selectInvert\n }];\n return {\n checked: getCheckState(props),\n indeterminate: getIndeterminateState(props)\n };\n },\n\n\n watch: {\n $props: {\n handler: function handler() {\n this.setCheckState(this.$props);\n },\n\n deep: true,\n immediate: true\n }\n },\n\n methods: {\n checkSelection: function checkSelection(props, data, type, byDefaultChecked) {\n var _ref2 = props || this.$props,\n store = _ref2.store,\n getCheckboxPropsByItem = _ref2.getCheckboxPropsByItem,\n getRecordKey = _ref2.getRecordKey;\n // type should be 'every' | 'some'\n\n\n if (type === 'every' || type === 'some') {\n return byDefaultChecked ? data[type](function (item, i) {\n return getCheckboxPropsByItem(item, i).props.defaultChecked;\n }) : data[type](function (item, i) {\n return store.selectedRowKeys.indexOf(getRecordKey(item, i)) >= 0;\n });\n }\n return false;\n },\n setCheckState: function setCheckState(props) {\n var checked = getCheckState(props);\n var indeterminate = getIndeterminateState(props);\n this.setState(function (prevState) {\n var newState = {};\n if (indeterminate !== prevState.indeterminate) {\n newState.indeterminate = indeterminate;\n }\n if (checked !== prevState.checked) {\n newState.checked = checked;\n }\n return newState;\n });\n },\n handleSelectAllChange: function handleSelectAllChange(e) {\n var checked = e.target.checked;\n\n this.$emit('select', checked ? 'all' : 'removeAll', 0, null);\n },\n renderMenus: function renderMenus(selections) {\n var _this = this;\n\n var h = this.$createElement;\n\n return selections.map(function (selection, index) {\n return h(\n Menu.Item,\n { key: selection.key || index },\n [h(\n 'div',\n {\n on: {\n 'click': function click() {\n _this.$emit('select', selection.key, index, selection.onSelect);\n }\n }\n },\n [selection.text]\n )]\n );\n });\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var disabled = this.disabled,\n prefixCls = this.prefixCls,\n selections = this.selections,\n getPopupContainer = this.getPopupContainer,\n checked = this.checked,\n indeterminate = this.indeterminate;\n\n\n var selectionPrefixCls = prefixCls + '-selection';\n\n var customSelections = null;\n\n if (selections) {\n var newSelections = Array.isArray(selections) ? this.defaultSelections.concat(selections) : this.defaultSelections;\n\n var menu = h(\n Menu,\n { 'class': selectionPrefixCls + '-menu', attrs: { selectedKeys: [] }\n },\n [this.renderMenus(newSelections)]\n );\n\n customSelections = newSelections.length > 0 ? h(\n Dropdown,\n {\n attrs: { getPopupContainer: getPopupContainer }\n },\n [h(\n 'template',\n { slot: 'overlay' },\n [menu]\n ), h(\n 'div',\n { 'class': selectionPrefixCls + '-down' },\n [h(Icon, {\n attrs: { type: 'down' }\n })]\n )]\n ) : null;\n }\n\n return h(\n 'div',\n { 'class': selectionPrefixCls },\n [h(Checkbox, {\n 'class': classNames(_defineProperty({}, selectionPrefixCls + '-select-all-custom', customSelections)),\n attrs: { checked: checked,\n indeterminate: indeterminate,\n disabled: disabled\n },\n on: {\n 'change': this.handleSelectAllChange\n }\n }), customSelections]\n );\n }\n};","import { ColumnProps } from './interface';\n\nexport default {\n name: 'ATableColumn',\n props: ColumnProps\n};","import PropTypes from '../_util/vue-types';\n\nexport default {\n name: 'ATableColumnGroup',\n props: {\n fixed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),\n title: PropTypes.any\n },\n __ANT_TABLE_COLUMN_GROUP: true\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport { getListeners } from '../_util/props-util';\n\nvar BodyRowProps = {\n store: PropTypes.any,\n rowKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n prefixCls: PropTypes.string\n};\n\nexport default function createBodyRow() {\n var Component = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'tr';\n\n var BodyRow = {\n name: 'BodyRow',\n props: BodyRowProps,\n computed: {\n selected: function selected() {\n return this.$props.store.selectedRowKeys.indexOf(this.$props.rowKey) >= 0;\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var className = _defineProperty({}, this.prefixCls + '-row-selected', this.selected);\n\n return h(\n Component,\n _mergeJSXProps([{ 'class': className }, { on: getListeners(this) }]),\n [this.$slots['default']]\n );\n }\n };\n\n return BodyRow;\n}","import Pagination from './Pagination';\nimport Base from '../base';\n\nexport { PaginationProps, PaginationConfig } from './Pagination';\n\n/* istanbul ignore next */\nPagination.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Pagination.name, Pagination);\n};\n\nexport default Pagination;","import Spin, { setDefaultIndicator } from './Spin';\nimport Base from '../base';\n\nexport { SpinProps } from './Spin';\n\nSpin.setDefaultIndicator = setDefaultIndicator;\n\n/* istanbul ignore next */\nSpin.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Spin.name, Spin);\n};\n\nexport default Spin;","export default function getScroll(target, top) {\n if (typeof window === 'undefined') {\n return 0;\n }\n\n var prop = top ? 'pageYOffset' : 'pageXOffset';\n var method = top ? 'scrollTop' : 'scrollLeft';\n var isWindow = target === window;\n\n var ret = isWindow ? target[prop] : target[method];\n // ie6,7,8 standard mode\n if (isWindow && typeof ret !== 'number') {\n ret = window.document.documentElement[method];\n }\n\n return ret;\n}","export function easeInOutCubic(t, b, c, d) {\n var cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n * This helps accessibility reader to tread as a interactive button to operation.\n */\nimport KeyCode from './KeyCode';\nimport PropTypes from './vue-types';\n\nvar inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\n\nvar TransButton = {\n props: {\n noStyle: PropTypes.bool\n },\n\n methods: {\n onKeyDown: function onKeyDown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === KeyCode.ENTER) {\n event.preventDefault();\n }\n },\n onKeyUp: function onKeyUp(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === KeyCode.ENTER) {\n this.$emit('click', event);\n }\n },\n setRef: function setRef(btn) {\n this.div = btn;\n },\n focus: function focus() {\n if (this.div) {\n this.div.focus();\n }\n },\n blur: function blur() {\n if (this.div) {\n this.div.blur();\n }\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var noStyle = this.$props.noStyle;\n\n\n return h(\n 'div',\n _mergeJSXProps([{\n attrs: {\n role: 'button',\n tabIndex: 0\n }\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.setRef\n }],\n on: _extends({}, this.$listeners, {\n keydown: this.onKeyDown,\n keyup: this.onKeyUp\n })\n }, {\n style: _extends({}, !noStyle ? inlineStyle : null)\n }]),\n [this.$slots['default']]\n );\n }\n};\n\nexport default TransButton;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport VcTable, { INTERNAL_COL_DEFINE } from '../vc-table';\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport FilterDropdown from './filterDropdown';\nimport SelectionBox from './SelectionBox';\nimport SelectionCheckboxAll from './SelectionCheckboxAll';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport createBodyRow from './createBodyRow';\nimport { flatArray, treeMap, flatFilter } from './util';\nimport { initDefaultProps, mergeProps, getOptionProps, getListeners } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport { TableProps } from './interface';\nimport Pagination from '../pagination';\nimport Icon from '../icon';\nimport Spin from '../spin';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale-provider/default';\nimport warning from '../_util/warning';\nimport scrollTo from '../_util/scrollTo';\nimport TransButton from '../_util/transButton';\nimport Vue from 'vue';\n\nfunction noop() {}\n\nfunction stopPropagation(e) {\n e.stopPropagation();\n}\n\nfunction getRowSelection(props) {\n return props.rowSelection || {};\n}\n\nfunction getColumnKey(column, index) {\n return column.key || column.dataIndex || index;\n}\n\nfunction isSameColumn(a, b) {\n if (a && b && a.key && a.key === b.key) {\n return true;\n }\n return a === b || shallowEqual(a, b, function (value, other) {\n // https://github.com/ant-design/ant-design/issues/12737\n if (typeof value === 'function' && typeof other === 'function') {\n return value === other || value.toString() === other.toString();\n }\n // https://github.com/ant-design/ant-design/issues/19398\n if (Array.isArray(value) && Array.isArray(other)) {\n return value === other || shallowEqual(value, other);\n }\n });\n}\n\nvar defaultPagination = {\n onChange: noop,\n onShowSizeChange: noop\n};\n\n/**\n * Avoid creating new object, so that parent component's shouldComponentUpdate\n * can works appropriately。\n */\nvar emptyObject = {};\n\nvar createComponents = function createComponents() {\n var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var bodyRow = components && components.body && components.body.row;\n return _extends({}, components, {\n body: _extends({}, components.body, {\n row: createBodyRow(bodyRow)\n })\n });\n};\n\nfunction isTheSameComponents() {\n var components1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var components2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return components1 === components2 || ['table', 'header', 'body'].every(function (key) {\n return shallowEqual(components1[key], components2[key]);\n });\n}\n\nfunction getFilteredValueColumns(state, columns) {\n return flatFilter(columns || (state || {}).columns || [], function (column) {\n return typeof column.filteredValue !== 'undefined';\n });\n}\n\nfunction getFiltersFromColumns(state, columns) {\n var filters = {};\n getFilteredValueColumns(state, columns).forEach(function (col) {\n var colKey = getColumnKey(col);\n filters[colKey] = col.filteredValue;\n });\n return filters;\n}\n\nfunction isFiltersChanged(state, filters) {\n if (Object.keys(filters).length !== Object.keys(state.filters).length) {\n return true;\n }\n return Object.keys(filters).some(function (columnKey) {\n return filters[columnKey] !== state.filters[columnKey];\n });\n}\n\nexport default {\n name: 'Table',\n Column: Column,\n ColumnGroup: ColumnGroup,\n mixins: [BaseMixin],\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n provide: function provide() {\n return {\n store: this.store\n };\n },\n\n props: initDefaultProps(TableProps, {\n dataSource: [],\n useFixedHeader: false,\n // rowSelection: null,\n size: 'default',\n loading: false,\n bordered: false,\n indentSize: 20,\n locale: {},\n rowKey: 'key',\n showHeader: true,\n sortDirections: ['ascend', 'descend'],\n childrenColumnName: 'children'\n }),\n\n data: function data() {\n var props = getOptionProps(this);\n warning(!props.expandedRowRender || !('scroll' in props) || !props.scroll.x, '`expandedRowRender` and `scroll` are not compatible. Please use one of them at one time.');\n this.CheckboxPropsCache = {};\n\n this.store = (this.$root.constructor.observable || Vue.observable)({\n selectedRowKeys: getRowSelection(this.$props).selectedRowKeys || [],\n selectionDirty: false\n });\n return _extends({}, this.getDefaultSortOrder(props.columns || []), {\n // 减少状态\n sFilters: this.getDefaultFilters(props.columns),\n sPagination: this.getDefaultPagination(this.$props),\n pivot: undefined,\n sComponents: createComponents(this.components),\n filterDataCnt: 0\n });\n },\n\n watch: {\n pagination: {\n handler: function handler(val) {\n this.setState(function (previousState) {\n var newPagination = _extends({}, defaultPagination, previousState.sPagination, val);\n newPagination.current = newPagination.current || 1;\n newPagination.pageSize = newPagination.pageSize || 10;\n return { sPagination: val !== false ? newPagination : emptyObject };\n });\n },\n\n deep: true\n },\n rowSelection: {\n handler: function handler(val, oldVal) {\n if (val && 'selectedRowKeys' in val) {\n this.store.selectedRowKeys = val.selectedRowKeys || [];\n var rowSelection = this.rowSelection;\n\n if (rowSelection && val.getCheckboxProps !== rowSelection.getCheckboxProps) {\n this.CheckboxPropsCache = {};\n }\n } else if (oldVal && !val) {\n this.store.selectedRowKeys = [];\n }\n },\n\n deep: true\n },\n\n dataSource: function dataSource() {\n this.store.selectionDirty = false;\n this.CheckboxPropsCache = {};\n },\n columns: function columns(val) {\n var filteredValueColumns = getFilteredValueColumns({ columns: val }, val);\n if (filteredValueColumns.length > 0) {\n var filtersFromColumns = getFiltersFromColumns({ columns: val }, val);\n var newFilters = _extends({}, this.sFilters);\n Object.keys(filtersFromColumns).forEach(function (key) {\n newFilters[key] = filtersFromColumns[key];\n });\n if (isFiltersChanged({ filters: this.sFilters }, newFilters)) {\n this.setState({ sFilters: newFilters });\n }\n }\n this.$forceUpdate();\n },\n\n components: {\n handler: function handler(val, oldVal) {\n if (!isTheSameComponents(val, oldVal)) {\n var components = createComponents(val);\n this.setState({ sComponents: components });\n }\n },\n\n deep: true\n }\n },\n updated: function updated() {\n var columns = this.columns,\n sortColumn = this.sSortColumn,\n sortOrder = this.sSortOrder;\n\n if (this.getSortOrderColumns(columns).length > 0) {\n var sortState = this.getSortStateFromColumns(columns);\n if (!isSameColumn(sortState.sSortColumn, sortColumn) || sortState.sSortOrder !== sortOrder) {\n this.setState(sortState);\n }\n }\n },\n\n methods: {\n getCheckboxPropsByItem: function getCheckboxPropsByItem(item, index) {\n var rowSelection = getRowSelection(this.$props);\n if (!rowSelection.getCheckboxProps) {\n return { props: {} };\n }\n var key = this.getRecordKey(item, index);\n // Cache checkboxProps\n if (!this.CheckboxPropsCache[key]) {\n this.CheckboxPropsCache[key] = rowSelection.getCheckboxProps(item);\n }\n this.CheckboxPropsCache[key].props = this.CheckboxPropsCache[key].props || {};\n return this.CheckboxPropsCache[key];\n },\n getDefaultSelection: function getDefaultSelection() {\n var _this = this;\n\n var rowSelection = getRowSelection(this.$props);\n if (!rowSelection.getCheckboxProps) {\n return [];\n }\n return this.getFlatData().filter(function (item, rowIndex) {\n return _this.getCheckboxPropsByItem(item, rowIndex).props.defaultChecked;\n }).map(function (record, rowIndex) {\n return _this.getRecordKey(record, rowIndex);\n });\n },\n getDefaultPagination: function getDefaultPagination(props) {\n var pagination = _typeof(props.pagination) === 'object' ? props.pagination : {};\n var current = void 0;\n if ('current' in pagination) {\n current = pagination.current;\n } else if ('defaultCurrent' in pagination) {\n current = pagination.defaultCurrent;\n }\n var pageSize = void 0;\n if ('pageSize' in pagination) {\n pageSize = pagination.pageSize;\n } else if ('defaultPageSize' in pagination) {\n pageSize = pagination.defaultPageSize;\n }\n return this.hasPagination(props) ? _extends({}, defaultPagination, pagination, {\n current: current || 1,\n pageSize: pageSize || 10\n }) : {};\n },\n getSortOrderColumns: function getSortOrderColumns(columns) {\n return flatFilter(columns || this.columns || [], function (column) {\n return 'sortOrder' in column;\n });\n },\n getDefaultFilters: function getDefaultFilters(columns) {\n var definedFilters = getFiltersFromColumns({ columns: this.columns }, columns);\n\n var defaultFilteredValueColumns = flatFilter(columns || [], function (column) {\n return typeof column.defaultFilteredValue !== 'undefined';\n });\n\n var defaultFilters = defaultFilteredValueColumns.reduce(function (soFar, col) {\n var colKey = getColumnKey(col);\n soFar[colKey] = col.defaultFilteredValue;\n return soFar;\n }, {});\n\n return _extends({}, defaultFilters, definedFilters);\n },\n getDefaultSortOrder: function getDefaultSortOrder(columns) {\n var definedSortState = this.getSortStateFromColumns(columns);\n\n var defaultSortedColumn = flatFilter(columns || [], function (column) {\n return column.defaultSortOrder != null;\n })[0];\n\n if (defaultSortedColumn && !definedSortState.sortColumn) {\n return {\n sSortColumn: defaultSortedColumn,\n sSortOrder: defaultSortedColumn.defaultSortOrder\n };\n }\n\n return definedSortState;\n },\n getSortStateFromColumns: function getSortStateFromColumns(columns) {\n // return first column which sortOrder is not falsy\n var sortedColumn = this.getSortOrderColumns(columns).filter(function (col) {\n return col.sortOrder;\n })[0];\n\n if (sortedColumn) {\n return {\n sSortColumn: sortedColumn,\n sSortOrder: sortedColumn.sortOrder\n };\n }\n\n return {\n sSortColumn: null,\n sSortOrder: null\n };\n },\n getMaxCurrent: function getMaxCurrent(total) {\n var _sPagination = this.sPagination,\n current = _sPagination.current,\n pageSize = _sPagination.pageSize;\n\n if ((current - 1) * pageSize >= total) {\n return Math.floor((total - 1) / pageSize) + 1;\n }\n return current;\n },\n getRecordKey: function getRecordKey(record, index) {\n var rowKey = this.rowKey;\n\n var recordKey = typeof rowKey === 'function' ? rowKey(record, index) : record[rowKey];\n warning(recordKey !== undefined, 'Table', 'Each record in dataSource of table should have a unique `key` prop, ' + 'or set `rowKey` of Table to an unique primary key, ');\n return recordKey === undefined ? index : recordKey;\n },\n getSorterFn: function getSorterFn(state) {\n var _ref = state || this.$data,\n sortOrder = _ref.sSortOrder,\n sortColumn = _ref.sSortColumn;\n\n if (!sortOrder || !sortColumn || typeof sortColumn.sorter !== 'function') {\n return;\n }\n\n return function (a, b) {\n var result = sortColumn.sorter(a, b, sortOrder);\n if (result !== 0) {\n return sortOrder === 'descend' ? -result : result;\n }\n return 0;\n };\n },\n getCurrentPageData: function getCurrentPageData() {\n var data = this.getLocalData();\n this.filterDataCnt = data.length;\n var current = void 0;\n var pageSize = void 0;\n var sPagination = this.sPagination;\n // 如果没有分页的话,默认全部展示\n if (!this.hasPagination()) {\n pageSize = Number.MAX_VALUE;\n current = 1;\n } else {\n pageSize = sPagination.pageSize;\n current = this.getMaxCurrent(sPagination.total || data.length);\n }\n\n // 分页\n // ---\n // 当数据量少于等于每页数量时,直接设置数据\n // 否则进行读取分页数据\n if (data.length > pageSize || pageSize === Number.MAX_VALUE) {\n data = data.slice((current - 1) * pageSize, current * pageSize);\n }\n return data;\n },\n getFlatData: function getFlatData() {\n var childrenColumnName = this.$props.childrenColumnName;\n\n return flatArray(this.getLocalData(null, false), childrenColumnName);\n },\n getFlatCurrentPageData: function getFlatCurrentPageData() {\n var childrenColumnName = this.$props.childrenColumnName;\n\n return flatArray(this.getCurrentPageData(), childrenColumnName);\n },\n getLocalData: function getLocalData(state) {\n var _this2 = this;\n\n var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var currentState = state || this.$data;\n var filters = currentState.sFilters;\n var dataSource = this.$props.dataSource;\n\n var data = dataSource || [];\n // 优化本地排序\n data = data.slice(0);\n var sorterFn = this.getSorterFn(currentState);\n if (sorterFn) {\n // 使用新数组,避免改变原数组导致无限循环更新\n // https://github.com/vueComponent/ant-design-vue/issues/2270\n data = this.recursiveSort([].concat(_toConsumableArray(data)), sorterFn);\n }\n // 筛选\n if (filter && filters) {\n Object.keys(filters).forEach(function (columnKey) {\n var col = _this2.findColumn(columnKey);\n if (!col) {\n return;\n }\n var values = filters[columnKey] || [];\n if (values.length === 0) {\n return;\n }\n var onFilter = col.onFilter;\n data = onFilter ? data.filter(function (record) {\n return values.some(function (v) {\n return onFilter(v, record);\n });\n }) : data;\n });\n }\n return data;\n },\n onRow: function onRow(prefixCls, record, index) {\n var customRow = this.customRow;\n\n var custom = customRow ? customRow(record, index) : {};\n return mergeProps(custom, {\n props: {\n prefixCls: prefixCls,\n store: this.store,\n rowKey: this.getRecordKey(record, index)\n }\n });\n },\n setSelectedRowKeys: function setSelectedRowKeys(selectedRowKeys, selectionInfo) {\n var _this3 = this;\n\n var selectWay = selectionInfo.selectWay,\n record = selectionInfo.record,\n checked = selectionInfo.checked,\n changeRowKeys = selectionInfo.changeRowKeys,\n nativeEvent = selectionInfo.nativeEvent;\n\n var rowSelection = getRowSelection(this.$props);\n if (rowSelection && !('selectedRowKeys' in rowSelection)) {\n this.store.selectedRowKeys = selectedRowKeys;\n }\n var data = this.getFlatData();\n if (!rowSelection.onChange && !rowSelection[selectWay]) {\n return;\n }\n var selectedRows = data.filter(function (row, i) {\n return selectedRowKeys.indexOf(_this3.getRecordKey(row, i)) >= 0;\n });\n if (rowSelection.onChange) {\n rowSelection.onChange(selectedRowKeys, selectedRows);\n }\n if (selectWay === 'onSelect' && rowSelection.onSelect) {\n rowSelection.onSelect(record, checked, selectedRows, nativeEvent);\n } else if (selectWay === 'onSelectMultiple' && rowSelection.onSelectMultiple) {\n var changeRows = data.filter(function (row, i) {\n return changeRowKeys.indexOf(_this3.getRecordKey(row, i)) >= 0;\n });\n rowSelection.onSelectMultiple(checked, selectedRows, changeRows);\n } else if (selectWay === 'onSelectAll' && rowSelection.onSelectAll) {\n var _changeRows = data.filter(function (row, i) {\n return changeRowKeys.indexOf(_this3.getRecordKey(row, i)) >= 0;\n });\n rowSelection.onSelectAll(checked, selectedRows, _changeRows);\n } else if (selectWay === 'onSelectInvert' && rowSelection.onSelectInvert) {\n rowSelection.onSelectInvert(selectedRowKeys);\n }\n },\n generatePopupContainerFunc: function generatePopupContainerFunc(getPopupContainer) {\n var scroll = this.$props.scroll;\n\n var table = this.$refs.vcTable;\n if (getPopupContainer) {\n return getPopupContainer;\n }\n // Use undefined to let rc component use default logic.\n return scroll && table ? function () {\n return table.getTableNode();\n } : undefined;\n },\n scrollToFirstRow: function scrollToFirstRow() {\n var _this4 = this;\n\n var scroll = this.$props.scroll;\n\n if (scroll && scroll.scrollToFirstRowOnChange !== false) {\n scrollTo(0, {\n getContainer: function getContainer() {\n return _this4.$refs.vcTable.getBodyTable();\n }\n });\n }\n },\n isSameColumn: function isSameColumn(a, b) {\n if (a && b && a.key && a.key === b.key) {\n return true;\n }\n return a === b || shallowEqual(a, b, function (value, other) {\n if (typeof value === 'function' && typeof other === 'function') {\n return value === other || value.toString() === other.toString();\n }\n });\n },\n handleFilter: function handleFilter(column, nextFilters) {\n var _this5 = this;\n\n var props = this.$props;\n var pagination = _extends({}, this.sPagination);\n var filters = _extends({}, this.sFilters, _defineProperty({}, getColumnKey(column), nextFilters));\n // Remove filters not in current columns\n var currentColumnKeys = [];\n treeMap(this.columns, function (c) {\n if (!c.children) {\n currentColumnKeys.push(getColumnKey(c));\n }\n });\n Object.keys(filters).forEach(function (columnKey) {\n if (currentColumnKeys.indexOf(columnKey) < 0) {\n delete filters[columnKey];\n }\n });\n\n if (props.pagination) {\n // Reset current prop\n pagination.current = 1;\n pagination.onChange(pagination.current);\n }\n\n var newState = {\n sPagination: pagination,\n sFilters: {}\n };\n var filtersToSetState = _extends({}, filters);\n // Remove filters which is controlled\n getFilteredValueColumns({ columns: props.columns }).forEach(function (col) {\n var columnKey = getColumnKey(col);\n if (columnKey) {\n delete filtersToSetState[columnKey];\n }\n });\n if (Object.keys(filtersToSetState).length > 0) {\n newState.sFilters = filtersToSetState;\n }\n\n // Controlled current prop will not respond user interaction\n if (_typeof(props.pagination) === 'object' && 'current' in props.pagination) {\n newState.sPagination = _extends({}, pagination, {\n current: this.sPagination.current\n });\n }\n\n this.setState(newState, function () {\n _this5.scrollToFirstRow();\n _this5.store.selectionDirty = false;\n _this5.$emit.apply(_this5, ['change'].concat(_toConsumableArray(_this5.prepareParamsArguments(_extends({}, _this5.$data, {\n sSelectionDirty: false,\n sFilters: filters,\n sPagination: pagination\n })))));\n });\n },\n handleSelect: function handleSelect(record, rowIndex, e) {\n var _this6 = this;\n\n var checked = e.target.checked;\n var nativeEvent = e.nativeEvent;\n var defaultSelection = this.store.selectionDirty ? [] : this.getDefaultSelection();\n var selectedRowKeys = this.store.selectedRowKeys.concat(defaultSelection);\n var key = this.getRecordKey(record, rowIndex);\n var pivot = this.$data.pivot;\n\n var rows = this.getFlatCurrentPageData();\n var realIndex = rowIndex;\n if (this.$props.expandedRowRender) {\n realIndex = rows.findIndex(function (row) {\n return _this6.getRecordKey(row, rowIndex) === key;\n });\n }\n if (nativeEvent.shiftKey && pivot !== undefined && realIndex !== pivot) {\n var changeRowKeys = [];\n var direction = Math.sign(pivot - realIndex);\n var dist = Math.abs(pivot - realIndex);\n var step = 0;\n\n var _loop = function _loop() {\n var i = realIndex + step * direction;\n step += 1;\n var row = rows[i];\n var rowKey = _this6.getRecordKey(row, i);\n var checkboxProps = _this6.getCheckboxPropsByItem(row, i);\n if (!checkboxProps.disabled) {\n if (selectedRowKeys.includes(rowKey)) {\n if (!checked) {\n selectedRowKeys = selectedRowKeys.filter(function (j) {\n return rowKey !== j;\n });\n changeRowKeys.push(rowKey);\n }\n } else if (checked) {\n selectedRowKeys.push(rowKey);\n changeRowKeys.push(rowKey);\n }\n }\n };\n\n while (step <= dist) {\n _loop();\n }\n\n this.setState({ pivot: realIndex });\n this.store.selectionDirty = true;\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay: 'onSelectMultiple',\n record: record,\n checked: checked,\n changeRowKeys: changeRowKeys,\n nativeEvent: nativeEvent\n });\n } else {\n if (checked) {\n selectedRowKeys.push(this.getRecordKey(record, realIndex));\n } else {\n selectedRowKeys = selectedRowKeys.filter(function (i) {\n return key !== i;\n });\n }\n this.setState({ pivot: realIndex });\n this.store.selectionDirty = true;\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay: 'onSelect',\n record: record,\n checked: checked,\n changeRowKeys: undefined,\n nativeEvent: nativeEvent\n });\n }\n },\n handleRadioSelect: function handleRadioSelect(record, rowIndex, e) {\n var checked = e.target.checked;\n var nativeEvent = e.nativeEvent;\n var key = this.getRecordKey(record, rowIndex);\n var selectedRowKeys = [key];\n this.store.selectionDirty = true;\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay: 'onSelect',\n record: record,\n checked: checked,\n changeRowKeys: undefined,\n nativeEvent: nativeEvent\n });\n },\n handleSelectRow: function handleSelectRow(selectionKey, index, onSelectFunc) {\n var _this7 = this;\n\n var data = this.getFlatCurrentPageData();\n var defaultSelection = this.store.selectionDirty ? [] : this.getDefaultSelection();\n var selectedRowKeys = this.store.selectedRowKeys.concat(defaultSelection);\n var changeableRowKeys = data.filter(function (item, i) {\n return !_this7.getCheckboxPropsByItem(item, i).props.disabled;\n }).map(function (item, i) {\n return _this7.getRecordKey(item, i);\n });\n\n var changeRowKeys = [];\n var selectWay = 'onSelectAll';\n var checked = void 0;\n // handle default selection\n switch (selectionKey) {\n case 'all':\n changeableRowKeys.forEach(function (key) {\n if (selectedRowKeys.indexOf(key) < 0) {\n selectedRowKeys.push(key);\n changeRowKeys.push(key);\n }\n });\n selectWay = 'onSelectAll';\n checked = true;\n break;\n case 'removeAll':\n changeableRowKeys.forEach(function (key) {\n if (selectedRowKeys.indexOf(key) >= 0) {\n selectedRowKeys.splice(selectedRowKeys.indexOf(key), 1);\n changeRowKeys.push(key);\n }\n });\n selectWay = 'onSelectAll';\n checked = false;\n break;\n case 'invert':\n changeableRowKeys.forEach(function (key) {\n if (selectedRowKeys.indexOf(key) < 0) {\n selectedRowKeys.push(key);\n } else {\n selectedRowKeys.splice(selectedRowKeys.indexOf(key), 1);\n }\n changeRowKeys.push(key);\n selectWay = 'onSelectInvert';\n });\n break;\n default:\n break;\n }\n\n this.store.selectionDirty = true;\n // when select custom selection, callback selections[n].onSelect\n var rowSelection = this.rowSelection;\n\n var customSelectionStartIndex = 2;\n if (rowSelection && rowSelection.hideDefaultSelections) {\n customSelectionStartIndex = 0;\n }\n if (index >= customSelectionStartIndex && typeof onSelectFunc === 'function') {\n return onSelectFunc(changeableRowKeys);\n }\n this.setSelectedRowKeys(selectedRowKeys, {\n selectWay: selectWay,\n checked: checked,\n changeRowKeys: changeRowKeys\n });\n },\n handlePageChange: function handlePageChange(current) {\n var props = this.$props;\n var pagination = _extends({}, this.sPagination);\n if (current) {\n pagination.current = current;\n } else {\n pagination.current = pagination.current || 1;\n }\n\n for (var _len = arguments.length, otherArguments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n otherArguments[_key - 1] = arguments[_key];\n }\n\n pagination.onChange.apply(pagination, [pagination.current].concat(_toConsumableArray(otherArguments)));\n\n var newState = {\n sPagination: pagination\n };\n // Controlled current prop will not respond user interaction\n if (props.pagination && _typeof(props.pagination) === 'object' && 'current' in props.pagination) {\n newState.sPagination = _extends({}, pagination, {\n current: this.sPagination.current\n });\n }\n this.setState(newState, this.scrollToFirstRow);\n\n this.store.selectionDirty = false;\n this.$emit.apply(this, ['change'].concat(_toConsumableArray(this.prepareParamsArguments(_extends({}, this.$data, {\n sSelectionDirty: false,\n sPagination: pagination\n })))));\n },\n handleShowSizeChange: function handleShowSizeChange(current, pageSize) {\n var pagination = this.sPagination;\n pagination.onShowSizeChange(current, pageSize);\n var nextPagination = _extends({}, pagination, {\n pageSize: pageSize,\n current: current\n });\n this.setState({ sPagination: nextPagination }, this.scrollToFirstRow);\n this.$emit.apply(this, ['change'].concat(_toConsumableArray(this.prepareParamsArguments(_extends({}, this.$data, {\n sPagination: nextPagination\n })))));\n },\n toggleSortOrder: function toggleSortOrder(column) {\n var sortDirections = column.sortDirections || this.sortDirections;\n var sortOrder = this.sSortOrder,\n sortColumn = this.sSortColumn;\n // 只同时允许一列进行排序,否则会导致排序顺序的逻辑问题\n\n var newSortOrder = void 0;\n // 切换另一列时,丢弃 sortOrder 的状态\n if (isSameColumn(sortColumn, column) && sortOrder !== undefined) {\n // 按照sortDirections的内容依次切换排序状态\n var methodIndex = sortDirections.indexOf(sortOrder) + 1;\n newSortOrder = methodIndex === sortDirections.length ? undefined : sortDirections[methodIndex];\n } else {\n newSortOrder = sortDirections[0];\n }\n var newState = {\n sSortOrder: newSortOrder,\n sSortColumn: newSortOrder ? column : null\n };\n\n // Controlled\n if (this.getSortOrderColumns().length === 0) {\n this.setState(newState, this.scrollToFirstRow);\n }\n this.$emit.apply(this, ['change'].concat(_toConsumableArray(this.prepareParamsArguments(_extends({}, this.$data, newState), column))));\n },\n hasPagination: function hasPagination(props) {\n return (props || this.$props).pagination !== false;\n },\n isSortColumn: function isSortColumn(column) {\n var sortColumn = this.sSortColumn;\n\n if (!column || !sortColumn) {\n return false;\n }\n return getColumnKey(sortColumn) === getColumnKey(column);\n },\n\n\n // Get pagination, filters, sorter\n prepareParamsArguments: function prepareParamsArguments(state, column) {\n var pagination = _extends({}, state.sPagination);\n // remove useless handle function in Table.onChange\n delete pagination.onChange;\n delete pagination.onShowSizeChange;\n var filters = state.sFilters;\n var sorter = {};\n var currentColumn = column;\n if (state.sSortColumn && state.sSortOrder) {\n currentColumn = state.sSortColumn;\n sorter.column = state.sSortColumn;\n sorter.order = state.sSortOrder;\n }\n\n if (currentColumn) {\n sorter.field = currentColumn.dataIndex;\n sorter.columnKey = getColumnKey(currentColumn);\n }\n\n var extra = {\n currentDataSource: this.getLocalData(state)\n };\n\n return [pagination, filters, sorter, extra];\n },\n findColumn: function findColumn(myKey) {\n var column = void 0;\n treeMap(this.columns, function (c) {\n if (getColumnKey(c) === myKey) {\n column = c;\n }\n });\n return column;\n },\n recursiveSort: function recursiveSort(data, sorterFn) {\n var _this8 = this;\n\n var _childrenColumnName = this.childrenColumnName,\n childrenColumnName = _childrenColumnName === undefined ? 'children' : _childrenColumnName;\n\n return data.sort(sorterFn).map(function (item) {\n return item[childrenColumnName] ? _extends({}, item, _defineProperty({}, childrenColumnName, _this8.recursiveSort([].concat(_toConsumableArray(item[childrenColumnName])), sorterFn))) : item;\n });\n },\n renderExpandIcon: function renderExpandIcon(prefixCls) {\n var h = this.$createElement;\n\n return function (_ref2) {\n var expandable = _ref2.expandable,\n expanded = _ref2.expanded,\n needIndentSpaced = _ref2.needIndentSpaced,\n record = _ref2.record,\n onExpand = _ref2.onExpand;\n\n if (expandable) {\n return h(\n LocaleReceiver,\n {\n attrs: { componentName: 'Table', defaultLocale: defaultLocale.Table }\n },\n [function (locale) {\n var _classNames;\n\n return h(TransButton, {\n 'class': classNames(prefixCls + '-row-expand-icon', (_classNames = {}, _defineProperty(_classNames, prefixCls + '-row-collapsed', !expanded), _defineProperty(_classNames, prefixCls + '-row-expanded', expanded), _classNames)),\n on: {\n 'click': function click(event) {\n onExpand(record, event);\n }\n },\n attrs: {\n 'aria-label': expanded ? locale.collapse : locale.expand,\n noStyle: true\n }\n });\n }]\n );\n }\n\n if (needIndentSpaced) {\n return h('span', { 'class': prefixCls + '-row-expand-icon ' + prefixCls + '-row-spaced' });\n }\n\n return null;\n };\n },\n renderPagination: function renderPagination(prefixCls, paginationPosition) {\n var h = this.$createElement;\n\n // 强制不需要分页\n if (!this.hasPagination()) {\n return null;\n }\n var size = 'default';\n var pagination = this.sPagination;\n\n if (pagination.size) {\n size = pagination.size;\n } else if (this.size === 'middle' || this.size === 'small') {\n size = 'small';\n }\n var position = pagination.position || 'bottom';\n var total = pagination.total || this.filterDataCnt;\n\n var cls = pagination['class'],\n style = pagination.style,\n onChange = pagination.onChange,\n onShowSizeChange = pagination.onShowSizeChange,\n restProps = _objectWithoutProperties(pagination, ['class', 'style', 'onChange', 'onShowSizeChange']); // eslint-disable-line\n\n\n var paginationProps = mergeProps({\n key: 'pagination-' + paginationPosition,\n 'class': classNames(cls, prefixCls + '-pagination'),\n props: _extends({}, restProps, {\n total: total,\n size: size,\n current: this.getMaxCurrent(total)\n }),\n style: style,\n on: {\n change: this.handlePageChange,\n showSizeChange: this.handleShowSizeChange\n }\n });\n return total > 0 && (position === paginationPosition || position === 'both') ? h(Pagination, paginationProps) : null;\n },\n renderSelectionBox: function renderSelectionBox(type) {\n var _this9 = this;\n\n var h = this.$createElement;\n\n return function (_, record, index) {\n var rowKey = _this9.getRecordKey(record, index); // 从 1 开始\n var props = _this9.getCheckboxPropsByItem(record, index);\n var handleChange = function handleChange(e) {\n type === 'radio' ? _this9.handleRadioSelect(record, index, e) : _this9.handleSelect(record, index, e);\n };\n var selectionBoxProps = mergeProps({\n props: {\n type: type,\n store: _this9.store,\n rowIndex: rowKey,\n defaultSelection: _this9.getDefaultSelection()\n },\n on: {\n change: handleChange\n }\n }, props);\n\n return h(\n 'span',\n {\n on: {\n 'click': stopPropagation\n }\n },\n [h(SelectionBox, selectionBoxProps)]\n );\n };\n },\n renderRowSelection: function renderRowSelection(_ref3) {\n var _this10 = this;\n\n var prefixCls = _ref3.prefixCls,\n locale = _ref3.locale,\n getPopupContainer = _ref3.getPopupContainer;\n var h = this.$createElement;\n var rowSelection = this.rowSelection;\n\n var columns = this.columns.concat();\n if (rowSelection) {\n var data = this.getFlatCurrentPageData().filter(function (item, index) {\n if (rowSelection.getCheckboxProps) {\n return !_this10.getCheckboxPropsByItem(item, index).props.disabled;\n }\n return true;\n });\n var selectionColumnClass = classNames(prefixCls + '-selection-column', _defineProperty({}, prefixCls + '-selection-column-custom', rowSelection.selections));\n var selectionColumn = _defineProperty({\n key: 'selection-column',\n customRender: this.renderSelectionBox(rowSelection.type),\n className: selectionColumnClass,\n fixed: rowSelection.fixed,\n width: rowSelection.columnWidth,\n title: rowSelection.columnTitle\n }, INTERNAL_COL_DEFINE, {\n 'class': prefixCls + '-selection-col'\n });\n if (rowSelection.type !== 'radio') {\n var checkboxAllDisabled = data.every(function (item, index) {\n return _this10.getCheckboxPropsByItem(item, index).props.disabled;\n });\n selectionColumn.title = selectionColumn.title || h(SelectionCheckboxAll, {\n attrs: {\n store: this.store,\n locale: locale,\n data: data,\n getCheckboxPropsByItem: this.getCheckboxPropsByItem,\n getRecordKey: this.getRecordKey,\n disabled: checkboxAllDisabled,\n prefixCls: prefixCls,\n\n selections: rowSelection.selections,\n hideDefaultSelections: rowSelection.hideDefaultSelections,\n getPopupContainer: this.generatePopupContainerFunc(getPopupContainer)\n },\n on: {\n 'select': this.handleSelectRow\n }\n });\n }\n if ('fixed' in rowSelection) {\n selectionColumn.fixed = rowSelection.fixed;\n } else if (columns.some(function (column) {\n return column.fixed === 'left' || column.fixed === true;\n })) {\n selectionColumn.fixed = 'left';\n }\n if (columns[0] && columns[0].key === 'selection-column') {\n columns[0] = selectionColumn;\n } else {\n columns.unshift(selectionColumn);\n }\n }\n return columns;\n },\n renderColumnsDropdown: function renderColumnsDropdown(_ref4) {\n var _this11 = this;\n\n var prefixCls = _ref4.prefixCls,\n dropdownPrefixCls = _ref4.dropdownPrefixCls,\n columns = _ref4.columns,\n locale = _ref4.locale,\n getPopupContainer = _ref4.getPopupContainer;\n var h = this.$createElement;\n var sortOrder = this.sSortOrder,\n filters = this.sFilters;\n\n return treeMap(columns, function (column, i) {\n var _classNames3;\n\n var key = getColumnKey(column, i);\n var filterDropdown = void 0;\n var sortButton = void 0;\n var customHeaderCell = column.customHeaderCell;\n var isSortColumn = _this11.isSortColumn(column);\n if (column.filters && column.filters.length > 0 || column.filterDropdown) {\n var colFilters = key in filters ? filters[key] : [];\n filterDropdown = h(FilterDropdown, {\n attrs: {\n _propsSymbol: Symbol(),\n locale: locale,\n column: column,\n selectedKeys: colFilters,\n confirmFilter: _this11.handleFilter,\n prefixCls: prefixCls + '-filter',\n dropdownPrefixCls: dropdownPrefixCls || 'ant-dropdown',\n getPopupContainer: _this11.generatePopupContainerFunc(getPopupContainer)\n },\n key: 'filter-dropdown'\n });\n }\n if (column.sorter) {\n var sortDirections = column.sortDirections || _this11.sortDirections;\n var isAscend = isSortColumn && sortOrder === 'ascend';\n var isDescend = isSortColumn && sortOrder === 'descend';\n var ascend = sortDirections.indexOf('ascend') !== -1 && h(Icon, {\n 'class': prefixCls + '-column-sorter-up ' + (isAscend ? 'on' : 'off'),\n attrs: { type: 'caret-up',\n theme: 'filled'\n },\n key: 'caret-up'\n });\n\n var descend = sortDirections.indexOf('descend') !== -1 && h(Icon, {\n 'class': prefixCls + '-column-sorter-down ' + (isDescend ? 'on' : 'off'),\n attrs: { type: 'caret-down',\n theme: 'filled'\n },\n key: 'caret-down'\n });\n\n sortButton = h(\n 'div',\n {\n attrs: {\n title: locale.sortTitle\n },\n 'class': classNames(prefixCls + '-column-sorter-inner', ascend && descend && prefixCls + '-column-sorter-inner-full'),\n key: 'sorter'\n },\n [ascend, descend]\n );\n customHeaderCell = function customHeaderCell(col) {\n var colProps = {};\n // Get original first\n if (column.customHeaderCell) {\n colProps = _extends({}, column.customHeaderCell(col));\n }\n colProps.on = colProps.on || {};\n // Add sorter logic\n var onHeaderCellClick = colProps.on.click;\n colProps.on.click = function () {\n _this11.toggleSortOrder(column);\n if (onHeaderCellClick) {\n onHeaderCellClick.apply(undefined, arguments);\n }\n };\n return colProps;\n };\n }\n return _extends({}, column, {\n className: classNames(column.className, (_classNames3 = {}, _defineProperty(_classNames3, prefixCls + '-column-has-actions', sortButton || filterDropdown), _defineProperty(_classNames3, prefixCls + '-column-has-filters', filterDropdown), _defineProperty(_classNames3, prefixCls + '-column-has-sorters', sortButton), _defineProperty(_classNames3, prefixCls + '-column-sort', isSortColumn && sortOrder), _classNames3)),\n title: [h(\n 'span',\n { key: 'title', 'class': prefixCls + '-header-column' },\n [h(\n 'div',\n { 'class': sortButton ? prefixCls + '-column-sorters' : undefined },\n [h(\n 'span',\n { 'class': prefixCls + '-column-title' },\n [_this11.renderColumnTitle(column.title)]\n ), h(\n 'span',\n { 'class': prefixCls + '-column-sorter' },\n [sortButton]\n )]\n )]\n ), filterDropdown],\n customHeaderCell: customHeaderCell\n });\n });\n },\n renderColumnTitle: function renderColumnTitle(title) {\n var _$data = this.$data,\n filters = _$data.sFilters,\n sortOrder = _$data.sSortOrder,\n sortColumn = _$data.sSortColumn;\n // https://github.com/ant-design/ant-design/issues/11246#issuecomment-405009167\n\n if (title instanceof Function) {\n return title({\n filters: filters,\n sortOrder: sortOrder,\n sortColumn: sortColumn\n });\n }\n return title;\n },\n renderTable: function renderTable(_ref5) {\n var _classNames4,\n _this12 = this;\n\n var prefixCls = _ref5.prefixCls,\n renderEmpty = _ref5.renderEmpty,\n dropdownPrefixCls = _ref5.dropdownPrefixCls,\n contextLocale = _ref5.contextLocale,\n contextGetPopupContainer = _ref5.getPopupContainer,\n transformCellText = _ref5.transformCellText;\n var h = this.$createElement;\n\n var _getOptionProps = getOptionProps(this),\n showHeader = _getOptionProps.showHeader,\n locale = _getOptionProps.locale,\n getPopupContainer = _getOptionProps.getPopupContainer,\n expandIcon = _getOptionProps.expandIcon,\n restProps = _objectWithoutProperties(_getOptionProps, ['showHeader', 'locale', 'getPopupContainer', 'expandIcon']);\n\n var data = this.getCurrentPageData();\n var expandIconAsCell = this.expandedRowRender && this.expandIconAsCell !== false;\n\n // use props.getPopupContainer first\n var realGetPopupContainer = getPopupContainer || contextGetPopupContainer;\n\n // Merge too locales\n var mergedLocale = _extends({}, contextLocale, locale);\n if (!locale || !locale.emptyText) {\n mergedLocale.emptyText = renderEmpty(h, 'Table');\n }\n\n var classString = classNames((_classNames4 = {}, _defineProperty(_classNames4, prefixCls + '-' + this.size, true), _defineProperty(_classNames4, prefixCls + '-bordered', this.bordered), _defineProperty(_classNames4, prefixCls + '-empty', !data.length), _defineProperty(_classNames4, prefixCls + '-without-column-header', !showHeader), _classNames4));\n\n var columnsWithRowSelection = this.renderRowSelection({\n prefixCls: prefixCls,\n locale: mergedLocale,\n getPopupContainer: realGetPopupContainer\n });\n var columns = this.renderColumnsDropdown({\n columns: columnsWithRowSelection,\n prefixCls: prefixCls,\n dropdownPrefixCls: dropdownPrefixCls,\n locale: mergedLocale,\n getPopupContainer: realGetPopupContainer\n }).map(function (column, i) {\n var newColumn = _extends({}, column);\n newColumn.key = getColumnKey(newColumn, i);\n return newColumn;\n });\n\n var expandIconColumnIndex = columns[0] && columns[0].key === 'selection-column' ? 1 : 0;\n if ('expandIconColumnIndex' in restProps) {\n expandIconColumnIndex = restProps.expandIconColumnIndex;\n }\n var vcTableProps = {\n key: 'table',\n props: _extends({\n expandIcon: expandIcon || this.renderExpandIcon(prefixCls)\n }, restProps, {\n customRow: function customRow(record, index) {\n return _this12.onRow(prefixCls, record, index);\n },\n components: this.sComponents,\n prefixCls: prefixCls,\n data: data,\n columns: columns,\n showHeader: showHeader,\n expandIconColumnIndex: expandIconColumnIndex,\n expandIconAsCell: expandIconAsCell,\n emptyText: mergedLocale.emptyText,\n transformCellText: transformCellText\n }),\n on: getListeners(this),\n 'class': classString,\n ref: 'vcTable'\n };\n return h(VcTable, vcTableProps);\n }\n },\n\n render: function render() {\n var _this13 = this;\n\n var h = arguments[0];\n var customizePrefixCls = this.prefixCls,\n customizeDropdownPrefixCls = this.dropdownPrefixCls,\n customizeTransformCellText = this.transformCellText;\n\n var data = this.getCurrentPageData();\n var _configProvider = this.configProvider,\n getContextPopupContainer = _configProvider.getPopupContainer,\n tct = _configProvider.transformCellText;\n\n var getPopupContainer = this.getPopupContainer || getContextPopupContainer;\n var transformCellText = customizeTransformCellText || tct;\n var loading = this.loading;\n if (typeof loading === 'boolean') {\n loading = {\n props: {\n spinning: loading\n }\n };\n } else {\n loading = {\n props: _extends({}, loading)\n };\n }\n var getPrefixCls = this.configProvider.getPrefixCls;\n var renderEmpty = this.configProvider.renderEmpty;\n\n var prefixCls = getPrefixCls('table', customizePrefixCls);\n var dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n\n var table = h(LocaleReceiver, {\n attrs: {\n componentName: 'Table',\n defaultLocale: defaultLocale.Table,\n children: function children(locale) {\n return _this13.renderTable({\n prefixCls: prefixCls,\n renderEmpty: renderEmpty,\n dropdownPrefixCls: dropdownPrefixCls,\n contextLocale: locale,\n getPopupContainer: getPopupContainer,\n transformCellText: transformCellText\n });\n }\n }\n });\n\n // if there is no pagination or no data,\n // the height of spin should decrease by half of pagination\n var paginationPatchClass = this.hasPagination() && data && data.length !== 0 ? prefixCls + '-with-pagination' : prefixCls + '-without-pagination';\n var spinProps = _extends({}, loading, {\n 'class': loading.props && loading.props.spinning ? paginationPatchClass + ' ' + prefixCls + '-spin-holder' : ''\n });\n return h(\n 'div',\n { 'class': classNames(prefixCls + '-wrapper') },\n [h(\n Spin,\n spinProps,\n [this.renderPagination(prefixCls, 'top'), table, this.renderPagination(prefixCls, 'bottom')]\n )]\n );\n }\n};","import raf from 'raf';\nimport getScroll from './getScroll';\nimport { easeInOutCubic } from './easings';\n\n// interface ScrollToOptions {\n// /** Scroll container, default as window */\n// getContainer?: () => HTMLElement | Window;\n// /** Scroll end callback */\n// callback?: () => any;\n// /** Animation duration, default as 450 */\n// duration?: number;\n// }\n\nexport default function scrollTo(y) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$getContainer = options.getContainer,\n getContainer = _options$getContainer === undefined ? function () {\n return window;\n } : _options$getContainer,\n callback = options.callback,\n _options$duration = options.duration,\n duration = _options$duration === undefined ? 450 : _options$duration;\n\n\n var container = getContainer();\n var scrollTop = getScroll(container, true);\n var startTime = Date.now();\n\n var frameFunc = function frameFunc() {\n var timestamp = Date.now();\n var time = timestamp - startTime;\n var nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n if (container === window) {\n window.scrollTo(window.pageXOffset, nextScrollTop);\n } else {\n container.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n raf(frameFunc);\n}","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 isPlainObject from 'lodash/isPlainObject';\n\nvar ObjProto = Object.prototype;\nvar toString = ObjProto.toString;\nexport var hasOwn = ObjProto.hasOwnProperty;\n\nvar FN_MATCH_REGEXP = /^\\s*function (\\w+)/;\n\n// https://github.com/vuejs/vue/blob/dev/src/core/util/props.js#L159\nexport var getType = function getType(fn) {\n var type = fn !== null && fn !== undefined ? fn.type ? fn.type : fn : null;\n var match = type && type.toString().match(FN_MATCH_REGEXP);\n return match && match[1];\n};\n\nexport var getNativeType = function getNativeType(value) {\n if (value === null || value === undefined) return null;\n var match = value.constructor.toString().match(FN_MATCH_REGEXP);\n return match && match[1];\n};\n\n/**\n * No-op function\n */\nexport var noop = function noop() {};\n\n/**\n * Checks for a own property in an object\n *\n * @param {object} obj - Object\n * @param {string} prop - Property to check\n */\nexport var has = function has(obj, prop) {\n return hasOwn.call(obj, prop);\n};\n\n/**\n * Determines whether the passed value is an integer. Uses `Number.isInteger` if available\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean}\n */\nexport var isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to be tested for being an array.\n * @returns {boolean}\n */\nexport var isArray = Array.isArray || function (value) {\n return toString.call(value) === '[object Array]';\n};\n\n/**\n * Checks if a value is a function\n *\n * @param {any} value - Value to check\n * @returns {boolean}\n */\nexport var isFunction = function isFunction(value) {\n return toString.call(value) === '[object Function]';\n};\n\n/**\n * Adds a `def` method to the object returning a new object with passed in argument as `default` property\n *\n * @param {object} type - Object to enhance\n */\nexport var withDefault = function withDefault(type) {\n Object.defineProperty(type, 'def', {\n value: function value(def) {\n if (def === undefined && this['default'] === undefined) {\n this['default'] = undefined;\n return this;\n }\n if (!isFunction(def) && !validateType(this, def)) {\n warn(this._vueTypes_name + ' - invalid default value: \"' + def + '\"', def);\n return this;\n }\n this['default'] = isArray(def) || isPlainObject(def) ? function () {\n return def;\n } : def;\n\n return this;\n },\n\n enumerable: false,\n writable: false\n });\n};\n\n/**\n * Adds a `isRequired` getter returning a new object with `required: true` key-value\n *\n * @param {object} type - Object to enhance\n */\nexport var withRequired = function withRequired(type) {\n Object.defineProperty(type, 'isRequired', {\n get: function get() {\n this.required = true;\n return this;\n },\n\n enumerable: false\n });\n};\n\n/**\n * Adds `isRequired` and `def` modifiers to an object\n *\n * @param {string} name - Type internal name\n * @param {object} obj - Object to enhance\n * @returns {object}\n */\nexport var toType = function toType(name, obj) {\n Object.defineProperty(obj, '_vueTypes_name', {\n enumerable: false,\n writable: false,\n value: name\n });\n withRequired(obj);\n withDefault(obj);\n\n if (isFunction(obj.validator)) {\n obj.validator = obj.validator.bind(obj);\n }\n return obj;\n};\n\n/**\n * Validates a given value against a prop type object\n *\n * @param {Object|*} type - Type to use for validation. Either a type object or a constructor\n * @param {*} value - Value to check\n * @param {boolean} silent - Silence warnings\n * @returns {boolean}\n */\nexport var validateType = function validateType(type, value) {\n var silent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var typeToCheck = type;\n var valid = true;\n var expectedType = void 0;\n if (!isPlainObject(type)) {\n typeToCheck = { type: type };\n }\n var namePrefix = typeToCheck._vueTypes_name ? typeToCheck._vueTypes_name + ' - ' : '';\n\n if (hasOwn.call(typeToCheck, 'type') && typeToCheck.type !== null) {\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(function (type) {\n return validateType(type, value, true);\n });\n expectedType = typeToCheck.type.map(function (type) {\n return getType(type);\n }).join(' or ');\n } else {\n expectedType = getType(typeToCheck);\n\n if (expectedType === 'Array') {\n valid = isArray(value);\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'String' || expectedType === 'Number' || expectedType === 'Boolean' || expectedType === 'Function') {\n valid = getNativeType(value) === expectedType;\n } else {\n valid = value instanceof typeToCheck.type;\n }\n }\n }\n\n if (!valid) {\n silent === false && warn(namePrefix + 'value \"' + value + '\" should be of type \"' + expectedType + '\"');\n return false;\n }\n\n if (hasOwn.call(typeToCheck, 'validator') && isFunction(typeToCheck.validator)) {\n valid = typeToCheck.validator(value);\n if (!valid && silent === false) warn(namePrefix + 'custom validation failed');\n return valid;\n }\n return valid;\n};\n\nvar warn = noop;\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n warn = function warn(msg) {\n if (hasConsole) {\n console.warn('[VueTypes warn]: ' + msg);\n }\n };\n}\n\nexport { warn };","import _typeof from 'babel-runtime/helpers/typeof';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { toType, getType, isFunction, validateType, isInteger, isArray, warn } from './utils';\n\nvar VuePropTypes = {\n get any() {\n return toType('any', {\n type: null\n });\n },\n\n get func() {\n return toType('function', {\n type: Function\n }).def(currentDefaults.func);\n },\n\n get bool() {\n return toType('boolean', {\n type: Boolean\n }).def(currentDefaults.bool);\n },\n\n get string() {\n return toType('string', {\n type: String\n }).def(currentDefaults.string);\n },\n\n get number() {\n return toType('number', {\n type: Number\n }).def(currentDefaults.number);\n },\n\n get array() {\n return toType('array', {\n type: Array\n }).def(currentDefaults.array);\n },\n\n get object() {\n return toType('object', {\n type: Object\n }).def(currentDefaults.object);\n },\n\n get integer() {\n return toType('integer', {\n type: Number,\n validator: function validator(value) {\n return isInteger(value);\n }\n }).def(currentDefaults.integer);\n },\n\n get symbol() {\n return toType('symbol', {\n type: null,\n validator: function validator(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'symbol';\n }\n });\n },\n\n custom: function custom(validatorFn) {\n var warnMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'custom validation failed';\n\n if (typeof validatorFn !== 'function') {\n throw new TypeError('[VueTypes error]: You must provide a function as argument');\n }\n\n return toType(validatorFn.name || '<>', {\n validator: function validator() {\n var valid = validatorFn.apply(undefined, arguments);\n if (!valid) warn(this._vueTypes_name + ' - ' + warnMsg);\n return valid;\n }\n });\n },\n oneOf: function oneOf(arr) {\n if (!isArray(arr)) {\n throw new TypeError('[VueTypes error]: You must provide an array as argument');\n }\n var msg = 'oneOf - value should be one of \"' + arr.join('\", \"') + '\"';\n var allowedTypes = arr.reduce(function (ret, v) {\n if (v !== null && v !== undefined) {\n ret.indexOf(v.constructor) === -1 && ret.push(v.constructor);\n }\n return ret;\n }, []);\n\n return toType('oneOf', {\n type: allowedTypes.length > 0 ? allowedTypes : null,\n validator: function validator(value) {\n var valid = arr.indexOf(value) !== -1;\n if (!valid) warn(msg);\n return valid;\n }\n });\n },\n instanceOf: function instanceOf(instanceConstructor) {\n return toType('instanceOf', {\n type: instanceConstructor\n });\n },\n oneOfType: function oneOfType(arr) {\n if (!isArray(arr)) {\n throw new TypeError('[VueTypes error]: You must provide an array as argument');\n }\n\n var hasCustomValidators = false;\n\n var nativeChecks = arr.reduce(function (ret, type) {\n if (isPlainObject(type)) {\n if (type._vueTypes_name === 'oneOf') {\n return ret.concat(type.type || []);\n }\n if (type.type && !isFunction(type.validator)) {\n if (isArray(type.type)) return ret.concat(type.type);\n ret.push(type.type);\n } else if (isFunction(type.validator)) {\n hasCustomValidators = true;\n }\n return ret;\n }\n ret.push(type);\n return ret;\n }, []);\n\n if (!hasCustomValidators) {\n // we got just native objects (ie: Array, Object)\n // delegate to Vue native prop check\n return toType('oneOfType', {\n type: nativeChecks\n }).def(undefined);\n }\n\n var typesStr = arr.map(function (type) {\n if (type && isArray(type.type)) {\n return type.type.map(getType);\n }\n return getType(type);\n }).reduce(function (ret, type) {\n return ret.concat(isArray(type) ? type : [type]);\n }, []).join('\", \"');\n\n return this.custom(function oneOfType(value) {\n var valid = arr.some(function (type) {\n if (type._vueTypes_name === 'oneOf') {\n return type.type ? validateType(type.type, value, true) : true;\n }\n return validateType(type, value, true);\n });\n if (!valid) warn('oneOfType - value type should be one of \"' + typesStr + '\"');\n return valid;\n }).def(undefined);\n },\n arrayOf: function arrayOf(type) {\n return toType('arrayOf', {\n type: Array,\n validator: function validator(values) {\n var valid = values.every(function (value) {\n return validateType(type, value);\n });\n if (!valid) warn('arrayOf - value must be an array of \"' + getType(type) + '\"');\n return valid;\n }\n });\n },\n objectOf: function objectOf(type) {\n return toType('objectOf', {\n type: Object,\n validator: function validator(obj) {\n var valid = Object.keys(obj).every(function (key) {\n return validateType(type, obj[key]);\n });\n if (!valid) warn('objectOf - value must be an object of \"' + getType(type) + '\"');\n return valid;\n }\n });\n },\n shape: function shape(obj) {\n var keys = Object.keys(obj);\n var requiredKeys = keys.filter(function (key) {\n return obj[key] && obj[key].required === true;\n });\n\n var type = toType('shape', {\n type: Object,\n validator: function validator(value) {\n var _this = this;\n\n if (!isPlainObject(value)) {\n return false;\n }\n var valueKeys = Object.keys(value);\n\n // check for required keys (if any)\n if (requiredKeys.length > 0 && requiredKeys.some(function (req) {\n return valueKeys.indexOf(req) === -1;\n })) {\n warn('shape - at least one of required properties \"' + requiredKeys.join('\", \"') + '\" is not present');\n return false;\n }\n\n return valueKeys.every(function (key) {\n if (keys.indexOf(key) === -1) {\n if (_this._vueTypes_isLoose === true) return true;\n warn('shape - object is missing \"' + key + '\" property');\n return false;\n }\n var type = obj[key];\n return validateType(type, value[key]);\n });\n }\n });\n\n Object.defineProperty(type, '_vueTypes_isLoose', {\n enumerable: false,\n writable: true,\n value: false\n });\n\n Object.defineProperty(type, 'loose', {\n get: function get() {\n this._vueTypes_isLoose = true;\n return this;\n },\n\n enumerable: false\n });\n\n return type;\n }\n};\n\nvar typeDefaults = function typeDefaults() {\n return {\n func: undefined,\n bool: undefined,\n string: undefined,\n number: undefined,\n array: undefined,\n object: undefined,\n integer: undefined\n };\n};\n\nvar currentDefaults = typeDefaults();\n\nObject.defineProperty(VuePropTypes, 'sensibleDefaults', {\n enumerable: false,\n set: function set(value) {\n if (value === false) {\n currentDefaults = {};\n } else if (value === true) {\n currentDefaults = typeDefaults();\n } else if (isPlainObject(value)) {\n currentDefaults = value;\n }\n },\n get: function get() {\n return currentDefaults;\n }\n});\n\nexport default VuePropTypes;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport KeyCode from '../_util/KeyCode';\nimport BaseMixin from '../_util/BaseMixin';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport { connect } from '../_util/store';\nimport { noop, menuAllProps } from './util';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\n\nvar props = {\n attribute: PropTypes.object,\n rootPrefixCls: PropTypes.string,\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n active: PropTypes.bool,\n selectedKeys: PropTypes.array,\n disabled: PropTypes.bool,\n title: PropTypes.any,\n index: PropTypes.number,\n inlineIndent: PropTypes.number.def(24),\n level: PropTypes.number.def(1),\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']).def('vertical'),\n parentMenu: PropTypes.object,\n multiple: PropTypes.bool,\n value: PropTypes.any,\n isSelected: PropTypes.bool,\n manualRef: PropTypes.func.def(noop),\n role: PropTypes.any,\n subMenuKey: PropTypes.string,\n itemIcon: PropTypes.any\n // clearSubMenuTimers: PropTypes.func.def(noop),\n};\nvar MenuItem = {\n name: 'MenuItem',\n props: props,\n mixins: [BaseMixin],\n isMenuItem: true,\n created: function created() {\n this.prevActive = this.active;\n // invoke customized ref to expose component to mixin\n this.callRef();\n },\n updated: function updated() {\n var _this = this;\n\n this.$nextTick(function () {\n var _$props = _this.$props,\n active = _$props.active,\n parentMenu = _$props.parentMenu,\n eventKey = _$props.eventKey;\n\n if (!_this.prevActive && active && (!parentMenu || !parentMenu['scrolled-' + eventKey])) {\n scrollIntoView(_this.$el, _this.parentMenu.$el, {\n onlyScrollIfNeeded: true\n });\n parentMenu['scrolled-' + eventKey] = true;\n } else if (parentMenu && parentMenu['scrolled-' + eventKey]) {\n delete parentMenu['scrolled-' + eventKey];\n }\n _this.prevActive = active;\n });\n this.callRef();\n },\n beforeDestroy: function beforeDestroy() {\n var props = this.$props;\n this.__emit('destroy', props.eventKey);\n },\n\n methods: {\n onKeyDown: function onKeyDown(e) {\n var keyCode = e.keyCode;\n if (keyCode === KeyCode.ENTER) {\n this.onClick(e);\n return true;\n }\n },\n onMouseLeave: function onMouseLeave(e) {\n var eventKey = this.$props.eventKey;\n\n this.__emit('itemHover', {\n key: eventKey,\n hover: false\n });\n this.__emit('mouseleave', {\n key: eventKey,\n domEvent: e\n });\n },\n onMouseEnter: function onMouseEnter(e) {\n var eventKey = this.eventKey;\n\n this.__emit('itemHover', {\n key: eventKey,\n hover: true\n });\n this.__emit('mouseenter', {\n key: eventKey,\n domEvent: e\n });\n },\n onClick: function onClick(e) {\n var _$props2 = this.$props,\n eventKey = _$props2.eventKey,\n multiple = _$props2.multiple,\n isSelected = _$props2.isSelected;\n\n var info = {\n key: eventKey,\n keyPath: [eventKey],\n item: this,\n domEvent: e\n };\n\n this.__emit('click', info);\n if (multiple) {\n if (isSelected) {\n this.__emit('deselect', info);\n } else {\n this.__emit('select', info);\n }\n } else if (!isSelected) {\n this.__emit('select', info);\n }\n },\n getPrefixCls: function getPrefixCls() {\n return this.$props.rootPrefixCls + '-item';\n },\n getActiveClassName: function getActiveClassName() {\n return this.getPrefixCls() + '-active';\n },\n getSelectedClassName: function getSelectedClassName() {\n return this.getPrefixCls() + '-selected';\n },\n getDisabledClassName: function getDisabledClassName() {\n return this.getPrefixCls() + '-disabled';\n },\n callRef: function callRef() {\n if (this.manualRef) {\n this.manualRef(this);\n }\n }\n },\n\n render: function render() {\n var _className;\n\n var h = arguments[0];\n\n var props = _extends({}, this.$props);\n var className = (_className = {}, _defineProperty(_className, this.getPrefixCls(), true), _defineProperty(_className, this.getActiveClassName(), !props.disabled && props.active), _defineProperty(_className, this.getSelectedClassName(), props.isSelected), _defineProperty(_className, this.getDisabledClassName(), props.disabled), _className);\n var attrs = _extends({}, props.attribute, {\n title: props.title,\n role: props.role || 'menuitem',\n 'aria-disabled': props.disabled\n });\n if (props.role === 'option') {\n // overwrite to option\n attrs = _extends({}, attrs, {\n role: 'option',\n 'aria-selected': props.isSelected\n });\n } else if (props.role === null || props.role === 'none') {\n // sometimes we want to specify role inside element\n // Link would be a good example\n // in this case the role on should be \"none\" to\n // remove the implied listitem role.\n // https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html\n attrs.role = 'none';\n }\n // In case that onClick/onMouseLeave/onMouseEnter is passed down from owner\n var mouseEvent = {\n click: props.disabled ? noop : this.onClick,\n mouseleave: props.disabled ? noop : this.onMouseLeave,\n mouseenter: props.disabled ? noop : this.onMouseEnter\n };\n\n var style = {};\n if (props.mode === 'inline') {\n style.paddingLeft = props.inlineIndent * props.level + 'px';\n }\n var listeners = _extends({}, getListeners(this));\n menuAllProps.props.forEach(function (key) {\n return delete props[key];\n });\n menuAllProps.on.forEach(function (key) {\n return delete listeners[key];\n });\n var liProps = {\n attrs: _extends({}, props, attrs),\n on: _extends({}, listeners, mouseEvent)\n };\n return h(\n 'li',\n _mergeJSXProps([liProps, { style: style, 'class': className }]),\n [this.$slots['default'], getComponentFromProp(this, 'itemIcon', props)]\n );\n }\n};\n\nvar connected = connect(function (_ref, _ref2) {\n var activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n active: activeKey[subMenuKey] === eventKey,\n isSelected: selectedKeys.indexOf(eventKey) !== -1\n };\n})(MenuItem);\n\nexport default connected;\nexport { props as menuItemProps };","import _extends from 'babel-runtime/helpers/extends';\nimport { SubMenu as VcSubMenu } from '../vc-menu';\nimport { getListeners } from '../_util/props-util';\nimport classNames from 'classnames';\n\nexport default {\n name: 'ASubMenu',\n isSubMenu: true,\n props: _extends({}, VcSubMenu.props),\n inject: {\n menuPropsContext: { 'default': function _default() {\n return {};\n } }\n },\n methods: {\n onKeyDown: function onKeyDown(e) {\n this.$refs.subMenu.onKeyDown(e);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots,\n $scopedSlots = this.$scopedSlots;\n var _$props = this.$props,\n rootPrefixCls = _$props.rootPrefixCls,\n popupClassName = _$props.popupClassName;\n var antdMenuTheme = this.menuPropsContext.theme;\n\n var props = {\n props: _extends({}, this.$props, {\n popupClassName: classNames(rootPrefixCls + '-' + antdMenuTheme, popupClassName)\n }),\n ref: 'subMenu',\n on: getListeners(this),\n scopedSlots: $scopedSlots\n };\n var slotsKey = Object.keys($slots);\n return h(\n VcSubMenu,\n props,\n [slotsKey.length ? slotsKey.map(function (name) {\n return h(\n 'template',\n { slot: name },\n [$slots[name]]\n );\n }) : null]\n );\n }\n};","import cssAnimation from './css-animation';\nimport raf from 'raf';\nimport Vue from 'vue';\n\nfunction animate(node, show, done) {\n var height = void 0;\n var requestAnimationFrameId = void 0;\n var appearRequestAnimationFrameId = void 0;\n return cssAnimation(node, 'ant-motion-collapse-legacy', {\n start: function start() {\n if (appearRequestAnimationFrameId) {\n raf.cancel(appearRequestAnimationFrameId);\n }\n if (!show) {\n node.style.height = node.offsetHeight + 'px';\n node.style.opacity = '1';\n } else {\n height = node.offsetHeight;\n // not get offsetHeight when appear\n // set it into raf get correct offsetHeight\n if (height === 0) {\n appearRequestAnimationFrameId = raf(function () {\n height = node.offsetHeight;\n node.style.height = '0px';\n node.style.opacity = '0';\n });\n } else {\n node.style.height = '0px';\n node.style.opacity = '0';\n }\n }\n },\n active: function active() {\n if (requestAnimationFrameId) {\n raf.cancel(requestAnimationFrameId);\n }\n requestAnimationFrameId = raf(function () {\n node.style.height = (show ? height : 0) + 'px';\n node.style.opacity = show ? '1' : '0';\n });\n },\n end: function end() {\n if (appearRequestAnimationFrameId) {\n raf.cancel(appearRequestAnimationFrameId);\n }\n if (requestAnimationFrameId) {\n raf.cancel(requestAnimationFrameId);\n }\n node.style.height = '';\n node.style.opacity = '';\n done && done();\n }\n });\n}\n\nvar animation = {\n enter: function enter(node, done) {\n Vue.nextTick(function () {\n animate(node, true, done);\n });\n },\n leave: function leave(node, done) {\n return animate(node, false, done);\n }\n};\n\nexport default animation;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport { Item, itemProps } from '../vc-menu';\nimport { getOptionProps, getListeners } from '../_util/props-util';\nimport Tooltip from '../tooltip';\nfunction noop() {}\nexport default {\n name: 'MenuItem',\n inheritAttrs: false,\n props: itemProps,\n inject: {\n getInlineCollapsed: { 'default': function _default() {\n return noop;\n } },\n layoutSiderContext: { 'default': function _default() {\n return {};\n } }\n },\n isMenuItem: true,\n methods: {\n onKeyDown: function onKeyDown(e) {\n this.$refs.menuItem.onKeyDown(e);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var level = props.level,\n title = props.title,\n rootPrefixCls = props.rootPrefixCls;\n var getInlineCollapsed = this.getInlineCollapsed,\n $slots = this.$slots,\n attrs = this.$attrs;\n\n var inlineCollapsed = getInlineCollapsed();\n var tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = level === 1 ? $slots['default'] : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n var tooltipProps = {\n title: tooltipTitle\n };\n var siderCollapsed = this.layoutSiderContext.sCollapsed;\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null;\n // Reset `visible` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.visible = false;\n }\n\n var itemProps = {\n props: _extends({}, props, {\n title: title\n }),\n attrs: attrs,\n on: getListeners(this)\n };\n var toolTipProps = {\n props: _extends({}, tooltipProps, {\n placement: 'right',\n overlayClassName: rootPrefixCls + '-inline-collapsed-tooltip'\n })\n };\n return h(\n Tooltip,\n toolTipProps,\n [h(\n Item,\n _mergeJSXProps([itemProps, { ref: 'menuItem' }]),\n [$slots['default']]\n )]\n );\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 omit from 'omit.js';\nimport VcMenu, { Divider, ItemGroup } from '../vc-menu';\nimport SubMenu from './SubMenu';\nimport PropTypes from '../_util/vue-types';\nimport animation from '../_util/openAnimation';\nimport warning from '../_util/warning';\nimport Item from './MenuItem';\nimport { hasProp, getListeners, getOptionProps } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\nimport commonPropsType from '../vc-menu/commonPropsType';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Base from '../base';\n// import raf from '../_util/raf';\n\nexport var MenuMode = PropTypes.oneOf(['vertical', 'vertical-left', 'vertical-right', 'horizontal', 'inline']);\n\nexport var menuProps = _extends({}, commonPropsType, {\n theme: PropTypes.oneOf(['light', 'dark']).def('light'),\n mode: MenuMode.def('vertical'),\n selectable: PropTypes.bool,\n selectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n defaultSelectedKeys: PropTypes.array,\n openKeys: PropTypes.array,\n defaultOpenKeys: PropTypes.array,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n openTransitionName: PropTypes.string,\n prefixCls: PropTypes.string,\n multiple: PropTypes.bool,\n inlineIndent: PropTypes.number.def(24),\n inlineCollapsed: PropTypes.bool,\n isRootMenu: PropTypes.bool.def(true),\n focusable: PropTypes.bool.def(false)\n});\n\nvar Menu = {\n name: 'AMenu',\n props: menuProps,\n Divider: _extends({}, Divider, { name: 'AMenuDivider' }),\n Item: _extends({}, Item, { name: 'AMenuItem' }),\n SubMenu: _extends({}, SubMenu, { name: 'ASubMenu' }),\n ItemGroup: _extends({}, ItemGroup, { name: 'AMenuItemGroup' }),\n provide: function provide() {\n return {\n getInlineCollapsed: this.getInlineCollapsed,\n menuPropsContext: this.$props\n };\n },\n\n mixins: [BaseMixin],\n inject: {\n layoutSiderContext: { 'default': function _default() {\n return {};\n } },\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n model: {\n prop: 'selectedKeys',\n event: 'selectChange'\n },\n updated: function updated() {\n this.propsUpdating = false;\n },\n\n // beforeDestroy() {\n // raf.cancel(this.mountRafId);\n // },\n watch: {\n mode: function mode(val, oldVal) {\n if (oldVal === 'inline' && val !== 'inline') {\n this.switchingModeFromInline = true;\n }\n },\n openKeys: function openKeys(val) {\n this.setState({ sOpenKeys: val });\n },\n inlineCollapsed: function inlineCollapsed(val) {\n this.collapsedChange(val);\n },\n 'layoutSiderContext.sCollapsed': function layoutSiderContextSCollapsed(val) {\n this.collapsedChange(val);\n }\n },\n data: function data() {\n var props = getOptionProps(this);\n warning(!('inlineCollapsed' in props && props.mode !== 'inline'), 'Menu', \"`inlineCollapsed` should only be used when Menu's `mode` is inline.\");\n this.switchingModeFromInline = false;\n this.leaveAnimationExecutedWhenInlineCollapsed = false;\n this.inlineOpenKeys = [];\n var sOpenKeys = void 0;\n\n if ('openKeys' in props) {\n sOpenKeys = props.openKeys;\n } else if ('defaultOpenKeys' in props) {\n sOpenKeys = props.defaultOpenKeys;\n }\n return {\n sOpenKeys: sOpenKeys\n };\n },\n\n methods: {\n collapsedChange: function collapsedChange(val) {\n if (this.propsUpdating) {\n return;\n }\n this.propsUpdating = true;\n if (!hasProp(this, 'openKeys')) {\n if (val) {\n this.switchingModeFromInline = true;\n this.inlineOpenKeys = this.sOpenKeys;\n this.setState({ sOpenKeys: [] });\n } else {\n this.setState({ sOpenKeys: this.inlineOpenKeys });\n this.inlineOpenKeys = [];\n }\n } else if (val) {\n // 缩起时,openKeys置为空的动画会闪动,react可以通过是否传递openKeys避免闪动,vue不是很方便动态传递openKeys\n this.switchingModeFromInline = true;\n }\n },\n restoreModeVerticalFromInline: function restoreModeVerticalFromInline() {\n if (this.switchingModeFromInline) {\n this.switchingModeFromInline = false;\n this.$forceUpdate();\n }\n },\n\n // Restore vertical mode when menu is collapsed responsively when mounted\n // https://github.com/ant-design/ant-design/issues/13104\n // TODO: not a perfect solution, looking a new way to avoid setting switchingModeFromInline in this situation\n handleMouseEnter: function handleMouseEnter(e) {\n this.restoreModeVerticalFromInline();\n this.$emit('mouseenter', e);\n },\n handleTransitionEnd: function handleTransitionEnd(e) {\n // when inlineCollapsed menu width animation finished\n // https://github.com/ant-design/ant-design/issues/12864\n var widthCollapsed = e.propertyName === 'width' && e.target === e.currentTarget;\n\n // Fix SVGElement e.target.className.indexOf is not a function\n // https://github.com/ant-design/ant-design/issues/15699\n var className = e.target.className;\n // SVGAnimatedString.animVal should be identical to SVGAnimatedString.baseVal, unless during an animation.\n\n var classNameValue = Object.prototype.toString.call(className) === '[object SVGAnimatedString]' ? className.animVal : className;\n\n // Fix for , the width transition won't trigger when menu is collapsed\n // https://github.com/ant-design/ant-design-pro/issues/2783\n var iconScaled = e.propertyName === 'font-size' && classNameValue.indexOf('anticon') >= 0;\n\n if (widthCollapsed || iconScaled) {\n this.restoreModeVerticalFromInline();\n }\n },\n handleClick: function handleClick(e) {\n this.handleOpenChange([]);\n this.$emit('click', e);\n },\n handleSelect: function handleSelect(info) {\n this.$emit('select', info);\n this.$emit('selectChange', info.selectedKeys);\n },\n handleDeselect: function handleDeselect(info) {\n this.$emit('deselect', info);\n this.$emit('selectChange', info.selectedKeys);\n },\n handleOpenChange: function handleOpenChange(openKeys) {\n this.setOpenKeys(openKeys);\n this.$emit('openChange', openKeys);\n this.$emit('update:openKeys', openKeys);\n },\n setOpenKeys: function setOpenKeys(openKeys) {\n if (!hasProp(this, 'openKeys')) {\n this.setState({ sOpenKeys: openKeys });\n }\n },\n getRealMenuMode: function getRealMenuMode() {\n var inlineCollapsed = this.getInlineCollapsed();\n if (this.switchingModeFromInline && inlineCollapsed) {\n return 'inline';\n }\n var mode = this.$props.mode;\n\n return inlineCollapsed ? 'vertical' : mode;\n },\n getInlineCollapsed: function getInlineCollapsed() {\n var inlineCollapsed = this.$props.inlineCollapsed;\n\n if (this.layoutSiderContext.sCollapsed !== undefined) {\n return this.layoutSiderContext.sCollapsed;\n }\n return inlineCollapsed;\n },\n getMenuOpenAnimation: function getMenuOpenAnimation(menuMode) {\n var _$props = this.$props,\n openAnimation = _$props.openAnimation,\n openTransitionName = _$props.openTransitionName;\n\n var menuOpenAnimation = openAnimation || openTransitionName;\n if (openAnimation === undefined && openTransitionName === undefined) {\n if (menuMode === 'horizontal') {\n menuOpenAnimation = 'slide-up';\n } else if (menuMode === 'inline') {\n menuOpenAnimation = { on: animation };\n } else {\n // When mode switch from inline\n // submenu should hide without animation\n if (this.switchingModeFromInline) {\n menuOpenAnimation = '';\n this.switchingModeFromInline = false;\n } else {\n menuOpenAnimation = 'zoom-big';\n }\n }\n }\n return menuOpenAnimation;\n }\n },\n render: function render() {\n var _menuClassName,\n _this = this;\n\n var h = arguments[0];\n var layoutSiderContext = this.layoutSiderContext,\n $slots = this.$slots;\n var collapsedWidth = layoutSiderContext.collapsedWidth;\n var getContextPopupContainer = this.configProvider.getPopupContainer;\n\n var props = getOptionProps(this);\n var customizePrefixCls = props.prefixCls,\n theme = props.theme,\n getPopupContainer = props.getPopupContainer;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var menuMode = this.getRealMenuMode();\n var menuOpenAnimation = this.getMenuOpenAnimation(menuMode);\n\n var menuClassName = (_menuClassName = {}, _defineProperty(_menuClassName, prefixCls + '-' + theme, true), _defineProperty(_menuClassName, prefixCls + '-inline-collapsed', this.getInlineCollapsed()), _menuClassName);\n\n var menuProps = {\n props: _extends({}, omit(props, ['inlineCollapsed']), {\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n openKeys: this.sOpenKeys,\n mode: menuMode,\n prefixCls: prefixCls\n }),\n on: _extends({}, getListeners(this), {\n select: this.handleSelect,\n deselect: this.handleDeselect,\n openChange: this.handleOpenChange,\n mouseenter: this.handleMouseEnter\n }),\n nativeOn: {\n transitionend: this.handleTransitionEnd\n }\n };\n if (!hasProp(this, 'selectedKeys')) {\n delete menuProps.props.selectedKeys;\n }\n\n if (menuMode !== 'inline') {\n // closing vertical popup submenu after click it\n menuProps.on.click = this.handleClick;\n menuProps.props.openTransitionName = menuOpenAnimation;\n } else {\n menuProps.on.click = function (e) {\n _this.$emit('click', e);\n };\n menuProps.props.openAnimation = menuOpenAnimation;\n }\n\n // https://github.com/ant-design/ant-design/issues/8587\n var hideMenu = this.getInlineCollapsed() && (collapsedWidth === 0 || collapsedWidth === '0' || collapsedWidth === '0px');\n if (hideMenu) {\n menuProps.props.openKeys = [];\n }\n\n return h(\n VcMenu,\n _mergeJSXProps([menuProps, { 'class': menuClassName }]),\n [$slots['default']]\n );\n }\n};\n\n/* istanbul ignore next */\nMenu.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Menu.name, Menu);\n Vue.component(Menu.Item.name, Menu.Item);\n Vue.component(Menu.SubMenu.name, Menu.SubMenu);\n Vue.component(Menu.Divider.name, Menu.Divider);\n Vue.component(Menu.ItemGroup.name, Menu.ItemGroup);\n};\nexport default Menu;","import _extends from 'babel-runtime/helpers/extends';\nimport Notification from '../vc-notification';\nimport Icon from '../icon';\n\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = '24px';\nvar defaultBottom = '24px';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer = function defaultGetContainer() {\n return document.body;\n};\nvar defaultCloseIcon = null;\n\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon;\n\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n }\n if (bottom !== undefined) {\n defaultBottom = typeof bottom === 'number' ? bottom + 'px' : bottom;\n }\n if (top !== undefined) {\n defaultTop = typeof top === 'number' ? top + 'px' : top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n}\n\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n\n var style = void 0;\n switch (placement) {\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n return style;\n}\n\nfunction getNotificationInstance(_ref, callback) {\n var prefixCls = _ref.prefixCls,\n _ref$placement = _ref.placement,\n placement = _ref$placement === undefined ? defaultPlacement : _ref$placement,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === undefined ? defaultGetContainer : _ref$getContainer,\n top = _ref.top,\n bottom = _ref.bottom,\n _ref$closeIcon = _ref.closeIcon,\n _closeIcon = _ref$closeIcon === undefined ? defaultCloseIcon : _ref$closeIcon;\n\n var cacheKey = prefixCls + '-' + placement;\n if (notificationInstance[cacheKey]) {\n callback(notificationInstance[cacheKey]);\n return;\n }\n Notification.newInstance({\n prefixCls: prefixCls,\n 'class': prefixCls + '-' + placement,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n closeIcon: function closeIcon(h) {\n var icon = typeof _closeIcon === 'function' ? _closeIcon(h) : _closeIcon;\n var closeIconToRender = h(\n 'span',\n { 'class': prefixCls + '-close-x' },\n [icon || h(Icon, { 'class': prefixCls + '-close-icon', attrs: { type: 'close' }\n })]\n );\n return closeIconToRender;\n }\n }, function (notification) {\n notificationInstance[cacheKey] = notification;\n callback(notification);\n });\n}\n\nvar typeToIcon = {\n success: 'check-circle-o',\n info: 'info-circle-o',\n error: 'close-circle-o',\n warning: 'exclamation-circle-o'\n};\n\nfunction notice(args) {\n var icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn;\n\n var outerPrefixCls = args.prefixCls || 'ant-notification';\n var prefixCls = outerPrefixCls + '-notice';\n var duration = args.duration === undefined ? defaultDuration : args.duration;\n\n var iconNode = null;\n if (icon) {\n iconNode = function iconNode(h) {\n return h(\n 'span',\n { 'class': prefixCls + '-icon' },\n [typeof icon === 'function' ? icon(h) : icon]\n );\n };\n } else if (type) {\n var iconType = typeToIcon[type];\n iconNode = function iconNode(h) {\n return h(Icon, { 'class': prefixCls + '-icon ' + prefixCls + '-icon-' + type, attrs: { type: iconType }\n });\n }; // eslint-disable-line\n }\n var placement = args.placement,\n top = args.top,\n bottom = args.bottom,\n getContainer = args.getContainer,\n closeIcon = args.closeIcon;\n\n getNotificationInstance({\n prefixCls: outerPrefixCls,\n placement: placement,\n top: top,\n bottom: bottom,\n getContainer: getContainer,\n closeIcon: closeIcon\n }, function (notification) {\n notification.notice({\n content: function content(h) {\n return h(\n 'div',\n { 'class': iconNode ? prefixCls + '-with-icon' : '' },\n [iconNode && iconNode(h), h(\n 'div',\n { 'class': prefixCls + '-message' },\n [!description && iconNode ? h('span', { 'class': prefixCls + '-message-single-line-auto-margin' }) : null, typeof message === 'function' ? message(h) : message]\n ), h(\n 'div',\n { 'class': prefixCls + '-description' },\n [typeof description === 'function' ? description(h) : description]\n ), btn ? h(\n 'span',\n { 'class': prefixCls + '-btn' },\n [typeof btn === 'function' ? btn(h) : btn]\n ) : null]\n );\n },\n duration: duration,\n closable: true,\n onClose: args.onClose,\n onClick: args.onClick,\n key: args.key,\n style: args.style || {},\n 'class': args['class']\n });\n });\n}\n\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return notificationInstance[cacheKey].removeNotice(key);\n });\n },\n\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n notificationInstance[cacheKey].destroy();\n delete notificationInstance[cacheKey];\n });\n }\n};\n\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends({}, args, {\n type: type\n }));\n };\n});\n\napi.warn = api.warning;\nexport default api;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from './vue-types';\nimport { getOptionProps, getListeners } from './props-util';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.name || 'Component';\n}\nexport default function wrapWithConnect(WrappedComponent) {\n var tempProps = WrappedComponent.props || {};\n var methods = WrappedComponent.methods || {};\n var props = {};\n Object.keys(tempProps).forEach(function (k) {\n props[k] = _extends({}, tempProps[k], { required: false });\n });\n WrappedComponent.props.__propsSymbol__ = PropTypes.any;\n WrappedComponent.props.children = PropTypes.array.def([]);\n var ProxyWrappedComponent = {\n props: props,\n model: WrappedComponent.model,\n name: 'Proxy_' + getDisplayName(WrappedComponent),\n methods: {\n getProxyWrappedInstance: function getProxyWrappedInstance() {\n return this.$refs.wrappedInstance;\n }\n },\n render: function render() {\n var h = arguments[0];\n var _$slots = this.$slots,\n $slots = _$slots === undefined ? {} : _$slots,\n $scopedSlots = this.$scopedSlots;\n\n var props = getOptionProps(this);\n var wrapProps = {\n props: _extends({}, props, {\n __propsSymbol__: Symbol(),\n componentWillReceiveProps: _extends({}, props),\n children: $slots['default'] || props.children || []\n }),\n on: getListeners(this)\n };\n if (Object.keys($scopedSlots).length) {\n wrapProps.scopedSlots = $scopedSlots;\n }\n var slotsKey = Object.keys($slots);\n return h(\n WrappedComponent,\n _mergeJSXProps([wrapProps, { ref: 'wrappedInstance' }]),\n [slotsKey.length ? slotsKey.map(function (name) {\n return h(\n 'template',\n { slot: name },\n [$slots[name]]\n );\n }) : null]\n );\n }\n };\n Object.keys(methods).map(function (m) {\n ProxyWrappedComponent.methods[m] = function () {\n var _getProxyWrappedInsta;\n\n return (_getProxyWrappedInsta = this.getProxyWrappedInstance())[m].apply(_getProxyWrappedInsta, arguments);\n };\n });\n return ProxyWrappedComponent;\n}","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport Wave from '../_util/wave';\nimport Icon from '../icon';\nimport buttonTypes from './buttonTypes';\nimport { filterEmpty, getListeners, getComponentFromProp } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nvar props = buttonTypes();\nexport default {\n name: 'AButton',\n inheritAttrs: false,\n __ANT_BUTTON: true,\n props: props,\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n return {\n sizeMap: {\n large: 'lg',\n small: 'sm'\n },\n sLoading: !!this.loading,\n hasTwoCNChar: false\n };\n },\n\n computed: {\n classes: function classes() {\n var _ref;\n\n var customizePrefixCls = this.prefixCls,\n type = this.type,\n shape = this.shape,\n size = this.size,\n hasTwoCNChar = this.hasTwoCNChar,\n sLoading = this.sLoading,\n ghost = this.ghost,\n block = this.block,\n icon = this.icon,\n $slots = this.$slots;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('btn', customizePrefixCls);\n var autoInsertSpace = this.configProvider.autoInsertSpaceInButton !== false;\n\n // large => lg\n // small => sm\n var sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n default:\n break;\n }\n var iconType = sLoading ? 'loading' : icon;\n var children = filterEmpty($slots['default']);\n return _ref = {}, _defineProperty(_ref, '' + prefixCls, true), _defineProperty(_ref, prefixCls + '-' + type, type), _defineProperty(_ref, prefixCls + '-' + shape, shape), _defineProperty(_ref, prefixCls + '-' + sizeCls, sizeCls), _defineProperty(_ref, prefixCls + '-icon-only', children.length === 0 && iconType), _defineProperty(_ref, prefixCls + '-loading', sLoading), _defineProperty(_ref, prefixCls + '-background-ghost', ghost || type === 'ghost'), _defineProperty(_ref, prefixCls + '-two-chinese-chars', hasTwoCNChar && autoInsertSpace), _defineProperty(_ref, prefixCls + '-block', block), _ref;\n }\n },\n watch: {\n loading: function loading(val, preVal) {\n var _this = this;\n\n if (preVal && typeof preVal !== 'boolean') {\n clearTimeout(this.delayTimeout);\n }\n if (val && typeof val !== 'boolean' && val.delay) {\n this.delayTimeout = setTimeout(function () {\n _this.sLoading = !!val;\n }, val.delay);\n } else {\n this.sLoading = !!val;\n }\n }\n },\n mounted: function mounted() {\n this.fixTwoCNChar();\n },\n updated: function updated() {\n this.fixTwoCNChar();\n },\n beforeDestroy: function beforeDestroy() {\n // if (this.timeout) {\n // clearTimeout(this.timeout)\n // }\n if (this.delayTimeout) {\n clearTimeout(this.delayTimeout);\n }\n },\n\n methods: {\n fixTwoCNChar: function fixTwoCNChar() {\n // Fix for HOC usage like \n var node = this.$refs.buttonNode;\n if (!node) {\n return;\n }\n var buttonText = node.textContent;\n if (this.isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!this.hasTwoCNChar) {\n this.hasTwoCNChar = true;\n }\n } else if (this.hasTwoCNChar) {\n this.hasTwoCNChar = false;\n }\n },\n handleClick: function handleClick(event) {\n var sLoading = this.$data.sLoading;\n\n if (sLoading) {\n return;\n }\n this.$emit('click', event);\n },\n insertSpace: function insertSpace(child, needInserted) {\n var h = this.$createElement;\n\n var SPACE = needInserted ? ' ' : '';\n if (typeof child.text === 'string') {\n var text = child.text.trim();\n if (isTwoCNChar(text)) {\n text = text.split('').join(SPACE);\n }\n return h('span', [text]);\n }\n return child;\n },\n isNeedInserted: function isNeedInserted() {\n var $slots = this.$slots,\n type = this.type;\n\n var icon = getComponentFromProp(this, 'icon');\n return $slots['default'] && $slots['default'].length === 1 && !icon && type !== 'link';\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n var type = this.type,\n htmlType = this.htmlType,\n classes = this.classes,\n disabled = this.disabled,\n handleClick = this.handleClick,\n sLoading = this.sLoading,\n $slots = this.$slots,\n $attrs = this.$attrs;\n\n var icon = getComponentFromProp(this, 'icon');\n var buttonProps = {\n attrs: _extends({}, $attrs, {\n disabled: disabled\n }),\n 'class': classes,\n on: _extends({}, getListeners(this), {\n click: handleClick\n })\n };\n var iconType = sLoading ? 'loading' : icon;\n var iconNode = iconType ? h(Icon, {\n attrs: { type: iconType }\n }) : null;\n var children = filterEmpty($slots['default']);\n var autoInsertSpace = this.configProvider.autoInsertSpaceInButton !== false;\n var kids = children.map(function (child) {\n return _this2.insertSpace(child, _this2.isNeedInserted() && autoInsertSpace);\n });\n\n if ($attrs.href !== undefined) {\n return h(\n 'a',\n _mergeJSXProps([buttonProps, { ref: 'buttonNode' }]),\n [iconNode, kids]\n );\n }\n\n var buttonNode = h(\n 'button',\n _mergeJSXProps([buttonProps, { ref: 'buttonNode', attrs: { type: htmlType || 'button' }\n }]),\n [iconNode, kids]\n );\n\n if (type === 'link') {\n return buttonNode;\n }\n\n return h(Wave, [buttonNode]);\n }\n};","import Button from './button';\nimport ButtonGroup from './button-group';\nimport Base from '../base';\n\nButton.Group = ButtonGroup;\n\n/* istanbul ignore next */\nButton.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Button.name, Button);\n Vue.component(ButtonGroup.name, ButtonGroup);\n};\n\nexport default Button;","/* eslint-disable no-console */\nvar warned = {};\n\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error('Warning: ' + message);\n }\n}\n\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn('Note: ' + message);\n }\n}\n\nexport function resetWarned() {\n warned = {};\n}\n\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\n\nexport default warningOnce;\n/* eslint-enable */","import warning, { resetWarned } from '../vc-util/warning';\n\nexport { resetWarned };\n\nexport default (function (valid, component) {\n var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n warning(valid, '[antdv: ' + component + '] ' + message);\n});","export default function contains(root, n) {\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n\n return false;\n}","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport Icon from '../icon';\nimport getTransitionProps from '../_util/getTransitionProps';\nimport omit from 'omit.js';\nimport Wave from '../_util/wave';\nimport { hasProp, getListeners, getOptionProps } from '../_util/props-util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport warning from '../_util/warning';\n\nvar PresetColorTypes = ['pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime'];\nvar PresetColorRegex = new RegExp('^(' + PresetColorTypes.join('|') + ')(-inverse)?$');\n\nexport default {\n name: 'ATag',\n mixins: [BaseMixin],\n model: {\n prop: 'visible',\n event: 'close.visible'\n },\n props: {\n prefixCls: PropTypes.string,\n color: PropTypes.string,\n closable: PropTypes.bool.def(false),\n visible: PropTypes.bool,\n afterClose: PropTypes.func\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n var _visible = true;\n var props = getOptionProps(this);\n if ('visible' in props) {\n _visible = this.visible;\n }\n warning(!('afterClose' in props), 'Tag', \"'afterClose' will be deprecated, please use 'close' event, we will remove this in the next version.\");\n return {\n _visible: _visible\n };\n },\n\n watch: {\n visible: function visible(val) {\n this.setState({\n _visible: val\n });\n }\n },\n methods: {\n setVisible: function setVisible(visible, e) {\n this.$emit('close', e);\n this.$emit('close.visible', false);\n var afterClose = this.afterClose;\n if (afterClose) {\n // next version remove.\n afterClose();\n }\n if (e.defaultPrevented) {\n return;\n }\n if (!hasProp(this, 'visible')) {\n this.setState({ _visible: visible });\n }\n },\n handleIconClick: function handleIconClick(e) {\n e.stopPropagation();\n this.setVisible(false, e);\n },\n isPresetColor: function isPresetColor() {\n var color = this.$props.color;\n\n if (!color) {\n return false;\n }\n return PresetColorRegex.test(color);\n },\n getTagStyle: function getTagStyle() {\n var color = this.$props.color;\n\n var isPresetColor = this.isPresetColor();\n return {\n backgroundColor: color && !isPresetColor ? color : undefined\n };\n },\n getTagClassName: function getTagClassName(prefixCls) {\n var _ref;\n\n var color = this.$props.color;\n\n var isPresetColor = this.isPresetColor();\n return _ref = {}, _defineProperty(_ref, prefixCls, true), _defineProperty(_ref, prefixCls + '-' + color, isPresetColor), _defineProperty(_ref, prefixCls + '-has-color', color && !isPresetColor), _ref;\n },\n renderCloseIcon: function renderCloseIcon() {\n var h = this.$createElement;\n var closable = this.$props.closable;\n\n return closable ? h(Icon, {\n attrs: { type: 'close' },\n on: {\n 'click': this.handleIconClick\n }\n }) : null;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var customizePrefixCls = this.$props.prefixCls;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n var visible = this.$data._visible;\n\n var tag = h(\n 'span',\n _mergeJSXProps([{\n directives: [{\n name: 'show',\n value: visible\n }]\n }, { on: omit(getListeners(this), ['close']) }, {\n 'class': this.getTagClassName(prefixCls),\n style: this.getTagStyle()\n }]),\n [this.$slots['default'], this.renderCloseIcon()]\n );\n var transitionProps = getTransitionProps(prefixCls + '-zoom', {\n appear: false\n });\n return h(Wave, [h(\n 'transition',\n transitionProps,\n [tag]\n )]);\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nexport default {\n name: 'ACheckableTag',\n model: {\n prop: 'checked'\n },\n props: {\n prefixCls: PropTypes.string,\n checked: Boolean\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n computed: {\n classes: function classes() {\n var _ref;\n\n var checked = this.checked,\n customizePrefixCls = this.prefixCls;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n return _ref = {}, _defineProperty(_ref, '' + prefixCls, true), _defineProperty(_ref, prefixCls + '-checkable', true), _defineProperty(_ref, prefixCls + '-checkable-checked', checked), _ref;\n }\n },\n methods: {\n handleClick: function handleClick() {\n var checked = this.checked;\n\n this.$emit('input', !checked);\n this.$emit('change', !checked);\n }\n },\n render: function render() {\n var h = arguments[0];\n var classes = this.classes,\n handleClick = this.handleClick,\n $slots = this.$slots;\n\n return h(\n 'div',\n { 'class': classes, on: {\n 'click': handleClick\n }\n },\n [$slots['default']]\n );\n }\n};","import Tag from './Tag';\nimport CheckableTag from './CheckableTag';\nimport Base from '../base';\n\nTag.CheckableTag = CheckableTag;\n\n/* istanbul ignore next */\nTag.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Tag.name, Tag);\n Vue.component(Tag.CheckableTag.name, Tag.CheckableTag);\n};\n\nexport default Tag;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport { filterEmpty, parseStyleText } from './props-util';\nimport classNames from 'classnames';\n\nexport function cloneVNode(vnode, deep) {\n var componentOptions = vnode.componentOptions;\n var data = vnode.data;\n\n var listeners = {};\n if (componentOptions && componentOptions.listeners) {\n listeners = _extends({}, componentOptions.listeners);\n }\n\n var on = {};\n if (data && data.on) {\n on = _extends({}, data.on);\n }\n\n var cloned = new vnode.constructor(vnode.tag, data ? _extends({}, data, { on: on }) : data, vnode.children, vnode.text, vnode.elm, vnode.context, componentOptions ? _extends({}, componentOptions, { listeners: listeners }) : componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.isCloned = true;\n if (deep) {\n if (vnode.children) {\n cloned.children = cloneVNodes(vnode.children, true);\n }\n if (componentOptions && componentOptions.children) {\n componentOptions.children = cloneVNodes(componentOptions.children, true);\n }\n }\n return cloned;\n}\n\nexport function cloneVNodes(vnodes, deep) {\n var len = vnodes.length;\n var res = new Array(len);\n for (var i = 0; i < len; i++) {\n res[i] = cloneVNode(vnodes[i], deep);\n }\n return res;\n}\n\nexport function cloneElement(n) {\n var nodeProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var deep = arguments[2];\n\n var ele = n;\n if (Array.isArray(n)) {\n ele = filterEmpty(n)[0];\n }\n if (!ele) {\n return null;\n }\n var node = cloneVNode(ele, deep);\n // // 函数式组件不支持clone https://github.com/vueComponent/ant-design-vue/pull/1947\n // warning(\n // !(node.fnOptions && node.fnOptions.functional),\n // `can not use cloneElement for functional component (${node.fnOptions && node.fnOptions.name})`,\n // );\n var _nodeProps$props = nodeProps.props,\n props = _nodeProps$props === undefined ? {} : _nodeProps$props,\n key = nodeProps.key,\n _nodeProps$on = nodeProps.on,\n on = _nodeProps$on === undefined ? {} : _nodeProps$on,\n _nodeProps$nativeOn = nodeProps.nativeOn,\n nativeOn = _nodeProps$nativeOn === undefined ? {} : _nodeProps$nativeOn,\n children = nodeProps.children,\n _nodeProps$directives = nodeProps.directives,\n directives = _nodeProps$directives === undefined ? [] : _nodeProps$directives;\n\n var data = node.data || {};\n var cls = {};\n var style = {};\n var _nodeProps$attrs = nodeProps.attrs,\n attrs = _nodeProps$attrs === undefined ? {} : _nodeProps$attrs,\n ref = nodeProps.ref,\n _nodeProps$domProps = nodeProps.domProps,\n domProps = _nodeProps$domProps === undefined ? {} : _nodeProps$domProps,\n _nodeProps$style = nodeProps.style,\n tempStyle = _nodeProps$style === undefined ? {} : _nodeProps$style,\n _nodeProps$class = nodeProps['class'],\n tempCls = _nodeProps$class === undefined ? {} : _nodeProps$class,\n _nodeProps$scopedSlot = nodeProps.scopedSlots,\n scopedSlots = _nodeProps$scopedSlot === undefined ? {} : _nodeProps$scopedSlot;\n\n\n if (typeof data.style === 'string') {\n style = parseStyleText(data.style);\n } else {\n style = _extends({}, data.style, style);\n }\n if (typeof tempStyle === 'string') {\n style = _extends({}, style, parseStyleText(style));\n } else {\n style = _extends({}, style, tempStyle);\n }\n\n if (typeof data['class'] === 'string' && data['class'].trim() !== '') {\n data['class'].split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n } else if (Array.isArray(data['class'])) {\n classNames(data['class']).split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n } else {\n cls = _extends({}, data['class'], cls);\n }\n if (typeof tempCls === 'string' && tempCls.trim() !== '') {\n tempCls.split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n } else {\n cls = _extends({}, cls, tempCls);\n }\n node.data = _extends({}, data, {\n style: style,\n attrs: _extends({}, data.attrs, attrs),\n 'class': cls,\n domProps: _extends({}, data.domProps, domProps),\n scopedSlots: _extends({}, data.scopedSlots, scopedSlots),\n directives: [].concat(_toConsumableArray(data.directives || []), _toConsumableArray(directives))\n });\n\n if (node.componentOptions) {\n node.componentOptions.propsData = node.componentOptions.propsData || {};\n node.componentOptions.listeners = node.componentOptions.listeners || {};\n node.componentOptions.propsData = _extends({}, node.componentOptions.propsData, props);\n node.componentOptions.listeners = _extends({}, node.componentOptions.listeners, on);\n if (children) {\n node.componentOptions.children = children;\n }\n } else {\n if (children) {\n node.children = children;\n }\n node.data.on = _extends({}, node.data.on || {}, on);\n }\n node.data.on = _extends({}, node.data.on || {}, nativeOn);\n\n if (key !== undefined) {\n node.key = key;\n node.data.key = key;\n }\n if (typeof ref === 'string') {\n node.data.ref = ref;\n }\n return node;\n}","export function hasClass(node, className) {\n if (node.classList) {\n return node.classList.contains(className);\n }\n var originClass = node.className;\n return (' ' + originClass + ' ').indexOf(' ' + className + ' ') > -1;\n}\n\nexport function addClass(node, className) {\n if (node.classList) {\n node.classList.add(className);\n } else {\n if (!hasClass(node, className)) {\n node.className = node.className + ' ' + className;\n }\n }\n}\n\nexport function removeClass(node, className) {\n if (node.classList) {\n node.classList.remove(className);\n } else {\n if (hasClass(node, className)) {\n var originClass = node.className;\n node.className = (' ' + originClass + ' ').replace(' ' + className + ' ', ' ');\n }\n }\n}","export var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';","import _typeof from 'babel-runtime/helpers/typeof';\nimport _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from 'warning';\nimport omit from 'omit.js';\nimport { convertDataToTree as vcConvertDataToTree, convertTreeToEntities as vcConvertTreeToEntities, conductCheck as rcConductCheck } from '../../vc-tree/src/util';\nimport { hasClass } from '../../vc-util/Dom/class';\nimport { SHOW_CHILD, SHOW_PARENT } from './strategies';\nimport { getSlots, getPropsData, isEmptyElement } from '../../_util/props-util';\n\nvar warnDeprecatedLabel = false;\n\n// =================== DOM =====================\nexport function findPopupContainer(node, prefixClass) {\n var current = node;\n while (current) {\n if (hasClass(current, prefixClass)) {\n return current;\n }\n current = current.parentNode;\n }\n\n return null;\n}\n\n// =================== MISC ====================\nexport function toTitle(title) {\n if (typeof title === 'string') {\n return title;\n }\n return null;\n}\n\nexport function toArray(data) {\n if (data === undefined || data === null) return [];\n\n return Array.isArray(data) ? data : [data];\n}\n\nexport function createRef() {\n var func = function setRef(node) {\n func.current = node;\n };\n return func;\n}\n\n// =============== Legacy ===============\nexport var UNSELECTABLE_STYLE = {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n};\n\nexport var UNSELECTABLE_ATTRIBUTE = {\n unselectable: 'unselectable'\n};\n\n/**\n * Convert position list to hierarchy structure.\n * This is little hack since use '-' to split the position.\n */\nexport function flatToHierarchy(positionList) {\n if (!positionList.length) {\n return [];\n }\n\n var entrances = {};\n\n // Prepare the position map\n var posMap = {};\n var parsedList = positionList.slice().map(function (entity) {\n var clone = _extends({}, entity, {\n fields: entity.pos.split('-')\n });\n delete clone.children;\n return clone;\n });\n\n parsedList.forEach(function (entity) {\n posMap[entity.pos] = entity;\n });\n\n parsedList.sort(function (a, b) {\n return a.fields.length - b.fields.length;\n });\n\n // Create the hierarchy\n parsedList.forEach(function (entity) {\n var parentPos = entity.fields.slice(0, -1).join('-');\n var parentEntity = posMap[parentPos];\n\n if (!parentEntity) {\n entrances[entity.pos] = entity;\n } else {\n parentEntity.children = parentEntity.children || [];\n parentEntity.children.push(entity);\n }\n\n // Some time position list provide `key`, we don't need it\n delete entity.key;\n delete entity.fields;\n });\n\n return Object.keys(entrances).map(function (key) {\n return entrances[key];\n });\n}\n\n// =============== Accessibility ===============\nvar ariaId = 0;\n\nexport function resetAriaId() {\n ariaId = 0;\n}\n\nexport function generateAriaId(prefix) {\n ariaId += 1;\n return prefix + '_' + ariaId;\n}\n\nexport function isLabelInValue(props) {\n var treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n labelInValue = props.labelInValue;\n\n if (treeCheckable && treeCheckStrictly) {\n return true;\n }\n return labelInValue || false;\n}\n\n// =================== Tree ====================\nexport function parseSimpleTreeData(treeData, _ref) {\n var id = _ref.id,\n pId = _ref.pId,\n rootPId = _ref.rootPId;\n\n var keyNodes = {};\n var rootNodeList = [];\n\n // Fill in the map\n var nodeList = treeData.map(function (node) {\n var clone = _extends({}, node);\n var key = clone[id];\n keyNodes[key] = clone;\n clone.key = clone.key || key;\n return clone;\n });\n\n // Connect tree\n nodeList.forEach(function (node) {\n var parentKey = node[pId];\n var parent = keyNodes[parentKey];\n\n // Fill parent\n if (parent) {\n parent.children = parent.children || [];\n parent.children.push(node);\n }\n\n // Fill root tree node\n if (parentKey === rootPId || !parent && rootPId === null) {\n rootNodeList.push(node);\n }\n });\n\n return rootNodeList;\n}\n\n/**\n * Detect if position has relation.\n * e.g. 1-2 related with 1-2-3\n * e.g. 1-3-2 related with 1\n * e.g. 1-2 not related with 1-21\n */\nexport function isPosRelated(pos1, pos2) {\n var fields1 = pos1.split('-');\n var fields2 = pos2.split('-');\n\n var minLen = Math.min(fields1.length, fields2.length);\n for (var i = 0; i < minLen; i += 1) {\n if (fields1[i] !== fields2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * This function is only used on treeNode check (none treeCheckStrictly but has searchInput).\n * We convert entity to { node, pos, children } format.\n * This is legacy bug but we still need to do with it.\n * @param entity\n */\nexport function cleanEntity(_ref2) {\n var node = _ref2.node,\n pos = _ref2.pos,\n children = _ref2.children;\n\n var instance = {\n node: node,\n pos: pos\n };\n\n if (children) {\n instance.children = children.map(cleanEntity);\n }\n\n return instance;\n}\n\n/**\n * Get a filtered TreeNode list by provided treeNodes.\n * [Legacy] Since `Tree` use `key` as map but `key` will changed by React,\n * we have to convert `treeNodes > data > treeNodes` to keep the key.\n * Such performance hungry!\n */\nexport function getFilterTree(h, treeNodes, searchValue, filterFunc, valueEntities, Component) {\n if (!searchValue) {\n return null;\n }\n\n function mapFilteredNodeToData(node) {\n if (!node || isEmptyElement(node)) return null;\n\n var match = false;\n if (filterFunc(searchValue, node)) {\n match = true;\n }\n var children = getSlots(node)['default'];\n children = ((typeof children === 'function' ? children() : children) || []).map(mapFilteredNodeToData).filter(function (n) {\n return n;\n });\n if (children.length || match) {\n return h(\n Component,\n _mergeJSXProps([node.data, { key: valueEntities[getPropsData(node).value].key }]),\n [children]\n );\n }\n\n return null;\n }\n return treeNodes.map(mapFilteredNodeToData).filter(function (node) {\n return node;\n });\n}\n\n// =================== Value ===================\n/**\n * Convert value to array format to make logic simplify.\n */\nexport function formatInternalValue(value, props) {\n var valueList = toArray(value);\n\n // Parse label in value\n if (isLabelInValue(props)) {\n return valueList.map(function (val) {\n if ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) !== 'object' || !val) {\n return {\n value: '',\n label: ''\n };\n }\n\n return val;\n });\n }\n\n return valueList.map(function (val) {\n return {\n value: val\n };\n });\n}\n\nexport function getLabel(wrappedValue, entity, treeNodeLabelProp) {\n if (wrappedValue.label) {\n return wrappedValue.label;\n }\n\n if (entity) {\n var props = getPropsData(entity.node);\n if (Object.keys(props).length) {\n return props[treeNodeLabelProp];\n }\n }\n\n // Since value without entity will be in missValueList.\n // This code will never reached, but we still need this in case.\n return wrappedValue.value;\n}\n\n/**\n * Convert internal state `valueList` to user needed value list.\n * This will return an array list. You need check if is not multiple when return.\n *\n * `allCheckedNodes` is used for `treeCheckStrictly`\n */\nexport function formatSelectorValue(valueList, props, valueEntities) {\n var treeNodeLabelProp = props.treeNodeLabelProp,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n showCheckedStrategy = props.showCheckedStrategy;\n\n // Will hide some value if `showCheckedStrategy` is set\n\n if (treeCheckable && !treeCheckStrictly) {\n var values = {};\n valueList.forEach(function (wrappedValue) {\n values[wrappedValue.value] = wrappedValue;\n });\n var hierarchyList = flatToHierarchy(valueList.map(function (_ref3) {\n var value = _ref3.value;\n return valueEntities[value];\n }));\n\n if (showCheckedStrategy === SHOW_PARENT) {\n // Only get the parent checked value\n return hierarchyList.map(function (_ref4) {\n var node = _ref4.node;\n\n var value = getPropsData(node).value;\n return {\n label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n value: value\n };\n });\n }\n if (showCheckedStrategy === SHOW_CHILD) {\n // Only get the children checked value\n var targetValueList = [];\n\n // Find the leaf children\n var traverse = function traverse(_ref5) {\n var node = _ref5.node,\n children = _ref5.children;\n\n var value = getPropsData(node).value;\n if (!children || children.length === 0) {\n targetValueList.push({\n label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n value: value\n });\n return;\n }\n\n children.forEach(function (entity) {\n traverse(entity);\n });\n };\n\n hierarchyList.forEach(function (entity) {\n traverse(entity);\n });\n\n return targetValueList;\n }\n }\n\n return valueList.map(function (wrappedValue) {\n return {\n label: getLabel(wrappedValue, valueEntities[wrappedValue.value], treeNodeLabelProp),\n value: wrappedValue.value\n };\n });\n}\n\n/**\n * Use `rc-tree` convertDataToTree to convert treeData to TreeNodes.\n * This will change the label to title value\n */\nfunction processProps(props) {\n var title = props.title,\n label = props.label,\n value = props.value,\n cls = props['class'],\n style = props.style,\n _props$on = props.on,\n on = _props$on === undefined ? {} : _props$on;\n\n var key = props.key;\n if (!key && (key === undefined || key === null)) {\n key = value;\n }\n var p = {\n props: omit(props, ['on', 'key', 'class', 'className', 'style']),\n on: on,\n 'class': cls || props.className,\n style: style,\n key: key\n };\n // Warning user not to use deprecated label prop.\n if (label && !title) {\n if (!warnDeprecatedLabel) {\n warning(false, \"'label' in treeData is deprecated. Please use 'title' instead.\");\n warnDeprecatedLabel = true;\n }\n\n p.props.title = label;\n }\n\n return p;\n}\n\nexport function convertDataToTree(h, treeData) {\n return vcConvertDataToTree(h, treeData, { processProps: processProps });\n}\n\n/**\n * Use `rc-tree` convertTreeToEntities for entities calculation.\n * We have additional entities of `valueEntities`\n */\nfunction initWrapper(wrapper) {\n return _extends({}, wrapper, {\n valueEntities: {}\n });\n}\n\nfunction processEntity(entity, wrapper) {\n var value = getPropsData(entity.node).value;\n entity.value = value;\n\n // This should be empty, or will get error message.\n var currentEntity = wrapper.valueEntities[value];\n if (currentEntity) {\n warning(false, 'Conflict! value of node \\'' + entity.key + '\\' (' + value + ') has already used by node \\'' + currentEntity.key + '\\'.');\n }\n wrapper.valueEntities[value] = entity;\n}\n\nexport function convertTreeToEntities(treeNodes) {\n return vcConvertTreeToEntities(treeNodes, {\n initWrapper: initWrapper,\n processEntity: processEntity\n });\n}\n\n/**\n * https://github.com/ant-design/ant-design/issues/13328\n * We need calculate the half check key when searchValue is set.\n */\n// TODO: This logic may better move to rc-tree\nexport function getHalfCheckedKeys(valueList, valueEntities) {\n var values = {};\n\n // Fill checked keys\n valueList.forEach(function (_ref6) {\n var value = _ref6.value;\n\n values[value] = false;\n });\n\n // Fill half checked keys\n valueList.forEach(function (_ref7) {\n var value = _ref7.value;\n\n var current = valueEntities[value];\n\n while (current && current.parent) {\n var parentValue = current.parent.value;\n if (parentValue in values) break;\n values[parentValue] = true;\n\n current = current.parent;\n }\n });\n\n // Get half keys\n return Object.keys(values).filter(function (value) {\n return values[value];\n }).map(function (value) {\n return valueEntities[value].key;\n });\n}\n\nexport var conductCheck = rcConductCheck;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../_util/vue-types';\n\nimport Trigger from '../../vc-trigger';\nimport { createRef } from './util';\nimport classNames from 'classnames';\n\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n },\n ignoreShake: true\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n },\n ignoreShake: true\n }\n};\n\nvar SelectTrigger = {\n name: 'SelectTrigger',\n props: {\n // Pass by outside user props\n disabled: PropTypes.bool,\n showSearch: PropTypes.bool,\n prefixCls: PropTypes.string,\n dropdownPopupAlign: PropTypes.object,\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n transitionName: PropTypes.string,\n animation: PropTypes.string,\n getPopupContainer: PropTypes.func,\n\n dropdownMatchSelectWidth: PropTypes.bool,\n\n // Pass by Select\n isMultiple: PropTypes.bool,\n dropdownPrefixCls: PropTypes.string,\n dropdownVisibleChange: PropTypes.func,\n popupElement: PropTypes.node,\n open: PropTypes.bool\n },\n created: function created() {\n this.triggerRef = createRef();\n },\n\n methods: {\n getDropdownTransitionName: function getDropdownTransitionName() {\n var _$props = this.$props,\n transitionName = _$props.transitionName,\n animation = _$props.animation,\n dropdownPrefixCls = _$props.dropdownPrefixCls;\n\n if (!transitionName && animation) {\n return dropdownPrefixCls + '-' + animation;\n }\n return transitionName;\n },\n forcePopupAlign: function forcePopupAlign() {\n var $trigger = this.triggerRef.current;\n if ($trigger) {\n $trigger.forcePopupAlign();\n }\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props2 = this.$props,\n disabled = _$props2.disabled,\n isMultiple = _$props2.isMultiple,\n dropdownPopupAlign = _$props2.dropdownPopupAlign,\n dropdownMatchSelectWidth = _$props2.dropdownMatchSelectWidth,\n dropdownClassName = _$props2.dropdownClassName,\n dropdownStyle = _$props2.dropdownStyle,\n dropdownVisibleChange = _$props2.dropdownVisibleChange,\n getPopupContainer = _$props2.getPopupContainer,\n dropdownPrefixCls = _$props2.dropdownPrefixCls,\n popupElement = _$props2.popupElement,\n open = _$props2.open;\n\n // TODO: [Legacy] Use new action when trigger fixed: https://github.com/react-component/trigger/pull/86\n\n // When false do nothing with the width\n // ref: https://github.com/ant-design/ant-design/issues/10927\n\n var stretch = void 0;\n if (dropdownMatchSelectWidth !== false) {\n stretch = dropdownMatchSelectWidth ? 'width' : 'minWidth';\n }\n return h(\n Trigger,\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.triggerRef\n }]\n }, {\n attrs: {\n action: disabled ? [] : ['click'],\n popupPlacement: 'bottomLeft',\n builtinPlacements: BUILT_IN_PLACEMENTS,\n popupAlign: dropdownPopupAlign,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: this.getDropdownTransitionName(),\n\n popup: popupElement,\n popupVisible: open,\n getPopupContainer: getPopupContainer,\n stretch: stretch,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, dropdownPrefixCls + '--multiple', isMultiple), _defineProperty(_classNames, dropdownPrefixCls + '--single', !isMultiple), _classNames)),\n popupStyle: dropdownStyle\n },\n on: {\n 'popupVisibleChange': dropdownVisibleChange\n }\n }]),\n [this.$slots['default']]\n );\n }\n};\n\nexport default SelectTrigger;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * Input Box is in different position for different mode.\n * This not the same design as `Select` cause it's followed by antd 0.x `Select`.\n * We will not follow the new design immediately since antd 3.x is already released.\n *\n * So this file named as Selector to avoid confuse.\n */\nimport { createRef } from '../util';\nimport PropTypes from '../../../_util/vue-types';\nimport classNames from 'classnames';\nimport { initDefaultProps, getComponentFromProp, getListeners } from '../../../_util/props-util';\nimport BaseMixin from '../../../_util/BaseMixin';\nexport var selectorPropTypes = function selectorPropTypes() {\n return {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n open: PropTypes.bool,\n selectorValueList: PropTypes.array,\n allowClear: PropTypes.bool,\n showArrow: PropTypes.bool,\n // onClick: PropTypes.func,\n // onBlur: PropTypes.func,\n // onFocus: PropTypes.func,\n removeSelected: PropTypes.func,\n choiceTransitionName: PropTypes.string,\n // Pass by component\n ariaId: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n placeholder: PropTypes.any,\n disabled: PropTypes.bool,\n focused: PropTypes.bool\n };\n};\n\nfunction noop() {}\nexport default function (modeName) {\n var BaseSelector = {\n name: 'BaseSelector',\n mixins: [BaseMixin],\n props: initDefaultProps(_extends({}, selectorPropTypes(), {\n\n // Pass by HOC\n renderSelection: PropTypes.func.isRequired,\n renderPlaceholder: PropTypes.func,\n tabIndex: PropTypes.number\n }), {\n tabIndex: 0\n }),\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n created: function created() {\n this.domRef = createRef();\n },\n\n methods: {\n onFocus: function onFocus(e) {\n var focused = this.$props.focused;\n var onSelectorFocus = this.vcTreeSelect.onSelectorFocus;\n\n\n if (!focused) {\n onSelectorFocus();\n }\n this.__emit('focus', e);\n },\n onBlur: function onBlur(e) {\n var onSelectorBlur = this.vcTreeSelect.onSelectorBlur;\n\n // TODO: Not trigger when is inner component get focused\n\n onSelectorBlur();\n this.__emit('blur', e);\n },\n focus: function focus() {\n this.domRef.current.focus();\n },\n blur: function blur() {\n this.domRef.current.blur();\n },\n renderClear: function renderClear() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n allowClear = _$props.allowClear,\n selectorValueList = _$props.selectorValueList;\n var onSelectorClear = this.vcTreeSelect.onSelectorClear;\n\n\n if (!allowClear || !selectorValueList.length || !selectorValueList[0].value) {\n return null;\n }\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n return h(\n 'span',\n { key: 'clear', 'class': prefixCls + '-selection__clear', on: {\n 'click': onSelectorClear\n }\n },\n [clearIcon]\n );\n },\n renderArrow: function renderArrow() {\n var h = this.$createElement;\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n showArrow = _$props2.showArrow;\n\n if (!showArrow) {\n return null;\n }\n var inputIcon = getComponentFromProp(this, 'inputIcon');\n return h(\n 'span',\n { key: 'arrow', 'class': prefixCls + '-arrow', style: { outline: 'none' } },\n [inputIcon]\n );\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props3 = this.$props,\n prefixCls = _$props3.prefixCls,\n className = _$props3.className,\n style = _$props3.style,\n open = _$props3.open,\n focused = _$props3.focused,\n disabled = _$props3.disabled,\n allowClear = _$props3.allowClear,\n ariaId = _$props3.ariaId,\n renderSelection = _$props3.renderSelection,\n renderPlaceholder = _$props3.renderPlaceholder,\n tabIndex = _$props3.tabIndex;\n var onSelectorKeyDown = this.vcTreeSelect.onSelectorKeyDown;\n\n\n var myTabIndex = tabIndex;\n if (disabled) {\n myTabIndex = null;\n }\n\n return h(\n 'span',\n _mergeJSXProps([{\n style: style,\n on: {\n 'click': getListeners(this).click || noop\n },\n\n 'class': classNames(className, prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-open', open), _defineProperty(_classNames, prefixCls + '-focused', open || focused), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-enabled', !disabled), _defineProperty(_classNames, prefixCls + '-allow-clear', allowClear), _classNames))\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.domRef\n }]\n }, {\n attrs: {\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-owns': open ? ariaId : undefined,\n 'aria-controls': open ? ariaId : undefined,\n 'aria-haspopup': 'listbox',\n 'aria-disabled': disabled,\n tabIndex: myTabIndex\n },\n on: {\n 'focus': this.onFocus,\n 'blur': this.onBlur,\n 'keydown': onSelectorKeyDown\n }\n }]),\n [h(\n 'span',\n {\n key: 'selection',\n 'class': classNames(prefixCls + '-selection', prefixCls + '-selection--' + modeName)\n },\n [renderSelection(), this.renderClear(), this.renderArrow(), renderPlaceholder && renderPlaceholder()]\n )]\n );\n }\n };\n\n return BaseSelector;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport generateSelector, { selectorPropTypes } from '../Base/BaseSelector';\nimport { toTitle } from '../util';\nimport { getOptionProps, getListeners } from '../../../_util/props-util';\nimport { createRef } from '../util';\nvar Selector = generateSelector('single');\n\nvar SingleSelector = {\n name: 'SingleSelector',\n props: selectorPropTypes(),\n created: function created() {\n this.selectorRef = createRef();\n },\n\n methods: {\n focus: function focus() {\n this.selectorRef.current.focus();\n },\n blur: function blur() {\n this.selectorRef.current.blur();\n },\n renderSelection: function renderSelection() {\n var h = this.$createElement;\n var _$props = this.$props,\n selectorValueList = _$props.selectorValueList,\n placeholder = _$props.placeholder,\n prefixCls = _$props.prefixCls;\n\n\n var innerNode = void 0;\n\n if (selectorValueList.length) {\n var _selectorValueList$ = selectorValueList[0],\n label = _selectorValueList$.label,\n value = _selectorValueList$.value;\n\n innerNode = h(\n 'span',\n { key: 'value', attrs: { title: toTitle(label) },\n 'class': prefixCls + '-selection-selected-value' },\n [label || value]\n );\n } else {\n innerNode = h(\n 'span',\n { key: 'placeholder', 'class': prefixCls + '-selection__placeholder' },\n [placeholder]\n );\n }\n\n return h(\n 'span',\n { 'class': prefixCls + '-selection__rendered' },\n [innerNode]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props$showArrow = this.$props.showArrow,\n showArrow = _$props$showArrow === undefined ? true : _$props$showArrow;\n\n var props = {\n props: _extends({}, getOptionProps(this), {\n showArrow: showArrow,\n renderSelection: this.renderSelection\n }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.selectorRef\n }]\n };\n return h(Selector, props);\n }\n};\n\nexport default SingleSelector;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * Since search box is in different position with different mode.\n * - Single: in the popup box\n * - multiple: in the selector\n * Move the code as a SearchInput for easy management.\n */\n\nimport PropTypes from '../../_util/vue-types';\nimport { createRef } from './util';\n\nvar SearchInput = {\n name: 'SearchInput',\n props: {\n open: PropTypes.bool,\n searchValue: PropTypes.string,\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n renderPlaceholder: PropTypes.func,\n needAlign: PropTypes.bool,\n ariaId: PropTypes.string\n },\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n data: function data() {\n return {\n mirrorSearchValue: this.searchValue\n };\n },\n\n watch: {\n searchValue: function searchValue(val) {\n this.mirrorSearchValue = val;\n }\n },\n created: function created() {\n this.inputRef = createRef();\n this.mirrorInputRef = createRef();\n this.prevProps = _extends({}, this.$props);\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var _$props = _this.$props,\n open = _$props.open,\n needAlign = _$props.needAlign;\n\n if (needAlign) {\n _this.alignInputWidth();\n }\n\n if (open) {\n _this.focus(true);\n }\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n var _$props2 = this.$props,\n open = _$props2.open,\n searchValue = _$props2.searchValue,\n needAlign = _$props2.needAlign;\n var prevProps = this.prevProps;\n\n this.$nextTick(function () {\n if (open && prevProps.open !== open) {\n _this2.focus();\n }\n if (needAlign && searchValue !== prevProps.searchValue) {\n _this2.alignInputWidth();\n }\n _this2.prevProps = _extends({}, _this2.$props);\n });\n },\n\n methods: {\n /**\n * `scrollWidth` is not correct in IE, do the workaround.\n * ref: https://github.com/react-component/tree-select/issues/65\n * clientWidth 0 when mounted in vue. why?\n */\n alignInputWidth: function alignInputWidth() {\n this.inputRef.current.style.width = (this.mirrorInputRef.current.clientWidth || this.mirrorInputRef.current.offsetWidth) + 'px';\n },\n\n\n /**\n * Need additional timeout for focus cause parent dom is not ready when didMount trigger\n */\n focus: function focus(isDidMount) {\n var _this3 = this;\n\n if (this.inputRef.current) {\n if (isDidMount) {\n setTimeout(function () {\n _this3.inputRef.current.focus();\n }, 0);\n } else {\n // set it into else, Avoid scrolling when focus\n this.inputRef.current.focus();\n }\n }\n },\n blur: function blur() {\n if (this.inputRef.current) {\n this.inputRef.current.blur();\n }\n },\n handleInputChange: function handleInputChange(e) {\n var _e$target = e.target,\n value = _e$target.value,\n composing = _e$target.composing;\n var _searchValue = this.searchValue,\n searchValue = _searchValue === undefined ? '' : _searchValue;\n\n if (e.isComposing || composing || searchValue === value) {\n this.mirrorSearchValue = value;\n return;\n }\n this.vcTreeSelect.onSearchInputChange(e);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props3 = this.$props,\n searchValue = _$props3.searchValue,\n prefixCls = _$props3.prefixCls,\n disabled = _$props3.disabled,\n renderPlaceholder = _$props3.renderPlaceholder,\n open = _$props3.open,\n ariaId = _$props3.ariaId;\n var onSearchInputKeyDown = this.vcTreeSelect.onSearchInputKeyDown,\n handleInputChange = this.handleInputChange,\n mirrorSearchValue = this.mirrorSearchValue;\n\n return h(\n 'span',\n { 'class': prefixCls + '-search__field__wrap' },\n [h('input', _mergeJSXProps([{\n attrs: {\n type: 'text'\n }\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }, {\n name: 'ant-input'\n }]\n }, {\n on: {\n 'input': handleInputChange,\n 'keydown': onSearchInputKeyDown\n },\n domProps: {\n 'value': searchValue\n },\n attrs: {\n disabled: disabled,\n\n 'aria-label': 'filter select',\n 'aria-autocomplete': 'list',\n 'aria-controls': open ? ariaId : undefined,\n 'aria-multiline': 'false'\n },\n 'class': prefixCls + '-search__field' }])), h(\n 'span',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.mirrorInputRef\n }]\n }, {\n 'class': prefixCls + '-search__field__mirror'\n }]),\n [mirrorSearchValue, '\\xA0']\n ), renderPlaceholder && !mirrorSearchValue ? renderPlaceholder() : null]\n );\n }\n};\n\nexport default SearchInput;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../../../../_util/vue-types';\nimport { toTitle, UNSELECTABLE_ATTRIBUTE, UNSELECTABLE_STYLE } from '../../util';\nimport { getComponentFromProp, getListeners } from '../../../../_util/props-util';\nimport BaseMixin from '../../../../_util/BaseMixin';\n\nvar Selection = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n maxTagTextLength: PropTypes.number,\n // onRemove: PropTypes.func,\n\n label: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n removeIcon: PropTypes.any\n },\n methods: {\n onRemove: function onRemove(event) {\n var value = this.$props.value;\n\n this.__emit('remove', event, value);\n event.stopPropagation();\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n maxTagTextLength = _$props.maxTagTextLength,\n label = _$props.label,\n value = _$props.value;\n\n var content = label || value;\n if (maxTagTextLength && typeof content === 'string' && content.length > maxTagTextLength) {\n content = content.slice(0, maxTagTextLength) + '...';\n }\n\n return h(\n 'li',\n _mergeJSXProps([{\n style: UNSELECTABLE_STYLE\n }, { attrs: UNSELECTABLE_ATTRIBUTE }, {\n attrs: {\n role: 'menuitem',\n\n title: toTitle(label)\n },\n 'class': prefixCls + '-selection__choice' }]),\n [getListeners(this).remove && h(\n 'span',\n { 'class': prefixCls + '-selection__choice__remove', on: {\n 'click': this.onRemove\n }\n },\n [getComponentFromProp(this, 'removeIcon')]\n ), h(\n 'span',\n { 'class': prefixCls + '-selection__choice__content' },\n [content]\n )]\n );\n }\n};\n\nexport default Selection;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../../_util/vue-types';\nimport { createRef } from '../../util';\nimport generateSelector, { selectorPropTypes } from '../../Base/BaseSelector';\nimport SearchInput from '../../SearchInput';\nimport Selection from './Selection';\nimport { getComponentFromProp, getListeners } from '../../../../_util/props-util';\nimport getTransitionProps from '../../../../_util/getTransitionProps';\nimport BaseMixin from '../../../../_util/BaseMixin';\nvar TREE_SELECT_EMPTY_VALUE_KEY = 'RC_TREE_SELECT_EMPTY_VALUE_KEY';\n\nvar Selector = generateSelector('multiple');\n\n// export const multipleSelectorContextTypes = {\n// onMultipleSelectorRemove: PropTypes.func.isRequired,\n// }\n\nvar MultipleSelector = {\n mixins: [BaseMixin],\n props: _extends({}, selectorPropTypes(), SearchInput.props, {\n selectorValueList: PropTypes.array,\n disabled: PropTypes.bool,\n searchValue: PropTypes.string,\n labelInValue: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.any\n\n // onChoiceAnimationLeave: PropTypes.func,\n }),\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n created: function created() {\n this.inputRef = createRef();\n },\n\n methods: {\n onPlaceholderClick: function onPlaceholderClick() {\n this.inputRef.current.focus();\n },\n focus: function focus() {\n this.inputRef.current.focus();\n },\n blur: function blur() {\n this.inputRef.current.blur();\n },\n _renderPlaceholder: function _renderPlaceholder() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n placeholder = _$props.placeholder,\n searchPlaceholder = _$props.searchPlaceholder,\n searchValue = _$props.searchValue,\n selectorValueList = _$props.selectorValueList;\n\n\n var currentPlaceholder = placeholder || searchPlaceholder;\n\n if (!currentPlaceholder) return null;\n\n var hidden = searchValue || selectorValueList.length;\n\n // [Legacy] Not remove the placeholder\n return h(\n 'span',\n {\n style: {\n display: hidden ? 'none' : 'block'\n },\n on: {\n 'click': this.onPlaceholderClick\n },\n\n 'class': prefixCls + '-search__field__placeholder'\n },\n [currentPlaceholder]\n );\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.__emit.apply(this, ['choiceAnimationLeave'].concat(_toConsumableArray(args)));\n },\n renderSelection: function renderSelection() {\n var _this = this;\n\n var h = this.$createElement;\n var _$props2 = this.$props,\n selectorValueList = _$props2.selectorValueList,\n choiceTransitionName = _$props2.choiceTransitionName,\n prefixCls = _$props2.prefixCls,\n labelInValue = _$props2.labelInValue,\n maxTagCount = _$props2.maxTagCount;\n var onMultipleSelectorRemove = this.vcTreeSelect.onMultipleSelectorRemove,\n $slots = this.$slots;\n\n var listeners = getListeners(this);\n // Check if `maxTagCount` is set\n var myValueList = selectorValueList;\n if (maxTagCount >= 0) {\n myValueList = selectorValueList.slice(0, maxTagCount);\n }\n // Selector node list\n var selectedValueNodes = myValueList.map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return h(\n Selection,\n _mergeJSXProps([{\n props: _extends({}, _this.$props, {\n label: label,\n value: value\n }),\n on: _extends({}, listeners, { remove: onMultipleSelectorRemove })\n }, {\n key: value || TREE_SELECT_EMPTY_VALUE_KEY\n }]),\n [$slots['default']]\n );\n });\n\n // Rest node count\n if (maxTagCount >= 0 && maxTagCount < selectorValueList.length) {\n var content = '+ ' + (selectorValueList.length - maxTagCount) + ' ...';\n var maxTagPlaceholder = getComponentFromProp(this, 'maxTagPlaceholder', {}, false);\n if (typeof maxTagPlaceholder === 'string') {\n content = maxTagPlaceholder;\n } else if (typeof maxTagPlaceholder === 'function') {\n var restValueList = selectorValueList.slice(maxTagCount);\n content = maxTagPlaceholder(labelInValue ? restValueList : restValueList.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n }));\n }\n\n var restNodeSelect = h(\n Selection,\n _mergeJSXProps([{\n props: _extends({}, this.$props, {\n label: content,\n value: null\n }),\n on: listeners\n }, {\n key: 'rc-tree-select-internal-max-tag-counter'\n }]),\n [$slots['default']]\n );\n\n selectedValueNodes.push(restNodeSelect);\n }\n\n selectedValueNodes.push(h(\n 'li',\n { 'class': prefixCls + '-search ' + prefixCls + '-search--inline', key: '__input' },\n [h(\n SearchInput,\n {\n props: _extends({}, this.$props, {\n needAlign: true\n }),\n on: listeners,\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }]\n },\n [$slots['default']]\n )]\n ));\n var className = prefixCls + '-selection__rendered';\n if (choiceTransitionName) {\n var transitionProps = getTransitionProps(choiceTransitionName, {\n tag: 'ul',\n afterLeave: this.onChoiceAnimationLeave\n });\n return h(\n 'transition-group',\n _mergeJSXProps([{ 'class': className }, transitionProps]),\n [selectedValueNodes]\n );\n }\n return h(\n 'ul',\n { 'class': className, attrs: { role: 'menubar' }\n },\n [selectedValueNodes]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots,\n $props = this.$props;\n\n var listeners = getListeners(this);\n var _$props$showArrow = $props.showArrow,\n showArrow = _$props$showArrow === undefined ? false : _$props$showArrow;\n\n return h(\n Selector,\n {\n props: _extends({}, this.$props, {\n showArrow: showArrow,\n tabIndex: -1,\n renderSelection: this.renderSelection,\n renderPlaceholder: this._renderPlaceholder\n }),\n on: listeners\n },\n [$slots['default']]\n );\n }\n};\n\nexport default MultipleSelector;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from 'warning';\nimport PropTypes from '../../../_util/vue-types';\nimport { Tree } from '../../../vc-tree';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { createRef } from '../util';\n\n// export const popupContextTypes = {\n// onPopupKeyDown: PropTypes.func.isRequired,\n// onTreeNodeSelect: PropTypes.func.isRequired,\n// onTreeNodeCheck: PropTypes.func.isRequired,\n// }\nfunction getDerivedState(nextProps, prevState) {\n var _ref = prevState || {},\n _ref$_prevProps = _ref._prevProps,\n prevProps = _ref$_prevProps === undefined ? {} : _ref$_prevProps,\n loadedKeys = _ref._loadedKeys,\n expandedKeyList = _ref._expandedKeyList,\n cachedExpandedKeyList = _ref._cachedExpandedKeyList;\n\n var valueList = nextProps.valueList,\n valueEntities = nextProps.valueEntities,\n keyEntities = nextProps.keyEntities,\n treeExpandedKeys = nextProps.treeExpandedKeys,\n filteredTreeNodes = nextProps.filteredTreeNodes,\n upperSearchValue = nextProps.upperSearchValue;\n\n\n var newState = {\n _prevProps: _extends({}, nextProps)\n };\n\n // Check value update\n if (valueList !== prevProps.valueList) {\n newState._keyList = valueList.map(function (_ref2) {\n var value = _ref2.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref3) {\n var key = _ref3.key;\n return key;\n });\n }\n\n // Show all when tree is in filter mode\n if (!treeExpandedKeys && filteredTreeNodes && filteredTreeNodes.length && filteredTreeNodes !== prevProps.filteredTreeNodes) {\n newState._expandedKeyList = [].concat(_toConsumableArray(keyEntities.keys()));\n }\n\n // Cache `expandedKeyList` when filter set\n if (upperSearchValue && !prevProps.upperSearchValue) {\n newState._cachedExpandedKeyList = expandedKeyList;\n } else if (!upperSearchValue && prevProps.upperSearchValue && !treeExpandedKeys) {\n newState._expandedKeyList = cachedExpandedKeyList || [];\n newState._cachedExpandedKeyList = [];\n }\n\n // Use expandedKeys if provided\n if (prevProps.treeExpandedKeys !== treeExpandedKeys) {\n newState._expandedKeyList = treeExpandedKeys;\n }\n\n // Clean loadedKeys if key not exist in keyEntities anymore\n if (nextProps.loadData) {\n newState._loadedKeys = loadedKeys.filter(function (key) {\n return keyEntities.has(key);\n });\n }\n\n return newState;\n}\nvar BasePopup = {\n mixins: [BaseMixin],\n name: 'BasePopup',\n props: {\n prefixCls: PropTypes.string,\n upperSearchValue: PropTypes.string,\n valueList: PropTypes.array,\n searchHalfCheckedKeys: PropTypes.array,\n valueEntities: PropTypes.object,\n keyEntities: Map,\n treeIcon: PropTypes.bool,\n treeLine: PropTypes.bool,\n treeNodeFilterProp: PropTypes.string,\n treeCheckable: PropTypes.any,\n treeCheckStrictly: PropTypes.bool,\n treeDefaultExpandAll: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.array,\n treeExpandedKeys: PropTypes.array,\n loadData: PropTypes.func,\n multiple: PropTypes.bool,\n // onTreeExpand: PropTypes.func,\n searchValue: PropTypes.string,\n treeNodes: PropTypes.any,\n filteredTreeNodes: PropTypes.any,\n notFoundContent: PropTypes.any,\n\n ariaId: PropTypes.string,\n switcherIcon: PropTypes.any,\n // HOC\n renderSearch: PropTypes.func,\n // onTreeExpanded: PropTypes.func,\n\n __propsSymbol__: PropTypes.any\n },\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n var state = getDerivedState(this.$props, this.$data);\n this.setState(state);\n }\n },\n data: function data() {\n this.treeRef = createRef();\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n var _$props = this.$props,\n treeDefaultExpandAll = _$props.treeDefaultExpandAll,\n treeDefaultExpandedKeys = _$props.treeDefaultExpandedKeys,\n keyEntities = _$props.keyEntities;\n\n // TODO: make `expandedKeyList` control\n\n var expandedKeyList = treeDefaultExpandedKeys;\n if (treeDefaultExpandAll) {\n expandedKeyList = [].concat(_toConsumableArray(keyEntities.keys()));\n }\n\n var state = {\n _keyList: [],\n _expandedKeyList: expandedKeyList,\n // Cache `expandedKeyList` when tree is in filter. This is used in `getDerivedState`\n _cachedExpandedKeyList: [],\n _loadedKeys: [],\n _prevProps: {}\n };\n return _extends({}, state, getDerivedState(this.$props, state));\n },\n\n methods: {\n onTreeExpand: function onTreeExpand(expandedKeyList) {\n var _this = this;\n\n var treeExpandedKeys = this.$props.treeExpandedKeys;\n\n // Set uncontrolled state\n\n if (!treeExpandedKeys) {\n this.setState({ _expandedKeyList: expandedKeyList }, function () {\n _this.__emit('treeExpanded');\n });\n }\n this.__emit('update:treeExpandedKeys', expandedKeyList);\n this.__emit('treeExpand', expandedKeyList);\n },\n onLoad: function onLoad(loadedKeys) {\n this.setState({ _loadedKeys: loadedKeys });\n },\n getTree: function getTree() {\n return this.treeRef.current;\n },\n\n\n /**\n * Not pass `loadData` when searching. To avoid loop ajax call makes browser crash.\n */\n getLoadData: function getLoadData() {\n var _$props2 = this.$props,\n loadData = _$props2.loadData,\n upperSearchValue = _$props2.upperSearchValue;\n\n if (upperSearchValue) return null;\n return loadData;\n },\n\n\n /**\n * This method pass to Tree component which is used for add filtered class\n * in TreeNode > li\n */\n filterTreeNode: function filterTreeNode(treeNode) {\n var _$props3 = this.$props,\n upperSearchValue = _$props3.upperSearchValue,\n treeNodeFilterProp = _$props3.treeNodeFilterProp;\n\n\n var filterVal = treeNode[treeNodeFilterProp];\n if (typeof filterVal === 'string') {\n return upperSearchValue && filterVal.toUpperCase().indexOf(upperSearchValue) !== -1;\n }\n\n return false;\n },\n renderNotFound: function renderNotFound() {\n var h = this.$createElement;\n var _$props4 = this.$props,\n prefixCls = _$props4.prefixCls,\n notFoundContent = _$props4.notFoundContent;\n\n\n return h(\n 'span',\n { 'class': prefixCls + '-not-found' },\n [notFoundContent]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$data = this.$data,\n keyList = _$data._keyList,\n expandedKeyList = _$data._expandedKeyList,\n loadedKeys = _$data._loadedKeys;\n var _$props5 = this.$props,\n prefixCls = _$props5.prefixCls,\n treeNodes = _$props5.treeNodes,\n filteredTreeNodes = _$props5.filteredTreeNodes,\n treeIcon = _$props5.treeIcon,\n treeLine = _$props5.treeLine,\n treeCheckable = _$props5.treeCheckable,\n treeCheckStrictly = _$props5.treeCheckStrictly,\n multiple = _$props5.multiple,\n ariaId = _$props5.ariaId,\n renderSearch = _$props5.renderSearch,\n switcherIcon = _$props5.switcherIcon,\n searchHalfCheckedKeys = _$props5.searchHalfCheckedKeys;\n var _vcTreeSelect = this.vcTreeSelect,\n onPopupKeyDown = _vcTreeSelect.onPopupKeyDown,\n onTreeNodeSelect = _vcTreeSelect.onTreeNodeSelect,\n onTreeNodeCheck = _vcTreeSelect.onTreeNodeCheck;\n\n\n var loadData = this.getLoadData();\n\n var treeProps = {};\n\n if (treeCheckable) {\n treeProps.checkedKeys = keyList;\n } else {\n treeProps.selectedKeys = keyList;\n }\n var $notFound = void 0;\n var $treeNodes = void 0;\n if (filteredTreeNodes) {\n if (filteredTreeNodes.length) {\n treeProps.checkStrictly = true;\n $treeNodes = filteredTreeNodes;\n\n // Fill halfCheckedKeys\n if (treeCheckable && !treeCheckStrictly) {\n treeProps.checkedKeys = {\n checked: keyList,\n halfChecked: searchHalfCheckedKeys\n };\n }\n } else {\n $notFound = this.renderNotFound();\n }\n } else if (!treeNodes || !treeNodes.length) {\n $notFound = this.renderNotFound();\n } else {\n $treeNodes = treeNodes;\n }\n\n var $tree = void 0;\n if ($notFound) {\n $tree = $notFound;\n } else {\n var treeAllProps = {\n props: _extends({\n prefixCls: prefixCls + '-tree',\n showIcon: treeIcon,\n showLine: treeLine,\n selectable: !treeCheckable,\n checkable: treeCheckable,\n checkStrictly: treeCheckStrictly,\n multiple: multiple,\n loadData: loadData,\n loadedKeys: loadedKeys,\n expandedKeys: expandedKeyList,\n filterTreeNode: this.filterTreeNode,\n switcherIcon: switcherIcon\n }, treeProps, {\n __propsSymbol__: Symbol(),\n children: $treeNodes\n }),\n on: {\n select: onTreeNodeSelect,\n check: onTreeNodeCheck,\n expand: this.onTreeExpand,\n load: this.onLoad\n },\n directives: [{\n name: 'ant-ref',\n value: this.treeRef\n }]\n };\n $tree = h(Tree, treeAllProps);\n }\n\n return h(\n 'div',\n {\n attrs: { role: 'listbox', id: ariaId, tabIndex: -1 },\n on: {\n 'keydown': onPopupKeyDown\n }\n },\n [renderSearch ? renderSearch() : null, $tree]\n );\n }\n};\n\nexport default BasePopup;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../_util/vue-types';\nimport BasePopup from '../Base/BasePopup';\nimport SearchInput from '../SearchInput';\nimport { createRef } from '../util';\nimport { getListeners } from '../../../_util/props-util';\n\nvar SinglePopup = {\n name: 'SinglePopup',\n props: _extends({}, BasePopup.props, SearchInput.props, {\n searchValue: PropTypes.string,\n showSearch: PropTypes.bool,\n dropdownPrefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n searchPlaceholder: PropTypes.string\n }),\n created: function created() {\n this.inputRef = createRef();\n this.searchRef = createRef();\n this.popupRef = createRef();\n },\n\n methods: {\n onPlaceholderClick: function onPlaceholderClick() {\n this.inputRef.current.focus();\n },\n getTree: function getTree() {\n return this.popupRef.current && this.popupRef.current.getTree();\n },\n _renderPlaceholder: function _renderPlaceholder() {\n var h = this.$createElement;\n var _$props = this.$props,\n searchPlaceholder = _$props.searchPlaceholder,\n searchValue = _$props.searchValue,\n prefixCls = _$props.prefixCls;\n\n\n if (!searchPlaceholder) {\n return null;\n }\n\n return h(\n 'span',\n {\n style: {\n display: searchValue ? 'none' : 'block'\n },\n on: {\n 'click': this.onPlaceholderClick\n },\n\n 'class': prefixCls + '-search__field__placeholder'\n },\n [searchPlaceholder]\n );\n },\n _renderSearch: function _renderSearch() {\n var h = this.$createElement;\n var _$props2 = this.$props,\n showSearch = _$props2.showSearch,\n dropdownPrefixCls = _$props2.dropdownPrefixCls;\n\n\n if (!showSearch) {\n return null;\n }\n\n return h(\n 'span',\n _mergeJSXProps([{\n 'class': dropdownPrefixCls + '-search'\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.searchRef\n }]\n }]),\n [h(SearchInput, {\n props: _extends({}, this.$props, { renderPlaceholder: this._renderPlaceholder }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }]\n })]\n );\n }\n },\n render: function render() {\n var h = arguments[0];\n\n return h(BasePopup, {\n props: _extends({}, this.$props, { renderSearch: this._renderSearch, __propsSymbol__: Symbol() }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.popupRef\n }]\n });\n }\n};\n\nexport default SinglePopup;","import BasePopup from '../Base/BasePopup';\n\nexport default BasePopup;","import _extends from 'babel-runtime/helpers/extends';\nimport { TreeNode } from '../../vc-tree';\n/**\n * SelectNode wrapped the tree node.\n * Let's use SelectNode instead of TreeNode\n * since TreeNode is so confuse here.\n */\nexport default {\n name: 'SelectNode',\n functional: true,\n isTreeNode: true,\n props: TreeNode.props,\n render: function render(h, context) {\n var props = context.props,\n slots = context.slots,\n listeners = context.listeners,\n data = context.data,\n scopedSlots = context.scopedSlots;\n\n var $slots = slots() || {};\n var children = $slots['default'];\n var slotsKey = Object.keys($slots);\n var scopedSlotsTemp = {}; // for vue 2.5.x\n slotsKey.forEach(function (name) {\n scopedSlotsTemp[name] = function () {\n return $slots[name];\n };\n });\n var treeNodeProps = _extends({}, data, {\n on: _extends({}, listeners, data.nativeOn),\n props: props,\n scopedSlots: _extends({}, scopedSlotsTemp, scopedSlots)\n });\n return h(\n TreeNode,\n treeNodeProps,\n [children]\n );\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * ARIA: https://www.w3.org/TR/wai-aria/#combobox\n * Sample 1: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/combobox/aria1.1pattern/listbox-combo.html\n * Sample 2: https://www.w3.org/blog/wai-components-gallery/widget/combobox-with-aria-autocompleteinline/\n *\n * Tab logic:\n * Popup is close\n * 1. Focus input (mark component as focused)\n * 2. Press enter to show the popup\n * 3. If popup has input, focus it\n *\n * Popup is open\n * 1. press tab to close the popup\n * 2. Focus back to the selection input box\n * 3. Let the native tab going on\n *\n * TreeSelect use 2 design type.\n * In single mode, we should focus on the `span`\n * In multiple mode, we should focus on the `input`\n */\n\nimport shallowEqual from 'shallowequal';\nimport raf from 'raf';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport warning from 'warning';\nimport PropTypes from '../../_util/vue-types';\nimport KeyCode from '../../_util/KeyCode';\n\nimport SelectTrigger from './SelectTrigger';\nimport SingleSelector from './Selector/SingleSelector';\nimport MultipleSelector from './Selector/MultipleSelector';\nimport SinglePopup from './Popup/SinglePopup';\nimport MultiplePopup from './Popup/MultiplePopup';\n\nimport { SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './strategies';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { createRef, generateAriaId, formatInternalValue, formatSelectorValue, parseSimpleTreeData, convertDataToTree, convertTreeToEntities, conductCheck, getHalfCheckedKeys, flatToHierarchy, isPosRelated, isLabelInValue as _isLabelInValue, getFilterTree, cleanEntity, findPopupContainer } from './util';\nimport SelectNode from './SelectNode';\nimport { initDefaultProps, getOptionProps, mergeProps, getPropsData, filterEmpty, getListeners } from '../../_util/props-util';\nfunction getWatch() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var watch = {};\n keys.forEach(function (k) {\n watch[k] = function () {\n this.needSyncKeys[k] = true;\n };\n });\n return watch;\n}\nvar Select = {\n name: 'Select',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n prefixAria: PropTypes.string,\n multiple: PropTypes.bool,\n showArrow: PropTypes.bool,\n open: PropTypes.bool,\n value: PropTypes.any,\n\n autoFocus: PropTypes.bool,\n\n defaultOpen: PropTypes.bool,\n defaultValue: PropTypes.any,\n\n showSearch: PropTypes.bool,\n placeholder: PropTypes.any,\n inputValue: PropTypes.string, // [Legacy] Deprecated. Use `searchValue` instead.\n searchValue: PropTypes.string,\n autoClearSearchValue: PropTypes.bool,\n searchPlaceholder: PropTypes.any, // [Legacy] Confuse with placeholder\n disabled: PropTypes.bool,\n children: PropTypes.any,\n labelInValue: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.any, PropTypes.func]),\n maxTagTextLength: PropTypes.number,\n showCheckedStrategy: PropTypes.oneOf([SHOW_ALL, SHOW_PARENT, SHOW_CHILD]),\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n dropdownVisibleChange: PropTypes.func,\n dropdownMatchSelectWidth: PropTypes.bool,\n treeData: PropTypes.array,\n treeDataSimpleMode: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n treeNodeFilterProp: PropTypes.string,\n treeNodeLabelProp: PropTypes.string,\n treeCheckable: PropTypes.oneOfType([PropTypes.any, PropTypes.object, PropTypes.bool]),\n // treeCheckable: PropTypes.any,\n treeCheckStrictly: PropTypes.bool,\n treeIcon: PropTypes.bool,\n treeLine: PropTypes.bool,\n treeDefaultExpandAll: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.array,\n treeExpandedKeys: PropTypes.array,\n loadData: PropTypes.func,\n filterTreeNode: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n\n notFoundContent: PropTypes.any,\n getPopupContainer: PropTypes.func,\n\n // onSearch: PropTypes.func,\n // onSelect: PropTypes.func,\n // onDeselect: PropTypes.func,\n // onChange: PropTypes.func,\n // onDropdownVisibleChange: PropTypes.func,\n\n // onTreeExpand: PropTypes.func,\n allowClear: PropTypes.bool,\n transitionName: PropTypes.string,\n animation: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n switcherIcon: PropTypes.any,\n __propsSymbol__: PropTypes.any\n }, {\n prefixCls: 'rc-tree-select',\n prefixAria: 'rc-tree-select',\n showSearch: true,\n autoClearSearchValue: true,\n showCheckedStrategy: SHOW_CHILD,\n\n // dropdownMatchSelectWidth change the origin design, set to false now\n // ref: https://github.com/react-component/select/blob/4cad95e098a341a09de239ad6981067188842020/src/Select.jsx#L344\n // ref: https://github.com/react-component/select/pull/71\n treeNodeFilterProp: 'value',\n treeNodeLabelProp: 'title',\n treeIcon: false,\n notFoundContent: 'Not Found',\n dropdownStyle: {},\n dropdownVisibleChange: function dropdownVisibleChange() {\n return true;\n }\n }),\n\n data: function data() {\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n var _$props = this.$props,\n prefixAria = _$props.prefixAria,\n defaultOpen = _$props.defaultOpen,\n open = _$props.open;\n\n this.needSyncKeys = {};\n this.selectorRef = createRef();\n this.selectTriggerRef = createRef();\n\n // ARIA need `aria-controls` props mapping\n // Since this need user input. Let's generate ourselves\n this.ariaId = generateAriaId(prefixAria + '-list');\n\n var state = {\n _open: open || defaultOpen,\n _valueList: [],\n _searchHalfCheckedKeys: [],\n _missValueList: [], // Contains the value not in the tree\n _selectorValueList: [], // Used for multiple selector\n _valueEntities: {},\n _posEntities: new Map(),\n _keyEntities: new Map(),\n _searchValue: '',\n _prevProps: {},\n _init: true,\n _focused: undefined,\n _treeNodes: undefined,\n _filteredTreeNodes: undefined\n };\n var newState = this.getDerivedState(this.$props, state);\n return _extends({}, state, newState);\n },\n provide: function provide() {\n return {\n vcTreeSelect: {\n onSelectorFocus: this.onSelectorFocus,\n onSelectorBlur: this.onSelectorBlur,\n onSelectorKeyDown: this.onComponentKeyDown,\n onSelectorClear: this.onSelectorClear,\n onMultipleSelectorRemove: this.onMultipleSelectorRemove,\n\n onTreeNodeSelect: this.onTreeNodeSelect,\n onTreeNodeCheck: this.onTreeNodeCheck,\n onPopupKeyDown: this.onComponentKeyDown,\n\n onSearchInputChange: this.onSearchInputChange,\n onSearchInputKeyDown: this.onSearchInputKeyDown\n }\n };\n },\n\n watch: _extends({}, getWatch(['treeData', 'defaultValue', 'value']), {\n __propsSymbol__: function __propsSymbol__() {\n var state = this.getDerivedState(this.$props, this.$data);\n this.setState(state);\n this.needSyncKeys = {};\n },\n '$data._valueList': function $data_valueList() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.forcePopupAlign();\n });\n },\n '$data._open': function $data_open(open) {\n var _this2 = this;\n\n setTimeout(function () {\n var prefixCls = _this2.$props.prefixCls;\n var _$data = _this2.$data,\n selectorValueList = _$data._selectorValueList,\n valueEntities = _$data._valueEntities;\n\n var isMultiple = _this2.isMultiple();\n\n // Scroll to value position, only need sync on single mode\n if (!isMultiple && selectorValueList.length && open && _this2.popup) {\n var value = selectorValueList[0].value;\n\n var _popup$getTree = _this2.popup.getTree(),\n domTreeNodes = _popup$getTree.domTreeNodes;\n\n var _ref = valueEntities[value] || {},\n key = _ref.key;\n\n var treeNode = domTreeNodes[key];\n\n if (treeNode) {\n var domNode = treeNode.$el;\n raf(function () {\n var popupNode = _this2.popup.$el;\n var triggerContainer = findPopupContainer(popupNode, prefixCls + '-dropdown');\n var searchNode = _this2.popup.searchRef.current;\n\n if (domNode && triggerContainer && searchNode) {\n scrollIntoView(domNode, triggerContainer, {\n onlyScrollIfNeeded: true,\n offsetTop: searchNode.offsetHeight\n });\n }\n });\n }\n }\n });\n }\n }),\n mounted: function mounted() {\n var _this3 = this;\n\n this.$nextTick(function () {\n var _$props2 = _this3.$props,\n autoFocus = _$props2.autoFocus,\n disabled = _$props2.disabled;\n\n if (autoFocus && !disabled) {\n _this3.focus();\n }\n });\n },\n\n\n methods: {\n getDerivedState: function getDerivedState(nextProps, prevState) {\n var h = this.$createElement;\n var _prevState$_prevProps = prevState._prevProps,\n prevProps = _prevState$_prevProps === undefined ? {} : _prevState$_prevProps;\n var treeCheckable = nextProps.treeCheckable,\n treeCheckStrictly = nextProps.treeCheckStrictly,\n filterTreeNode = nextProps.filterTreeNode,\n treeNodeFilterProp = nextProps.treeNodeFilterProp,\n treeDataSimpleMode = nextProps.treeDataSimpleMode;\n\n var newState = {\n _prevProps: _extends({}, nextProps),\n _init: false\n };\n var self = this;\n // Process the state when props updated\n function processState(propName, updater) {\n if (prevProps[propName] !== nextProps[propName] || self.needSyncKeys[propName]) {\n updater(nextProps[propName], prevProps[propName]);\n return true;\n }\n return false;\n }\n\n var valueRefresh = false;\n\n // Open\n processState('open', function (propValue) {\n newState._open = propValue;\n });\n\n // Tree Nodes\n var treeNodes = void 0;\n var treeDataChanged = false;\n var treeDataModeChanged = false;\n processState('treeData', function (propValue) {\n treeNodes = convertDataToTree(h, propValue);\n treeDataChanged = true;\n });\n\n processState('treeDataSimpleMode', function (propValue, prevValue) {\n if (!propValue) return;\n\n var prev = !prevValue || prevValue === true ? {} : prevValue;\n\n // Shallow equal to avoid dynamic prop object\n if (!shallowEqual(propValue, prev)) {\n treeDataModeChanged = true;\n }\n });\n\n // Parse by `treeDataSimpleMode`\n if (treeDataSimpleMode && (treeDataChanged || treeDataModeChanged)) {\n var simpleMapper = _extends({\n id: 'id',\n pId: 'pId',\n rootPId: null\n }, treeDataSimpleMode !== true ? treeDataSimpleMode : {});\n treeNodes = convertDataToTree(h, parseSimpleTreeData(nextProps.treeData, simpleMapper));\n }\n\n // If `treeData` not provide, use children TreeNodes\n if (!nextProps.treeData) {\n // processState('children', (propValue) => {\n // treeNodes = Array.isArray(propValue) ? propValue : [propValue]\n // })\n treeNodes = filterEmpty(this.$slots['default']);\n }\n\n // Convert `treeData` to entities\n if (treeNodes) {\n var entitiesMap = convertTreeToEntities(treeNodes);\n newState._treeNodes = treeNodes;\n newState._posEntities = entitiesMap.posEntities;\n newState._valueEntities = entitiesMap.valueEntities;\n newState._keyEntities = entitiesMap.keyEntities;\n\n valueRefresh = true;\n }\n\n // Value List\n if (prevState._init) {\n processState('defaultValue', function (propValue) {\n newState._valueList = formatInternalValue(propValue, nextProps);\n valueRefresh = true;\n });\n }\n\n processState('value', function (propValue) {\n newState._valueList = formatInternalValue(propValue, nextProps);\n valueRefresh = true;\n });\n\n // Selector Value List\n if (valueRefresh) {\n // Find out that value not exist in the tree\n var missValueList = [];\n var filteredValueList = [];\n var keyList = [];\n\n // Get latest value list\n var latestValueList = newState._valueList;\n if (!latestValueList) {\n // Also need add prev missValueList to avoid new treeNodes contains the value\n latestValueList = [].concat(_toConsumableArray(prevState._valueList), _toConsumableArray(prevState._missValueList));\n }\n\n // Get key by value\n var valueLabels = {};\n latestValueList.forEach(function (wrapperValue) {\n var value = wrapperValue.value,\n label = wrapperValue.label;\n\n var entity = (newState._valueEntities || prevState._valueEntities)[value];\n valueLabels[value] = label;\n\n if (entity) {\n keyList.push(entity.key);\n filteredValueList.push(wrapperValue);\n return;\n }\n\n // If not match, it may caused by ajax load. We need keep this\n missValueList.push(wrapperValue);\n });\n\n // We need calculate the value when tree is checked tree\n if (treeCheckable && !treeCheckStrictly) {\n // Calculate the keys need to be checked\n var _conductCheck = conductCheck(keyList, true, newState._keyEntities || prevState._keyEntities),\n checkedKeys = _conductCheck.checkedKeys;\n\n // Format value list again for internal usage\n\n\n newState._valueList = checkedKeys.map(function (key) {\n var val = (newState._keyEntities || prevState._keyEntities).get(key).value;\n\n var wrappedValue = {\n value: val\n };\n\n if (valueLabels[val] !== undefined) {\n wrappedValue.label = valueLabels[val];\n }\n\n return wrappedValue;\n });\n } else {\n newState._valueList = filteredValueList;\n }\n\n // Fill the missValueList, we still need display in the selector\n newState._missValueList = missValueList;\n\n // Calculate the value list for `Selector` usage\n newState._selectorValueList = formatSelectorValue(newState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n }\n\n // [Legacy] To align with `Select` component,\n // We use `searchValue` instead of `inputValue` but still keep the api\n // `inputValue` support `null` to work as `autoClearSearchValue`\n processState('inputValue', function (propValue) {\n if (propValue !== null) {\n newState._searchValue = propValue;\n }\n });\n\n // Search value\n processState('searchValue', function (propValue) {\n newState._searchValue = propValue;\n });\n\n // Do the search logic\n if (newState._searchValue !== undefined || prevState._searchValue && treeNodes) {\n var searchValue = newState._searchValue !== undefined ? newState._searchValue : prevState._searchValue;\n var upperSearchValue = String(searchValue).toUpperCase();\n\n var filterTreeNodeFn = filterTreeNode;\n if (filterTreeNode === false) {\n // Don't filter if is false\n filterTreeNodeFn = function filterTreeNodeFn() {\n return true;\n };\n } else if (typeof filterTreeNodeFn !== 'function') {\n // When is not function (true or undefined), use inner filter\n filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n return nodeValue.indexOf(upperSearchValue) !== -1;\n };\n }\n\n newState._filteredTreeNodes = getFilterTree(this.$createElement, newState._treeNodes || prevState._treeNodes, searchValue, filterTreeNodeFn, newState._valueEntities || prevState._valueEntities, SelectNode);\n }\n\n // We should re-calculate the halfCheckedKeys when in search mode\n if (valueRefresh && treeCheckable && !treeCheckStrictly && (newState._searchValue || prevState._searchValue)) {\n newState._searchHalfCheckedKeys = getHalfCheckedKeys(newState._valueList, newState._valueEntities || prevState._valueEntities);\n }\n\n // Checked Strategy\n processState('showCheckedStrategy', function () {\n newState._selectorValueList = newState._selectorValueList || formatSelectorValue(newState._valueList || prevState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n });\n\n return newState;\n },\n\n // ==================== Selector ====================\n onSelectorFocus: function onSelectorFocus() {\n this.setState({ _focused: true });\n },\n onSelectorBlur: function onSelectorBlur() {\n this.setState({ _focused: false });\n\n // TODO: Close when Popup is also not focused\n // this.setState({ open: false });\n },\n\n\n // Handle key board event in both Selector and Popup\n onComponentKeyDown: function onComponentKeyDown(event) {\n var open = this.$data._open;\n var keyCode = event.keyCode;\n\n\n if (!open) {\n if ([KeyCode.ENTER, KeyCode.DOWN].indexOf(keyCode) !== -1) {\n this.setOpenState(true);\n }\n } else if (KeyCode.ESC === keyCode) {\n this.setOpenState(false);\n } else if ([KeyCode.UP, KeyCode.DOWN, KeyCode.LEFT, KeyCode.RIGHT].indexOf(keyCode) !== -1) {\n // TODO: Handle `open` state\n event.stopPropagation();\n }\n },\n onDeselect: function onDeselect(wrappedValue, node, nodeEventInfo) {\n this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n },\n onSelectorClear: function onSelectorClear(event) {\n var disabled = this.$props.disabled;\n\n if (disabled) return;\n\n this.triggerChange([], []);\n\n if (!this.isSearchValueControlled()) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n\n event.stopPropagation();\n },\n onMultipleSelectorRemove: function onMultipleSelectorRemove(event, removeValue) {\n event.stopPropagation();\n\n var _$data2 = this.$data,\n valueList = _$data2._valueList,\n missValueList = _$data2._missValueList,\n valueEntities = _$data2._valueEntities;\n var _$props3 = this.$props,\n treeCheckable = _$props3.treeCheckable,\n treeCheckStrictly = _$props3.treeCheckStrictly,\n treeNodeLabelProp = _$props3.treeNodeLabelProp,\n disabled = _$props3.disabled;\n\n if (disabled) return;\n\n // Find trigger entity\n var triggerEntity = valueEntities[removeValue];\n\n // Clean up value\n var newValueList = valueList;\n if (triggerEntity) {\n // If value is in tree\n if (treeCheckable && !treeCheckStrictly) {\n newValueList = valueList.filter(function (_ref2) {\n var value = _ref2.value;\n\n var entity = valueEntities[value];\n return !isPosRelated(entity.pos, triggerEntity.pos);\n });\n } else {\n newValueList = valueList.filter(function (_ref3) {\n var value = _ref3.value;\n return value !== removeValue;\n });\n }\n }\n\n var triggerNode = triggerEntity ? triggerEntity.node : null;\n\n var extraInfo = {\n triggerValue: removeValue,\n triggerNode: triggerNode\n };\n var deselectInfo = {\n node: triggerNode\n };\n\n // [Legacy] Little hack on this to make same action as `onCheck` event.\n if (treeCheckable) {\n var filteredEntityList = newValueList.map(function (_ref4) {\n var value = _ref4.value;\n return valueEntities[value];\n });\n\n deselectInfo.event = 'check';\n deselectInfo.checked = false;\n deselectInfo.checkedNodes = filteredEntityList.map(function (_ref5) {\n var node = _ref5.node;\n return node;\n });\n deselectInfo.checkedNodesPositions = filteredEntityList.map(function (_ref6) {\n var node = _ref6.node,\n pos = _ref6.pos;\n return {\n node: node,\n pos: pos\n };\n });\n\n if (treeCheckStrictly) {\n extraInfo.allCheckedNodes = deselectInfo.checkedNodes;\n } else {\n // TODO: It's too expansive to get `halfCheckedKeys` in onDeselect. Not pass this.\n extraInfo.allCheckedNodes = flatToHierarchy(filteredEntityList).map(function (_ref7) {\n var node = _ref7.node;\n return node;\n });\n }\n } else {\n deselectInfo.event = 'select';\n deselectInfo.selected = false;\n deselectInfo.selectedNodes = newValueList.map(function (_ref8) {\n var value = _ref8.value;\n return (valueEntities[value] || {}).node;\n });\n }\n\n // Some value user pass prop is not in the tree, we also need clean it\n var newMissValueList = missValueList.filter(function (_ref9) {\n var value = _ref9.value;\n return value !== removeValue;\n });\n var wrappedValue = void 0;\n if (this.isLabelInValue()) {\n wrappedValue = {\n label: triggerNode ? getPropsData(triggerNode)[treeNodeLabelProp] : null,\n value: removeValue\n };\n } else {\n wrappedValue = removeValue;\n }\n\n this.onDeselect(wrappedValue, triggerNode, deselectInfo);\n\n this.triggerChange(newMissValueList, newValueList, extraInfo);\n },\n\n\n // ===================== Popup ======================\n onValueTrigger: function onValueTrigger(isAdd, nodeList, nodeEventInfo, nodeExtraInfo) {\n var node = nodeEventInfo.node;\n var value = node.$props.value;\n var _$data3 = this.$data,\n missValueList = _$data3._missValueList,\n valueEntities = _$data3._valueEntities,\n keyEntities = _$data3._keyEntities,\n searchValue = _$data3._searchValue;\n var _$props4 = this.$props,\n disabled = _$props4.disabled,\n inputValue = _$props4.inputValue,\n treeNodeLabelProp = _$props4.treeNodeLabelProp,\n multiple = _$props4.multiple,\n treeCheckable = _$props4.treeCheckable,\n treeCheckStrictly = _$props4.treeCheckStrictly,\n autoClearSearchValue = _$props4.autoClearSearchValue;\n\n var label = node.$props[treeNodeLabelProp];\n\n if (disabled) return;\n\n // Wrap the return value for user\n var wrappedValue = void 0;\n if (this.isLabelInValue()) {\n wrappedValue = {\n value: value,\n label: label\n };\n } else {\n wrappedValue = value;\n }\n\n // [Legacy] Origin code not trigger `onDeselect` every time. Let's align the behaviour.\n if (isAdd) {\n this.__emit('select', wrappedValue, node, nodeEventInfo);\n } else {\n this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n }\n\n // Get wrapped value list.\n // This is a bit hack cause we use key to match the value.\n var newValueList = nodeList.map(function (node) {\n var props = getPropsData(node);\n return {\n value: props.value,\n label: props[treeNodeLabelProp]\n };\n });\n\n // When is `treeCheckable` and with `searchValue`, `valueList` is not full filled.\n // We need calculate the missing nodes.\n if (treeCheckable && !treeCheckStrictly) {\n var keyList = newValueList.map(function (_ref10) {\n var val = _ref10.value;\n return valueEntities[val].key;\n });\n if (isAdd) {\n keyList = conductCheck(keyList, true, keyEntities).checkedKeys;\n } else {\n keyList = conductCheck([valueEntities[value].key], false, keyEntities, {\n checkedKeys: keyList\n }).checkedKeys;\n }\n newValueList = keyList.map(function (key) {\n var props = getPropsData(keyEntities.get(key).node);\n return {\n value: props.value,\n label: props[treeNodeLabelProp]\n };\n });\n }\n\n // Clean up `searchValue` when this prop is set\n if (autoClearSearchValue || inputValue === null) {\n // Clean state `searchValue` if uncontrolled\n if (!this.isSearchValueControlled() && (multiple || treeCheckable)) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n\n // Trigger onSearch if `searchValue` to be empty.\n // We should also trigger onSearch with empty string here\n // since if user use `treeExpandedKeys`, it need user have the ability to reset it.\n if (searchValue && searchValue.length) {\n this.__emit('update:searchValue', '');\n this.__emit('search', '');\n }\n }\n\n // [Legacy] Provide extra info\n var extraInfo = _extends({}, nodeExtraInfo, {\n triggerValue: value,\n triggerNode: node\n });\n\n this.triggerChange(missValueList, newValueList, extraInfo);\n },\n onTreeNodeSelect: function onTreeNodeSelect(_, nodeEventInfo) {\n var _$data4 = this.$data,\n valueList = _$data4._valueList,\n valueEntities = _$data4._valueEntities;\n var _$props5 = this.$props,\n treeCheckable = _$props5.treeCheckable,\n multiple = _$props5.multiple;\n\n if (treeCheckable) return;\n\n if (!multiple) {\n this.setOpenState(false);\n }\n\n var isAdd = nodeEventInfo.selected;\n var selectedValue = nodeEventInfo.node.$props.value;\n\n\n var newValueList = void 0;\n\n if (!multiple) {\n newValueList = [{ value: selectedValue }];\n } else {\n newValueList = valueList.filter(function (_ref11) {\n var value = _ref11.value;\n return value !== selectedValue;\n });\n if (isAdd) {\n newValueList.push({ value: selectedValue });\n }\n }\n\n var selectedNodes = newValueList.map(function (_ref12) {\n var value = _ref12.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref13) {\n var node = _ref13.node;\n return node;\n });\n\n this.onValueTrigger(isAdd, selectedNodes, nodeEventInfo, { selected: isAdd });\n },\n onTreeNodeCheck: function onTreeNodeCheck(_, nodeEventInfo) {\n var _$data5 = this.$data,\n searchValue = _$data5._searchValue,\n keyEntities = _$data5._keyEntities,\n valueEntities = _$data5._valueEntities,\n valueList = _$data5._valueList;\n var treeCheckStrictly = this.$props.treeCheckStrictly;\n var checkedNodes = nodeEventInfo.checkedNodes,\n checkedNodesPositions = nodeEventInfo.checkedNodesPositions;\n\n var isAdd = nodeEventInfo.checked;\n\n var extraInfo = {\n checked: isAdd\n };\n\n var checkedNodeList = checkedNodes;\n\n // [Legacy] Check event provide `allCheckedNodes`.\n // When `treeCheckStrictly` or internal `searchValue` is set, TreeNode will be unrelated:\n // - Related: Show the top checked nodes and has children prop.\n // - Unrelated: Show all the checked nodes.\n if (searchValue) {\n var oriKeyList = valueList.map(function (_ref14) {\n var value = _ref14.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref15) {\n var key = _ref15.key;\n return key;\n });\n\n var keyList = void 0;\n if (isAdd) {\n keyList = Array.from(new Set([].concat(_toConsumableArray(oriKeyList), _toConsumableArray(checkedNodeList.map(function (node) {\n var _getPropsData = getPropsData(node),\n value = _getPropsData.value;\n\n return valueEntities[value].key;\n })))));\n } else {\n keyList = conductCheck([getPropsData(nodeEventInfo.node).eventKey], false, keyEntities, {\n checkedKeys: oriKeyList\n }).checkedKeys;\n }\n\n checkedNodeList = keyList.map(function (key) {\n return keyEntities.get(key).node;\n });\n\n // Let's follow as not `treeCheckStrictly` format\n extraInfo.allCheckedNodes = keyList.map(function (key) {\n return cleanEntity(keyEntities.get(key));\n });\n } else if (treeCheckStrictly) {\n extraInfo.allCheckedNodes = nodeEventInfo.checkedNodes;\n } else {\n extraInfo.allCheckedNodes = flatToHierarchy(checkedNodesPositions);\n }\n\n this.onValueTrigger(isAdd, checkedNodeList, nodeEventInfo, extraInfo);\n },\n\n\n // ==================== Trigger =====================\n\n onDropdownVisibleChange: function onDropdownVisibleChange(open) {\n var _$props6 = this.$props,\n multiple = _$props6.multiple,\n treeCheckable = _$props6.treeCheckable;\n var _searchValue = this.$data._searchValue;\n\n // When set open success and single mode,\n // we will reset the input content.\n\n if (open && !multiple && !treeCheckable && _searchValue) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n this.setOpenState(open, true);\n },\n onSearchInputChange: function onSearchInputChange(event) {\n var value = event.target.value;\n var _$data6 = this.$data,\n treeNodes = _$data6._treeNodes,\n valueEntities = _$data6._valueEntities;\n var _$props7 = this.$props,\n filterTreeNode = _$props7.filterTreeNode,\n treeNodeFilterProp = _$props7.treeNodeFilterProp;\n\n this.__emit('update:searchValue', value);\n this.__emit('search', value);\n\n var isSet = false;\n\n if (!this.isSearchValueControlled()) {\n isSet = this.setUncontrolledState({\n _searchValue: value\n });\n this.setOpenState(true);\n }\n\n if (isSet) {\n // Do the search logic\n var upperSearchValue = String(value).toUpperCase();\n\n var filterTreeNodeFn = filterTreeNode;\n if (filterTreeNode === false) {\n filterTreeNodeFn = function filterTreeNodeFn() {\n return true;\n };\n } else if (!filterTreeNodeFn) {\n filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n return nodeValue.indexOf(upperSearchValue) !== -1;\n };\n }\n\n this.setState({\n _filteredTreeNodes: getFilterTree(this.$createElement, treeNodes, value, filterTreeNodeFn, valueEntities, SelectNode)\n });\n }\n },\n onSearchInputKeyDown: function onSearchInputKeyDown(event) {\n var _$data7 = this.$data,\n searchValue = _$data7._searchValue,\n valueList = _$data7._valueList;\n var keyCode = event.keyCode;\n\n\n if (KeyCode.BACKSPACE === keyCode && this.isMultiple() && !searchValue && valueList.length) {\n var lastValue = valueList[valueList.length - 1].value;\n this.onMultipleSelectorRemove(event, lastValue);\n }\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n var _this4 = this;\n\n raf(function () {\n _this4.forcePopupAlign();\n });\n },\n setPopupRef: function setPopupRef(popup) {\n this.popup = popup;\n },\n\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState: function setUncontrolledState(state) {\n var needSync = false;\n var newState = {};\n var props = getOptionProps(this);\n Object.keys(state).forEach(function (name) {\n if (name.slice(1) in props) return;\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n\n return needSync;\n },\n\n\n // [Legacy] Origin provide `documentClickClose` which triggered by `Trigger`\n // Currently `TreeSelect` align the hide popup logic as `Select` which blur to hide.\n // `documentClickClose` is not accurate anymore. Let's just keep the key word.\n setOpenState: function setOpenState(open) {\n var byTrigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dropdownVisibleChange = this.$props.dropdownVisibleChange;\n\n\n if (dropdownVisibleChange && dropdownVisibleChange(open, { documentClickClose: !open && byTrigger }) === false) {\n return;\n }\n\n this.setUncontrolledState({ _open: open });\n },\n\n\n // Tree checkable is also a multiple case\n isMultiple: function isMultiple() {\n var _$props8 = this.$props,\n multiple = _$props8.multiple,\n treeCheckable = _$props8.treeCheckable;\n\n return !!(multiple || treeCheckable);\n },\n isLabelInValue: function isLabelInValue() {\n return _isLabelInValue(this.$props);\n },\n\n\n // [Legacy] To align with `Select` component,\n // We use `searchValue` instead of `inputValue`\n // but currently still need support that.\n // Add this method the check if is controlled\n isSearchValueControlled: function isSearchValueControlled() {\n var props = getOptionProps(this);\n var inputValue = props.inputValue;\n\n if ('searchValue' in props) return true;\n return 'inputValue' in props && inputValue !== null;\n },\n forcePopupAlign: function forcePopupAlign() {\n var $trigger = this.selectTriggerRef.current;\n if ($trigger) {\n $trigger.forcePopupAlign();\n }\n },\n delayForcePopupAlign: function delayForcePopupAlign() {\n var _this5 = this;\n\n // Wait 2 frame to avoid dom update & dom algin in the same time\n // https://github.com/ant-design/ant-design/issues/12031\n raf(function () {\n raf(_this5.forcePopupAlign);\n });\n },\n\n\n /**\n * 1. Update state valueList.\n * 2. Fire `onChange` event to user.\n */\n triggerChange: function triggerChange(missValueList, valueList) {\n var extraInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _$data8 = this.$data,\n valueEntities = _$data8._valueEntities,\n searchValue = _$data8._searchValue,\n prevSelectorValueList = _$data8._selectorValueList;\n\n var props = getOptionProps(this);\n var disabled = props.disabled,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly;\n\n if (disabled) return;\n\n // Trigger\n var extra = _extends({\n // [Legacy] Always return as array contains label & value\n preValue: prevSelectorValueList.map(function (_ref16) {\n var label = _ref16.label,\n value = _ref16.value;\n return { label: label, value: value };\n })\n }, extraInfo);\n\n // Format value by `treeCheckStrictly`\n var selectorValueList = formatSelectorValue(valueList, props, valueEntities);\n\n if (!('value' in props)) {\n var newState = {\n _missValueList: missValueList,\n _valueList: valueList,\n _selectorValueList: selectorValueList\n };\n\n if (searchValue && treeCheckable && !treeCheckStrictly) {\n newState._searchHalfCheckedKeys = getHalfCheckedKeys(valueList, valueEntities);\n }\n\n this.setState(newState);\n }\n\n // Only do the logic when `onChange` function provided\n if (getListeners(this).change) {\n var connectValueList = void 0;\n\n // Get value by mode\n if (this.isMultiple()) {\n connectValueList = [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList));\n } else {\n connectValueList = selectorValueList.slice(0, 1);\n }\n\n var labelList = null;\n var returnValue = void 0;\n\n if (this.isLabelInValue()) {\n returnValue = connectValueList.map(function (_ref17) {\n var label = _ref17.label,\n value = _ref17.value;\n return { label: label, value: value };\n });\n } else {\n labelList = [];\n returnValue = connectValueList.map(function (_ref18) {\n var label = _ref18.label,\n value = _ref18.value;\n\n labelList.push(label);\n return value;\n });\n }\n\n if (!this.isMultiple()) {\n returnValue = returnValue[0];\n }\n this.__emit('change', returnValue, labelList, extra);\n }\n },\n focus: function focus() {\n this.selectorRef.current.focus();\n },\n blur: function blur() {\n this.selectorRef.current.blur();\n }\n },\n\n // ===================== Render =====================\n\n render: function render() {\n var h = arguments[0];\n var _$data9 = this.$data,\n valueList = _$data9._valueList,\n missValueList = _$data9._missValueList,\n selectorValueList = _$data9._selectorValueList,\n searchHalfCheckedKeys = _$data9._searchHalfCheckedKeys,\n valueEntities = _$data9._valueEntities,\n keyEntities = _$data9._keyEntities,\n searchValue = _$data9._searchValue,\n open = _$data9._open,\n focused = _$data9._focused,\n treeNodes = _$data9._treeNodes,\n filteredTreeNodes = _$data9._filteredTreeNodes;\n\n var props = getOptionProps(this);\n var prefixCls = props.prefixCls,\n treeExpandedKeys = props.treeExpandedKeys;\n\n var isMultiple = this.isMultiple();\n\n var passProps = {\n props: _extends({}, props, {\n isMultiple: isMultiple,\n valueList: valueList,\n searchHalfCheckedKeys: searchHalfCheckedKeys,\n selectorValueList: [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList)),\n valueEntities: valueEntities,\n keyEntities: keyEntities,\n searchValue: searchValue,\n upperSearchValue: (searchValue || '').toUpperCase(), // Perf save\n open: open,\n focused: focused,\n dropdownPrefixCls: prefixCls + '-dropdown',\n ariaId: this.ariaId\n }),\n on: _extends({}, getListeners(this), {\n choiceAnimationLeave: this.onChoiceAnimationLeave\n }),\n scopedSlots: this.$scopedSlots\n };\n var popupProps = mergeProps(passProps, {\n props: {\n treeNodes: treeNodes,\n filteredTreeNodes: filteredTreeNodes,\n // Tree expanded control\n treeExpandedKeys: treeExpandedKeys,\n __propsSymbol__: Symbol()\n },\n on: {\n treeExpanded: this.delayForcePopupAlign\n },\n directives: [{\n name: 'ant-ref',\n value: this.setPopupRef\n }]\n });\n\n var Popup = isMultiple ? MultiplePopup : SinglePopup;\n var $popup = h(Popup, popupProps);\n\n var Selector = isMultiple ? MultipleSelector : SingleSelector;\n var $selector = h(Selector, _mergeJSXProps([passProps, {\n directives: [{\n name: 'ant-ref',\n value: this.selectorRef\n }]\n }]));\n var selectTriggerProps = mergeProps(passProps, {\n props: {\n popupElement: $popup,\n dropdownVisibleChange: this.onDropdownVisibleChange\n },\n directives: [{\n name: 'ant-ref',\n value: this.selectTriggerRef\n }]\n });\n return h(\n SelectTrigger,\n selectTriggerProps,\n [$selector]\n );\n }\n};\n\nSelect.TreeNode = SelectNode;\nSelect.SHOW_ALL = SHOW_ALL;\nSelect.SHOW_PARENT = SHOW_PARENT;\nSelect.SHOW_CHILD = SHOW_CHILD;\n\n// Let warning show correct component name\nSelect.name = 'TreeSelect';\n\nexport default Select;","import Select from './Select';\nimport SelectNode from './SelectNode';\n\nexport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from './strategies';\nexport var TreeNode = SelectNode;\n\nexport default Select;","// export this package's api\n// base 2.9.3\nimport Vue from 'vue';\nimport TreeSelect from './src';\nimport ref from 'vue-ref';\n\nVue.use(ref, { name: 'ant-ref' });\nexport default TreeSelect;\n\nexport { TreeNode, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './src';","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport { AbstractSelectProps } from '../select';\n\nexport var TreeData = PropTypes.shape({\n key: PropTypes.string,\n value: PropTypes.string,\n label: PropTypes.any,\n scopedSlots: PropTypes.object,\n children: PropTypes.array\n}).loose;\n\nexport var TreeSelectProps = function TreeSelectProps() {\n return _extends({}, AbstractSelectProps(), {\n autoFocus: PropTypes.bool,\n dropdownStyle: PropTypes.object,\n filterTreeNode: PropTypes.oneOfType([Function, Boolean]),\n getPopupContainer: PropTypes.func,\n labelInValue: PropTypes.bool,\n loadData: PropTypes.func,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array, PropTypes.number]),\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array, PropTypes.number]),\n multiple: PropTypes.bool,\n notFoundContent: PropTypes.any,\n // onSelect: (value: any) => void,\n // onChange: (value: any, label: any) => void,\n // onSearch: (value: any) => void,\n searchPlaceholder: PropTypes.string,\n searchValue: PropTypes.string,\n showCheckedStrategy: PropTypes.oneOf(['SHOW_ALL', 'SHOW_PARENT', 'SHOW_CHILD']),\n suffixIcon: PropTypes.any,\n treeCheckable: PropTypes.oneOfType([PropTypes.any, PropTypes.bool]),\n treeCheckStrictly: PropTypes.bool,\n treeData: PropTypes.arrayOf(Object),\n treeDataSimpleMode: PropTypes.oneOfType([Boolean, Object]),\n\n dropdownClassName: PropTypes.string,\n dropdownMatchSelectWidth: PropTypes.bool,\n treeDefaultExpandAll: PropTypes.bool,\n treeExpandedKeys: PropTypes.array,\n treeIcon: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.array,\n treeNodeFilterProp: PropTypes.string,\n treeNodeLabelProp: PropTypes.string,\n replaceFields: PropTypes.object.def({})\n });\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport VcTreeSelect, { TreeNode, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from '../vc-tree-select';\nimport classNames from 'classnames';\nimport { TreeSelectProps } from './interface';\nimport warning from '../_util/warning';\nimport { initDefaultProps, getOptionProps, getComponentFromProp, filterEmpty, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Base from '../base';\n\nexport { TreeData, TreeSelectProps } from './interface';\nimport Icon from '../icon';\nimport omit from 'omit.js';\n\nvar TreeSelect = {\n TreeNode: _extends({}, TreeNode, { name: 'ATreeSelectNode' }),\n SHOW_ALL: SHOW_ALL,\n SHOW_PARENT: SHOW_PARENT,\n SHOW_CHILD: SHOW_CHILD,\n name: 'ATreeSelect',\n props: initDefaultProps(TreeSelectProps(), {\n transitionName: 'slide-up',\n choiceTransitionName: 'zoom',\n showSearch: false\n }),\n model: {\n prop: 'value',\n event: 'change'\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n created: function created() {\n warning(this.multiple !== false || !this.treeCheckable, 'TreeSelect', '`multiple` will alway be `true` when `treeCheckable` is true');\n },\n\n methods: {\n focus: function focus() {\n this.$refs.vcTreeSelect.focus();\n },\n blur: function blur() {\n this.$refs.vcTreeSelect.blur();\n },\n renderSwitcherIcon: function renderSwitcherIcon(prefixCls, _ref) {\n var isLeaf = _ref.isLeaf,\n loading = _ref.loading;\n var h = this.$createElement;\n\n if (loading) {\n return h(Icon, {\n attrs: { type: 'loading' },\n 'class': prefixCls + '-switcher-loading-icon' });\n }\n if (isLeaf) {\n return null;\n }\n return h(Icon, {\n attrs: { type: 'caret-down' },\n 'class': prefixCls + '-switcher-icon' });\n },\n onChange: function onChange() {\n this.$emit.apply(this, ['change'].concat(Array.prototype.slice.call(arguments)));\n },\n updateTreeData: function updateTreeData(treeData) {\n var _this = this;\n\n var $scopedSlots = this.$scopedSlots;\n\n var defaultFields = {\n children: 'children',\n title: 'title',\n key: 'key',\n label: 'label',\n value: 'value'\n };\n var replaceFields = _extends({}, defaultFields, this.$props.replaceFields);\n return treeData.map(function (item) {\n var _item$scopedSlots = item.scopedSlots,\n scopedSlots = _item$scopedSlots === undefined ? {} : _item$scopedSlots;\n\n var label = item[replaceFields.label];\n var title = item[replaceFields.title];\n var value = item[replaceFields.value];\n var key = item[replaceFields.key];\n var children = item[replaceFields.children];\n var newLabel = typeof label === 'function' ? label(_this.$createElement) : label;\n var newTitle = typeof title === 'function' ? title(_this.$createElement) : title;\n if (!newLabel && scopedSlots.label && $scopedSlots[scopedSlots.label]) {\n newLabel = $scopedSlots[scopedSlots.label](item);\n }\n if (!newTitle && scopedSlots.title && $scopedSlots[scopedSlots.title]) {\n newTitle = $scopedSlots[scopedSlots.title](item);\n }\n var treeNodeProps = _extends({}, item, {\n title: newTitle || newLabel,\n value: value,\n dataRef: item,\n key: key\n });\n if (children) {\n return _extends({}, treeNodeProps, { children: _this.updateTreeData(children) });\n }\n return treeNodeProps;\n });\n }\n },\n\n render: function render(h) {\n var _cls,\n _this2 = this;\n\n var props = getOptionProps(this);\n\n var customizePrefixCls = props.prefixCls,\n size = props.size,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n getPopupContainer = props.getPopupContainer,\n restProps = _objectWithoutProperties(props, ['prefixCls', 'size', 'dropdownStyle', 'dropdownClassName', 'getPopupContainer']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n\n var renderEmpty = this.configProvider.renderEmpty;\n var notFoundContent = getComponentFromProp(this, 'notFoundContent');\n var removeIcon = getComponentFromProp(this, 'removeIcon');\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n var getContextPopupContainer = this.configProvider.getPopupContainer;\n\n var rest = omit(restProps, ['inputIcon', 'removeIcon', 'clearIcon', 'switcherIcon', 'suffixIcon']);\n var suffixIcon = getComponentFromProp(this, 'suffixIcon');\n suffixIcon = Array.isArray(suffixIcon) ? suffixIcon[0] : suffixIcon;\n var treeData = props.treeData;\n if (treeData) {\n treeData = this.updateTreeData(treeData);\n }\n var cls = (_cls = {}, _defineProperty(_cls, prefixCls + '-lg', size === 'large'), _defineProperty(_cls, prefixCls + '-sm', size === 'small'), _cls);\n\n // showSearch: single - false, multiple - true\n var showSearch = restProps.showSearch;\n\n if (!('showSearch' in restProps)) {\n showSearch = !!(restProps.multiple || restProps.treeCheckable);\n }\n\n var checkable = getComponentFromProp(this, 'treeCheckable');\n if (checkable) {\n checkable = h('span', { 'class': prefixCls + '-tree-checkbox-inner' });\n }\n\n var inputIcon = suffixIcon || h(Icon, {\n attrs: { type: 'down' },\n 'class': prefixCls + '-arrow-icon' });\n\n var finalRemoveIcon = removeIcon || h(Icon, {\n attrs: { type: 'close' },\n 'class': prefixCls + '-remove-icon' });\n\n var finalClearIcon = clearIcon || h(Icon, {\n attrs: { type: 'close-circle', theme: 'filled' },\n 'class': prefixCls + '-clear-icon' });\n var VcTreeSelectProps = {\n props: _extends(_extends({\n switcherIcon: function switcherIcon(nodeProps) {\n return _this2.renderSwitcherIcon(prefixCls, nodeProps);\n },\n inputIcon: inputIcon,\n removeIcon: finalRemoveIcon,\n clearIcon: finalClearIcon\n }, rest, {\n showSearch: showSearch,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: classNames(dropdownClassName, prefixCls + '-tree-dropdown'),\n prefixCls: prefixCls,\n dropdownStyle: _extends({ maxHeight: '100vh', overflow: 'auto' }, dropdownStyle),\n treeCheckable: checkable,\n notFoundContent: notFoundContent || renderEmpty(h, 'Select'),\n __propsSymbol__: Symbol()\n }), treeData ? { treeData: treeData } : {}),\n 'class': cls,\n on: _extends({}, getListeners(this), { change: this.onChange }),\n ref: 'vcTreeSelect',\n scopedSlots: this.$scopedSlots\n };\n return h(\n VcTreeSelect,\n VcTreeSelectProps,\n [filterEmpty(this.$slots['default'])]\n );\n }\n};\n\n/* istanbul ignore next */\nTreeSelect.install = function (Vue) {\n Vue.use(Base);\n Vue.component(TreeSelect.name, TreeSelect);\n Vue.component(TreeSelect.TreeNode.name, TreeSelect.TreeNode);\n};\n\nexport default TreeSelect;","// based on rc-tree 2.1.3\n'use strict';\n\nmodule.exports = require('./src/');","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport { filterEmpty } from '../_util/props-util';\nimport PropTypes from '../_util/vue-types';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nvar ButtonGroupProps = {\n prefixCls: PropTypes.string,\n size: {\n validator: function validator(value) {\n return ['small', 'large', 'default'].includes(value);\n }\n }\n};\nexport { ButtonGroupProps };\nexport default {\n name: 'AButtonGroup',\n props: ButtonGroupProps,\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n return {\n sizeMap: {\n large: 'lg',\n small: 'sm'\n }\n };\n },\n render: function render() {\n var _classes;\n\n var h = arguments[0];\n var customizePrefixCls = this.prefixCls,\n size = this.size,\n $slots = this.$slots;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n\n // large => lg\n // small => sm\n var sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n default:\n break;\n }\n var classes = (_classes = {}, _defineProperty(_classes, '' + prefixCls, true), _defineProperty(_classes, prefixCls + '-' + sizeCls, sizeCls), _classes);\n return h(\n 'div',\n { 'class': classes },\n [filterEmpty($slots['default'])]\n );\n }\n};","import _typeof from 'babel-runtime/helpers/typeof';\nimport contains from '../vc-util/Dom/contains';\nexport function buffer(fn, ms) {\n var timer = void 0;\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n\n bufferFn.clear = clear;\n\n return bufferFn;\n}\n\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\n\nexport function isWindow(obj) {\n return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj.window === obj;\n}\n\nexport function isSimilarValue(val1, val2) {\n var int1 = Math.floor(val1);\n var int2 = Math.floor(val2);\n return Math.abs(int1 - int2) <= 1;\n}\n\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement)) {\n activeElement.focus();\n }\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport PropTypes from '../_util/vue-types';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport { isWindow, buffer, isSamePoint, isSimilarValue, restoreFocus } from './util';\nimport { cloneElement } from '../_util/vnode.js';\nimport clonedeep from 'lodash/cloneDeep';\nimport { getSlot, getListeners } from '../_util/props-util';\n\nfunction getElement(func) {\n if (typeof func !== 'function' || !func) return null;\n return func();\n}\n\nfunction getPoint(point) {\n if ((typeof point === 'undefined' ? 'undefined' : _typeof(point)) !== 'object' || !point) return null;\n return point;\n}\n\nexport default {\n props: {\n childrenProps: PropTypes.object,\n align: PropTypes.object.isRequired,\n target: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).def(function () {\n return window;\n }),\n monitorBufferTime: PropTypes.number.def(50),\n monitorWindowResize: PropTypes.bool.def(false),\n disabled: PropTypes.bool.def(false)\n },\n data: function data() {\n this.aligned = false;\n return {};\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.prevProps = _extends({}, _this.$props);\n var props = _this.$props;\n // if parent ref not attached .... use document.getElementById\n !_this.aligned && _this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n _this.startMonitorWindowResize();\n }\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n var prevProps = _this2.prevProps;\n var props = _this2.$props;\n var reAlign = false;\n if (!props.disabled) {\n var source = _this2.$el;\n var sourceRect = source ? source.getBoundingClientRect() : null;\n\n if (prevProps.disabled) {\n reAlign = true;\n } else {\n var lastElement = getElement(prevProps.target);\n var currentElement = getElement(props.target);\n var lastPoint = getPoint(prevProps.target);\n var currentPoint = getPoint(props.target);\n if (isWindow(lastElement) && isWindow(currentElement)) {\n // Skip if is window\n reAlign = false;\n } else if (lastElement !== currentElement || // Element change\n lastElement && !currentElement && currentPoint || // Change from element to point\n lastPoint && currentPoint && currentElement || // Change from point to element\n currentPoint && !isSamePoint(lastPoint, currentPoint)) {\n reAlign = true;\n }\n\n // If source element size changed\n var preRect = _this2.sourceRect || {};\n if (!reAlign && source && (!isSimilarValue(preRect.width, sourceRect.width) || !isSimilarValue(preRect.height, sourceRect.height))) {\n reAlign = true;\n }\n }\n _this2.sourceRect = sourceRect;\n }\n\n if (reAlign) {\n _this2.forceAlign();\n }\n\n if (props.monitorWindowResize && !props.disabled) {\n _this2.startMonitorWindowResize();\n } else {\n _this2.stopMonitorWindowResize();\n }\n _this2.prevProps = _extends({}, _this2.$props, { align: clonedeep(_this2.$props.align) });\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.stopMonitorWindowResize();\n },\n\n methods: {\n startMonitorWindowResize: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.$props.monitorBufferTime);\n this.resizeHandler = addEventListener(window, 'resize', this.bufferMonitor);\n }\n },\n stopMonitorWindowResize: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n },\n forceAlign: function forceAlign() {\n var _$props = this.$props,\n disabled = _$props.disabled,\n target = _$props.target,\n align = _$props.align;\n\n if (!disabled && target) {\n var source = this.$el;\n var listeners = getListeners(this);\n var result = void 0;\n var element = getElement(target);\n var point = getPoint(target);\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var activeElement = document.activeElement;\n\n if (element) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n restoreFocus(activeElement, source);\n this.aligned = true;\n listeners.align && listeners.align(source, result);\n }\n }\n },\n\n render: function render() {\n var childrenProps = this.$props.childrenProps;\n\n var child = getSlot(this)[0];\n if (child && childrenProps) {\n return cloneElement(child, { props: childrenProps });\n }\n return child;\n }\n};","// based on vc-align 2.4.5\nimport Align from './Align';\nexport default Align;","import PropTypes from '../_util/vue-types';\n\nexport default {\n props: {\n visible: PropTypes.bool,\n hiddenClassName: PropTypes.string\n },\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n hiddenClassName = _$props.hiddenClassName,\n visible = _$props.visible;\n\n var children = null;\n if (hiddenClassName || !this.$slots['default'] || this.$slots['default'].length > 1) {\n var cls = '';\n if (!visible && hiddenClassName) {\n // cls += ` ${hiddenClassName}`\n }\n children = h(\n 'div',\n { 'class': cls },\n [this.$slots['default']]\n );\n } else {\n children = this.$slots['default'][0];\n }\n return children;\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../_util/vue-types';\nimport LazyRenderBox from './LazyRenderBox';\nimport { getListeners } from '../_util/props-util';\n\nexport default {\n props: {\n hiddenClassName: PropTypes.string.def(''),\n prefixCls: PropTypes.string,\n visible: PropTypes.bool\n },\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n visible = _$props.visible,\n hiddenClassName = _$props.hiddenClassName;\n\n var divProps = {\n on: getListeners(this)\n };\n\n return h(\n 'div',\n _mergeJSXProps([divProps, { 'class': !visible ? hiddenClassName : '' }]),\n [h(\n LazyRenderBox,\n { 'class': prefixCls + '-content', attrs: { visible: visible }\n },\n [this.$slots['default']]\n )]\n );\n }\n};","import _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport Align from '../vc-align';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport animate from '../_util/css-animation';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getListeners } from '../_util/props-util';\n\nexport default {\n name: 'VCTriggerPopup',\n mixins: [BaseMixin],\n props: {\n visible: PropTypes.bool,\n getClassNameFromAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n align: PropTypes.any,\n destroyPopupOnHide: PropTypes.bool,\n prefixCls: PropTypes.string,\n getContainer: PropTypes.func,\n transitionName: PropTypes.string,\n animation: PropTypes.any,\n maskAnimation: PropTypes.string,\n maskTransitionName: PropTypes.string,\n mask: PropTypes.bool,\n zIndex: PropTypes.number,\n popupClassName: PropTypes.any,\n popupStyle: PropTypes.object.def(function () {\n return {};\n }),\n stretch: PropTypes.string,\n point: PropTypes.shape({\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })\n },\n data: function data() {\n this.domEl = null;\n return {\n // Used for stretch\n stretchChecked: false,\n targetWidth: undefined,\n targetHeight: undefined\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.rootNode = _this.getPopupDomNode();\n _this.setStretchSize();\n });\n },\n\n // 如添加会导致动画失效,如放开会导致快速输入时闪动 https://github.com/vueComponent/ant-design-vue/issues/1327,\n // 目前方案是保留动画,闪动问题(动画多次执行)进一步定位\n // beforeUpdate() {\n // if (this.domEl && this.domEl.rcEndListener) {\n // this.domEl.rcEndListener();\n // this.domEl = null;\n // }\n // },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setStretchSize();\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n } else if (this.$el.remove) {\n this.$el.remove();\n }\n },\n\n methods: {\n onAlign: function onAlign(popupDomNode, align) {\n var props = this.$props;\n var currentAlignClassName = props.getClassNameFromAlign(align);\n // FIX: https://github.com/react-component/trigger/issues/56\n // FIX: https://github.com/react-component/tooltip/issues/79\n if (this.currentAlignClassName !== currentAlignClassName) {\n this.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = this.getClassName(currentAlignClassName);\n }\n var listeners = getListeners(this);\n listeners.align && listeners.align(popupDomNode, align);\n },\n\n\n // Record size if stretch needed\n setStretchSize: function setStretchSize() {\n var _$props = this.$props,\n stretch = _$props.stretch,\n getRootDomNode = _$props.getRootDomNode,\n visible = _$props.visible;\n var _$data = this.$data,\n stretchChecked = _$data.stretchChecked,\n targetHeight = _$data.targetHeight,\n targetWidth = _$data.targetWidth;\n\n\n if (!stretch || !visible) {\n if (stretchChecked) {\n this.setState({ stretchChecked: false });\n }\n return;\n }\n\n var $ele = getRootDomNode();\n if (!$ele) return;\n\n var height = $ele.offsetHeight;\n var width = $ele.offsetWidth;\n\n if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n this.setState({\n stretchChecked: true,\n targetHeight: height,\n targetWidth: width\n });\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.popupInstance ? this.$refs.popupInstance.$el : null;\n },\n getTargetElement: function getTargetElement() {\n return this.$props.getRootDomNode();\n },\n\n\n // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n getAlignTarget: function getAlignTarget() {\n var point = this.$props.point;\n\n if (point) {\n return point;\n }\n return this.getTargetElement;\n },\n getMaskTransitionName: function getMaskTransitionName() {\n var props = this.$props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n },\n getTransitionName: function getTransitionName() {\n var props = this.$props;\n var transitionName = props.transitionName;\n var animation = props.animation;\n if (!transitionName) {\n if (typeof animation === 'string') {\n transitionName = '' + animation;\n } else if (animation && animation.props && animation.props.name) {\n transitionName = animation.props.name;\n }\n }\n return transitionName;\n },\n getClassName: function getClassName(currentAlignClassName) {\n return this.$props.prefixCls + ' ' + this.$props.popupClassName + ' ' + currentAlignClassName;\n },\n getPopupElement: function getPopupElement() {\n var _this3 = this;\n\n var h = this.$createElement;\n var props = this.$props,\n $slots = this.$slots,\n getTransitionName = this.getTransitionName;\n var _$data2 = this.$data,\n stretchChecked = _$data2.stretchChecked,\n targetHeight = _$data2.targetHeight,\n targetWidth = _$data2.targetWidth;\n var align = props.align,\n visible = props.visible,\n prefixCls = props.prefixCls,\n animation = props.animation,\n popupStyle = props.popupStyle,\n getClassNameFromAlign = props.getClassNameFromAlign,\n destroyPopupOnHide = props.destroyPopupOnHide,\n stretch = props.stretch;\n\n var className = this.getClassName(this.currentAlignClassName || getClassNameFromAlign(align));\n // const hiddenClassName = `${prefixCls}-hidden`\n if (!visible) {\n this.currentAlignClassName = null;\n }\n var sizeStyle = {};\n if (stretch) {\n // Stretch with target\n if (stretch.indexOf('height') !== -1) {\n sizeStyle.height = typeof targetHeight === 'number' ? targetHeight + 'px' : targetHeight;\n } else if (stretch.indexOf('minHeight') !== -1) {\n sizeStyle.minHeight = typeof targetHeight === 'number' ? targetHeight + 'px' : targetHeight;\n }\n if (stretch.indexOf('width') !== -1) {\n sizeStyle.width = typeof targetWidth === 'number' ? targetWidth + 'px' : targetWidth;\n } else if (stretch.indexOf('minWidth') !== -1) {\n sizeStyle.minWidth = typeof targetWidth === 'number' ? targetWidth + 'px' : targetWidth;\n }\n // Delay force align to makes ui smooth\n if (!stretchChecked) {\n // sizeStyle.visibility = 'hidden'\n setTimeout(function () {\n if (_this3.$refs.alignInstance) {\n _this3.$refs.alignInstance.forceAlign();\n }\n }, 0);\n }\n }\n var popupInnerProps = {\n props: {\n prefixCls: prefixCls,\n visible: visible\n // hiddenClassName,\n },\n 'class': className,\n on: getListeners(this),\n ref: 'popupInstance',\n style: _extends({}, sizeStyle, popupStyle, this.getZIndexStyle())\n };\n var transitionProps = {\n props: {\n appear: true,\n css: false\n }\n };\n var transitionName = getTransitionName();\n var useTransition = !!transitionName;\n var transitionEvent = {\n beforeEnter: function beforeEnter() {\n // el.style.display = el.__vOriginalDisplay\n // this.$refs.alignInstance.forceAlign();\n },\n enter: function enter(el, done) {\n // render 后 vue 会移除通过animate动态添加的 class导致动画闪动,延迟两帧添加动画class,可以进一步定位或者重写 transition 组件\n _this3.$nextTick(function () {\n if (_this3.$refs.alignInstance) {\n _this3.$refs.alignInstance.$nextTick(function () {\n _this3.domEl = el;\n animate(el, transitionName + '-enter', done);\n });\n } else {\n done();\n }\n });\n },\n beforeLeave: function beforeLeave() {\n _this3.domEl = null;\n },\n leave: function leave(el, done) {\n animate(el, transitionName + '-leave', done);\n }\n };\n\n if ((typeof animation === 'undefined' ? 'undefined' : _typeof(animation)) === 'object') {\n useTransition = true;\n\n var _animation$on = animation.on,\n on = _animation$on === undefined ? {} : _animation$on,\n _animation$props = animation.props,\n _props = _animation$props === undefined ? {} : _animation$props;\n\n transitionProps.props = _extends({}, transitionProps.props, _props);\n transitionProps.on = _extends({}, transitionEvent, on);\n } else {\n transitionProps.on = transitionEvent;\n }\n if (!useTransition) {\n transitionProps = {};\n }\n if (destroyPopupOnHide) {\n return h(\n 'transition',\n transitionProps,\n [visible ? h(\n Align,\n {\n attrs: {\n target: this.getAlignTarget(),\n\n monitorWindowResize: true,\n align: align\n },\n key: 'popup',\n ref: 'alignInstance', on: {\n 'align': this.onAlign\n }\n },\n [h(\n PopupInner,\n popupInnerProps,\n [$slots['default']]\n )]\n ) : null]\n );\n }\n return h(\n 'transition',\n transitionProps,\n [h(\n Align,\n {\n directives: [{\n name: 'show',\n value: visible\n }],\n attrs: {\n target: this.getAlignTarget(),\n\n monitorWindowResize: true,\n disabled: !visible,\n align: align\n },\n key: 'popup',\n ref: 'alignInstance', on: {\n 'align': this.onAlign\n }\n },\n [h(\n PopupInner,\n popupInnerProps,\n [$slots['default']]\n )]\n )]\n );\n },\n getZIndexStyle: function getZIndexStyle() {\n var style = {};\n var props = this.$props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n },\n getMaskElement: function getMaskElement() {\n var h = this.$createElement;\n\n var props = this.$props;\n var maskElement = null;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = h(LazyRenderBox, {\n directives: [{\n name: 'show',\n value: props.visible\n }],\n\n style: this.getZIndexStyle(),\n key: 'mask',\n 'class': props.prefixCls + '-mask',\n attrs: { visible: props.visible\n }\n });\n if (maskTransition) {\n maskElement = h(\n 'transition',\n {\n attrs: { appear: true, name: maskTransition }\n },\n [maskElement]\n );\n }\n }\n return maskElement;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var getMaskElement = this.getMaskElement,\n getPopupElement = this.getPopupElement;\n\n return h('div', [getMaskElement(), getPopupElement()]);\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends({}, baseAlign, align);\n}\n\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\nexport function noop() {}","import PropTypes from './vue-types';\n\nexport default {\n props: {\n autoMount: PropTypes.bool.def(true),\n autoDestroy: PropTypes.bool.def(true),\n visible: PropTypes.bool,\n forceRender: PropTypes.bool.def(false),\n parent: PropTypes.any,\n getComponent: PropTypes.func.isRequired,\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.func.isRequired\n },\n\n mounted: function mounted() {\n if (this.autoMount) {\n this.renderComponent();\n }\n },\n updated: function updated() {\n if (this.autoMount) {\n this.renderComponent();\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.autoDestroy) {\n this.removeContainer();\n }\n },\n\n methods: {\n removeContainer: function removeContainer() {\n if (this.container) {\n this._component && this._component.$destroy();\n this.container.parentNode.removeChild(this.container);\n this.container = null;\n this._component = null;\n }\n },\n renderComponent: function renderComponent() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var ready = arguments[1];\n var visible = this.visible,\n forceRender = this.forceRender,\n getContainer = this.getContainer,\n parent = this.parent;\n\n var self = this;\n if (visible || parent._component || parent.$refs._component || forceRender) {\n var el = this.componentEl;\n if (!this.container) {\n this.container = getContainer();\n el = document.createElement('div');\n this.componentEl = el;\n this.container.appendChild(el);\n }\n // self.getComponent 不要放在 render 中,会因为响应式数据问题导致,多次触发 render\n var com = { component: self.getComponent(props) };\n if (!this._component) {\n this._component = new this.$root.constructor({\n el: el,\n parent: self,\n data: {\n _com: com\n },\n mounted: function mounted() {\n this.$nextTick(function () {\n if (ready) {\n ready.call(self);\n }\n });\n },\n updated: function updated() {\n this.$nextTick(function () {\n if (ready) {\n ready.call(self);\n }\n });\n },\n\n methods: {\n setComponent: function setComponent(_com) {\n this.$data._com = _com;\n }\n },\n render: function render() {\n return this.$data._com.component;\n }\n });\n } else {\n this._component.setComponent(com);\n }\n }\n }\n },\n\n render: function render() {\n return this.children({\n renderComponent: this.renderComponent,\n removeContainer: this.removeContainer\n });\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport PropTypes from '../_util/vue-types';\nimport contains from '../vc-util/Dom/contains';\nimport { hasProp, getComponentFromProp, getDataEvents, filterEmpty, getListeners } from '../_util/props-util';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../_util/requestAnimationTimeout';\nimport addEventListener from '../vc-util/Dom/addEventListener';\nimport warning from '../_util/warning';\nimport Popup from './Popup';\nimport { getAlignFromPlacement, getAlignPopupClassName, noop } from './utils';\nimport BaseMixin from '../_util/BaseMixin';\nimport { cloneElement } from '../_util/vnode';\nimport ContainerRender from '../_util/ContainerRender';\n\nVue.use(ref, { name: 'ant-ref' });\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\nvar ALL_HANDLERS = ['click', 'mousedown', 'touchstart', 'mouseenter', 'mouseleave', 'focus', 'blur', 'contextmenu'];\n\nexport default {\n name: 'Trigger',\n mixins: [BaseMixin],\n props: {\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).def([]),\n showAction: PropTypes.any.def([]),\n hideAction: PropTypes.any.def([]),\n getPopupClassNameFromAlign: PropTypes.any.def(returnEmptyString),\n // onPopupVisibleChange: PropTypes.func.def(noop),\n afterPopupVisibleChange: PropTypes.func.def(noop),\n popup: PropTypes.any,\n popupStyle: PropTypes.object.def(function () {\n return {};\n }),\n prefixCls: PropTypes.string.def('rc-trigger-popup'),\n popupClassName: PropTypes.string.def(''),\n popupPlacement: PropTypes.string,\n builtinPlacements: PropTypes.object,\n popupTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n popupAnimation: PropTypes.any,\n mouseEnterDelay: PropTypes.number.def(0),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n zIndex: PropTypes.number,\n focusDelay: PropTypes.number.def(0),\n blurDelay: PropTypes.number.def(0.15),\n getPopupContainer: PropTypes.func,\n getDocument: PropTypes.func.def(returnDocument),\n forceRender: PropTypes.bool,\n destroyPopupOnHide: PropTypes.bool.def(false),\n mask: PropTypes.bool.def(false),\n maskClosable: PropTypes.bool.def(true),\n // onPopupAlign: PropTypes.func.def(noop),\n popupAlign: PropTypes.object.def(function () {\n return {};\n }),\n popupVisible: PropTypes.bool,\n defaultPopupVisible: PropTypes.bool.def(false),\n maskTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n maskAnimation: PropTypes.string,\n stretch: PropTypes.string,\n alignPoint: PropTypes.bool // Maybe we can support user pass position in the future\n },\n provide: function provide() {\n return {\n vcTriggerContext: this\n };\n },\n\n inject: {\n vcTriggerContext: { 'default': function _default() {\n return {};\n } },\n savePopupRef: { 'default': function _default() {\n return noop;\n } },\n dialogContext: { 'default': function _default() {\n return null;\n } }\n },\n data: function data() {\n var _this = this;\n\n var props = this.$props;\n var popupVisible = void 0;\n if (hasProp(this, 'popupVisible')) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n ALL_HANDLERS.forEach(function (h) {\n _this['fire' + h] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return {\n prevPopupVisible: popupVisible,\n sPopupVisible: popupVisible,\n point: null\n };\n },\n\n watch: {\n popupVisible: function popupVisible(val) {\n if (val !== undefined) {\n this.prevPopupVisible = this.sPopupVisible;\n this.sPopupVisible = val;\n }\n }\n },\n deactivated: function deactivated() {\n this.setPopupVisible(false);\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.renderComponent(null);\n _this2.updatedCal();\n });\n },\n updated: function updated() {\n var _this3 = this;\n\n var triggerAfterPopupVisibleChange = function triggerAfterPopupVisibleChange() {\n if (_this3.sPopupVisible !== _this3.prevPopupVisible) {\n _this3.afterPopupVisibleChange(_this3.sPopupVisible);\n }\n _this3.prevPopupVisible = _this3.sPopupVisible;\n };\n this.renderComponent(null, triggerAfterPopupVisibleChange);\n this.$nextTick(function () {\n _this3.updatedCal();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n },\n\n methods: {\n updatedCal: function updatedCal() {\n var props = this.$props;\n var state = this.$data;\n\n // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n if (state.sPopupVisible) {\n var currentDocument = void 0;\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextmenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n }\n // always hide on mobile\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n }\n // close popup when trigger type contains 'onContextmenu' and document is scrolling.\n if (!this.contextmenuOutsideHandler1 && this.isContextmenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextmenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextmenuClose);\n }\n // close popup when trigger type contains 'onContextmenu' and window is blur.\n if (!this.contextmenuOutsideHandler2 && this.isContextmenuToShow()) {\n this.contextmenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextmenuClose);\n }\n } else {\n this.clearOutsideHandler();\n }\n },\n onMouseenter: function onMouseenter(e) {\n var mouseEnterDelay = this.$props.mouseEnterDelay;\n\n this.fireEvents('mouseenter', e);\n this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n },\n onMouseMove: function onMouseMove(e) {\n this.fireEvents('mousemove', e);\n this.setPoint(e);\n },\n onMouseleave: function onMouseleave(e) {\n this.fireEvents('mouseleave', e);\n this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n },\n onPopupMouseenter: function onPopupMouseenter() {\n this.clearDelayTimer();\n },\n onPopupMouseleave: function onPopupMouseleave(e) {\n if (e && e.relatedTarget && !e.relatedTarget.setTimeout && this._component && this._component.getPopupDomNode && contains(this._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n this.delaySetPopupVisible(false, this.$props.mouseLeaveDelay);\n },\n onFocus: function onFocus(e) {\n this.fireEvents('focus', e);\n // incase focusin and focusout\n this.clearDelayTimer();\n if (this.isFocusToShow()) {\n this.focusTime = Date.now();\n this.delaySetPopupVisible(true, this.$props.focusDelay);\n }\n },\n onMousedown: function onMousedown(e) {\n this.fireEvents('mousedown', e);\n this.preClickTime = Date.now();\n },\n onTouchstart: function onTouchstart(e) {\n this.fireEvents('touchstart', e);\n this.preTouchTime = Date.now();\n },\n onBlur: function onBlur(e) {\n if (!contains(e.target, e.relatedTarget || document.activeElement)) {\n this.fireEvents('blur', e);\n this.clearDelayTimer();\n if (this.isBlurToHide()) {\n this.delaySetPopupVisible(false, this.$props.blurDelay);\n }\n }\n },\n onContextmenu: function onContextmenu(e) {\n e.preventDefault();\n this.fireEvents('contextmenu', e);\n this.setPopupVisible(true, e);\n },\n onContextmenuClose: function onContextmenuClose() {\n if (this.isContextmenuToShow()) {\n this.close();\n }\n },\n onClick: function onClick(event) {\n this.fireEvents('click', event);\n // focus will trigger click\n if (this.focusTime) {\n var preTime = void 0;\n if (this.preClickTime && this.preTouchTime) {\n preTime = Math.min(this.preClickTime, this.preTouchTime);\n } else if (this.preClickTime) {\n preTime = this.preClickTime;\n } else if (this.preTouchTime) {\n preTime = this.preTouchTime;\n }\n if (Math.abs(preTime - this.focusTime) < 20) {\n return;\n }\n this.focusTime = 0;\n }\n this.preClickTime = 0;\n this.preTouchTime = 0;\n // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n if (this.isClickToShow() && (this.isClickToHide() || this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n if (event && event.domEvent) {\n event.domEvent.preventDefault();\n }\n var nextVisible = !this.$data.sPopupVisible;\n if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {\n this.setPopupVisible(!this.$data.sPopupVisible, event);\n }\n },\n onPopupMouseDown: function onPopupMouseDown() {\n var _this4 = this;\n\n var _vcTriggerContext = this.vcTriggerContext,\n vcTriggerContext = _vcTriggerContext === undefined ? {} : _vcTriggerContext;\n\n this.hasPopupMouseDown = true;\n\n clearTimeout(this.mouseDownTimeout);\n this.mouseDownTimeout = setTimeout(function () {\n _this4.hasPopupMouseDown = false;\n }, 0);\n\n if (vcTriggerContext.onPopupMouseDown) {\n vcTriggerContext.onPopupMouseDown.apply(vcTriggerContext, arguments);\n }\n },\n onDocumentClick: function onDocumentClick(event) {\n if (this.$props.mask && !this.$props.maskClosable) {\n return;\n }\n var target = event.target;\n var root = this.$el;\n if (!contains(root, target) && !this.hasPopupMouseDown) {\n this.close();\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n return null;\n },\n getRootDomNode: function getRootDomNode() {\n return this.$el;\n // return this.$el.children[0] || this.$el\n },\n handleGetPopupClassFromAlign: function handleGetPopupClassFromAlign(align) {\n var className = [];\n var props = this.$props;\n var popupPlacement = props.popupPlacement,\n builtinPlacements = props.builtinPlacements,\n prefixCls = props.prefixCls,\n alignPoint = props.alignPoint,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n },\n getPopupAlign: function getPopupAlign() {\n var props = this.$props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n },\n savePopup: function savePopup(node) {\n this._component = node;\n this.savePopupRef(node);\n },\n getComponent: function getComponent() {\n var h = this.$createElement;\n\n var self = this;\n var mouseProps = {};\n if (this.isMouseEnterToShow()) {\n mouseProps.mouseenter = self.onPopupMouseenter;\n }\n if (this.isMouseLeaveToHide()) {\n mouseProps.mouseleave = self.onPopupMouseleave;\n }\n mouseProps.mousedown = this.onPopupMouseDown;\n mouseProps.touchstart = this.onPopupMouseDown;\n var handleGetPopupClassFromAlign = self.handleGetPopupClassFromAlign,\n getRootDomNode = self.getRootDomNode,\n getContainer = self.getContainer;\n var _self$$props = self.$props,\n prefixCls = _self$$props.prefixCls,\n destroyPopupOnHide = _self$$props.destroyPopupOnHide,\n popupClassName = _self$$props.popupClassName,\n action = _self$$props.action,\n popupAnimation = _self$$props.popupAnimation,\n popupTransitionName = _self$$props.popupTransitionName,\n popupStyle = _self$$props.popupStyle,\n mask = _self$$props.mask,\n maskAnimation = _self$$props.maskAnimation,\n maskTransitionName = _self$$props.maskTransitionName,\n zIndex = _self$$props.zIndex,\n stretch = _self$$props.stretch,\n alignPoint = _self$$props.alignPoint;\n var _$data = this.$data,\n sPopupVisible = _$data.sPopupVisible,\n point = _$data.point;\n\n var align = this.getPopupAlign();\n var popupProps = {\n props: {\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: sPopupVisible,\n point: alignPoint && point,\n action: action,\n align: align,\n animation: popupAnimation,\n getClassNameFromAlign: handleGetPopupClassFromAlign,\n stretch: stretch,\n getRootDomNode: getRootDomNode,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n getContainer: getContainer,\n popupClassName: popupClassName,\n popupStyle: popupStyle\n },\n on: _extends({\n align: getListeners(this).popupAlign || noop\n }, mouseProps),\n directives: [{\n name: 'ant-ref',\n value: this.savePopup\n }]\n };\n return h(\n Popup,\n popupProps,\n [getComponentFromProp(self, 'popup')]\n );\n },\n getContainer: function getContainer() {\n var props = this.$props,\n dialogContext = this.dialogContext;\n\n var popupContainer = document.createElement('div');\n // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(this.$el, dialogContext) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n this.popupContainer = popupContainer;\n return popupContainer;\n },\n setPopupVisible: function setPopupVisible(sPopupVisible, event) {\n var alignPoint = this.alignPoint,\n prevPopupVisible = this.sPopupVisible;\n\n this.clearDelayTimer();\n if (prevPopupVisible !== sPopupVisible) {\n if (!hasProp(this, 'popupVisible')) {\n this.setState({\n sPopupVisible: sPopupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n var listeners = getListeners(this);\n listeners.popupVisibleChange && listeners.popupVisibleChange(sPopupVisible);\n }\n // Always record the point position since mouseEnterDelay will delay the show\n if (alignPoint && event) {\n this.setPoint(event);\n }\n },\n setPoint: function setPoint(point) {\n var alignPoint = this.$props.alignPoint;\n\n if (!alignPoint || !point) return;\n\n this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n },\n delaySetPopupVisible: function delaySetPopupVisible(visible, delayS, event) {\n var _this5 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n var point = event ? { pageX: event.pageX, pageY: event.pageY } : null;\n this.delayTimer = requestAnimationTimeout(function () {\n _this5.setPopupVisible(visible, point);\n _this5.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n },\n clearDelayTimer: function clearDelayTimer() {\n if (this.delayTimer) {\n cancelAnimationTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n },\n clearOutsideHandler: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextmenuOutsideHandler1) {\n this.contextmenuOutsideHandler1.remove();\n this.contextmenuOutsideHandler1 = null;\n }\n\n if (this.contextmenuOutsideHandler2) {\n this.contextmenuOutsideHandler2.remove();\n this.contextmenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n },\n createTwoChains: function createTwoChains(event) {\n var fn = function fn() {};\n var events = getListeners(this);\n if (this.childOriginEvents[event] && events[event]) {\n return this['fire' + event];\n }\n fn = this.childOriginEvents[event] || events[event] || fn;\n return fn;\n },\n isClickToShow: function isClickToShow() {\n var _$props = this.$props,\n action = _$props.action,\n showAction = _$props.showAction;\n\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n },\n isContextmenuToShow: function isContextmenuToShow() {\n var _$props2 = this.$props,\n action = _$props2.action,\n showAction = _$props2.showAction;\n\n return action.indexOf('contextmenu') !== -1 || showAction.indexOf('contextmenu') !== -1;\n },\n isClickToHide: function isClickToHide() {\n var _$props3 = this.$props,\n action = _$props3.action,\n hideAction = _$props3.hideAction;\n\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n },\n isMouseEnterToShow: function isMouseEnterToShow() {\n var _$props4 = this.$props,\n action = _$props4.action,\n showAction = _$props4.showAction;\n\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseenter') !== -1;\n },\n isMouseLeaveToHide: function isMouseLeaveToHide() {\n var _$props5 = this.$props,\n action = _$props5.action,\n hideAction = _$props5.hideAction;\n\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseleave') !== -1;\n },\n isFocusToShow: function isFocusToShow() {\n var _$props6 = this.$props,\n action = _$props6.action,\n showAction = _$props6.showAction;\n\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n },\n isBlurToHide: function isBlurToHide() {\n var _$props7 = this.$props,\n action = _$props7.action,\n hideAction = _$props7.hideAction;\n\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n },\n forcePopupAlign: function forcePopupAlign() {\n if (this.$data.sPopupVisible && this._component && this._component.$refs.alignInstance) {\n this._component.$refs.alignInstance.forceAlign();\n }\n },\n fireEvents: function fireEvents(type, e) {\n if (this.childOriginEvents[type]) {\n this.childOriginEvents[type](e);\n }\n this.__emit(type, e);\n },\n close: function close() {\n this.setPopupVisible(false);\n }\n },\n render: function render() {\n var _this6 = this;\n\n var h = arguments[0];\n var sPopupVisible = this.sPopupVisible;\n\n var children = filterEmpty(this.$slots['default']);\n var _$props8 = this.$props,\n forceRender = _$props8.forceRender,\n alignPoint = _$props8.alignPoint;\n\n\n if (children.length > 1) {\n warning(false, 'Trigger $slots.default.length > 1, just support only one default', true);\n }\n var child = children[0];\n this.childOriginEvents = getDataEvents(child);\n var newChildProps = {\n props: {},\n nativeOn: {},\n key: 'trigger'\n };\n\n if (this.isContextmenuToShow()) {\n newChildProps.nativeOn.contextmenu = this.onContextmenu;\n } else {\n newChildProps.nativeOn.contextmenu = this.createTwoChains('contextmenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.nativeOn.click = this.onClick;\n newChildProps.nativeOn.mousedown = this.onMousedown;\n newChildProps.nativeOn.touchstart = this.onTouchstart;\n } else {\n newChildProps.nativeOn.click = this.createTwoChains('click');\n newChildProps.nativeOn.mousedown = this.createTwoChains('mousedown');\n newChildProps.nativeOn.touchstart = this.createTwoChains('onTouchstart');\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.nativeOn.mouseenter = this.onMouseenter;\n if (alignPoint) {\n newChildProps.nativeOn.mousemove = this.onMouseMove;\n }\n } else {\n newChildProps.nativeOn.mouseenter = this.createTwoChains('mouseenter');\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.nativeOn.mouseleave = this.onMouseleave;\n } else {\n newChildProps.nativeOn.mouseleave = this.createTwoChains('mouseleave');\n }\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.nativeOn.focus = this.onFocus;\n newChildProps.nativeOn.blur = this.onBlur;\n } else {\n newChildProps.nativeOn.focus = this.createTwoChains('focus');\n newChildProps.nativeOn.blur = function (e) {\n if (e && (!e.relatedTarget || !contains(e.target, e.relatedTarget))) {\n _this6.createTwoChains('blur')(e);\n }\n };\n }\n\n this.trigger = cloneElement(child, newChildProps);\n\n return h(ContainerRender, {\n attrs: {\n parent: this,\n visible: sPopupVisible,\n autoMount: false,\n forceRender: forceRender,\n getComponent: this.getComponent,\n getContainer: this.getContainer,\n children: function children(_ref) {\n var renderComponent = _ref.renderComponent;\n\n _this6.renderComponent = renderComponent;\n return _this6.trigger;\n }\n }\n });\n }\n};","// based on rc-trigger 2.6.5\nimport Trigger from './Trigger';\nexport default Trigger;","import '../../style/index.less';\nimport './index.less';","import animate from './css-animation';\nvar noop = function noop() {};\nvar getTransitionProps = function getTransitionProps(transitionName) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var beforeEnter = opt.beforeEnter,\n enter = opt.enter,\n afterEnter = opt.afterEnter,\n leave = opt.leave,\n afterLeave = opt.afterLeave,\n _opt$appear = opt.appear,\n appear = _opt$appear === undefined ? true : _opt$appear,\n tag = opt.tag,\n nativeOn = opt.nativeOn;\n\n var transitionProps = {\n props: {\n appear: appear,\n css: false\n },\n on: {\n beforeEnter: beforeEnter || noop,\n enter: enter || function (el, done) {\n animate(el, transitionName + '-enter', done);\n },\n afterEnter: afterEnter || noop,\n leave: leave || function (el, done) {\n animate(el, transitionName + '-leave', done);\n },\n afterLeave: afterLeave || noop\n },\n nativeOn: nativeOn\n };\n // transition-group\n if (tag) {\n transitionProps.tag = tag;\n }\n return transitionProps;\n};\n\nexport default getTransitionProps;","import PropTypes from '../_util/vue-types';\n\nexport default {\n props: {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n },\n isSelectOption: true\n};","import PropTypes from '../_util/vue-types';\nexport default {\n props: {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n },\n isSelectOptGroup: true\n};","import _typeof from 'babel-runtime/helpers/typeof';\nimport { getPropsData, getSlotOptions, getKey, getAttrs, getComponentFromProp } from '../_util/props-util';\nimport { cloneVNodes } from '../_util/vnode';\n\nexport function toTitle(title) {\n if (typeof title === 'string') {\n return title.trim();\n }\n return '';\n}\nexport function getValuePropValue(child) {\n if (!child) {\n return null;\n }\n var props = getPropsData(child);\n if ('value' in props) {\n return props.value;\n }\n if (getKey(child) !== undefined) {\n return getKey(child);\n }\n if (getSlotOptions(child).isSelectOptGroup) {\n var label = getComponentFromProp(child, 'label');\n if (label) {\n return label;\n }\n }\n throw new Error('Need at least a key or a value or a label (only for OptGroup) for ' + child);\n}\n\nexport function getPropValue(child, prop) {\n if (prop === 'value') {\n return getValuePropValue(child);\n }\n if (prop === 'children') {\n var newChild = child.$slots ? cloneVNodes(child.$slots['default'], true) : cloneVNodes(child.componentOptions.children, true);\n if (newChild.length === 1 && !newChild[0].tag) {\n return newChild[0].text;\n }\n return newChild;\n }\n var data = getPropsData(child);\n if (prop in data) {\n return data[prop];\n } else {\n return getAttrs(child)[prop];\n }\n}\n\nexport function isMultiple(props) {\n return props.multiple;\n}\n\nexport function isCombobox(props) {\n return props.combobox;\n}\n\nexport function isMultipleOrTags(props) {\n return props.multiple || props.tags;\n}\n\nexport function isMultipleOrTagsOrCombobox(props) {\n return isMultipleOrTags(props) || isCombobox(props);\n}\n\nexport function isSingleMode(props) {\n return !isMultipleOrTagsOrCombobox(props);\n}\n\nexport function toArray(value) {\n var ret = value;\n if (value === undefined) {\n ret = [];\n } else if (!Array.isArray(value)) {\n ret = [value];\n }\n return ret;\n}\n\nexport function getMapKey(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '-' + value;\n}\n\nexport function preventDefaultEvent(e) {\n e.preventDefault();\n}\n\nexport function findIndexInValueBySingleValue(value, singleValue) {\n var index = -1;\n if (value) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === singleValue) {\n index = i;\n break;\n }\n }\n }\n return index;\n}\n\nexport function getLabelFromPropsValue(value, key) {\n var label = void 0;\n value = toArray(value);\n if (value) {\n for (var i = 0; i < value.length; i++) {\n if (value[i].key === key) {\n label = value[i].label;\n break;\n }\n }\n }\n return label;\n}\n\nexport function getSelectKeys(menuItems, value) {\n if (value === null || value === undefined) {\n return [];\n }\n var selectedKeys = [];\n menuItems.forEach(function (item) {\n if (getSlotOptions(item).isMenuItemGroup) {\n selectedKeys = selectedKeys.concat(getSelectKeys(item.componentOptions.children, value));\n } else {\n var itemValue = getValuePropValue(item);\n var itemKey = item.key;\n if (findIndexInValueBySingleValue(value, itemValue) !== -1 && itemKey !== undefined) {\n selectedKeys.push(itemKey);\n }\n }\n });\n return selectedKeys;\n}\n\nexport var UNSELECTABLE_STYLE = {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n};\n\nexport var UNSELECTABLE_ATTRIBUTE = {\n unselectable: 'on'\n};\n\nexport function findFirstMenuItem(children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n var props = getPropsData(child);\n if (getSlotOptions(child).isMenuItemGroup) {\n var found = findFirstMenuItem(child.componentOptions.children);\n if (found) {\n return found;\n }\n } else if (!(props.disabled || props.disabled === '')) {\n return child;\n }\n }\n return null;\n}\n\nexport function includesSeparators(str, separators) {\n for (var i = 0; i < separators.length; ++i) {\n if (str.lastIndexOf(separators[i]) > 0) {\n return true;\n }\n }\n return false;\n}\n\nexport function splitBySeparators(str, separators) {\n var reg = new RegExp('[' + separators.join() + ']');\n return str.split(reg).filter(function (token) {\n return token;\n });\n}\n\nexport function defaultFilterFn(input, child) {\n var props = getPropsData(child);\n if (props.disabled) {\n return false;\n }\n var value = getPropValue(child, this.optionFilterProp);\n if (value.length && value[0].text) {\n value = value[0].text;\n } else {\n value = String(value);\n }\n return value.toLowerCase().indexOf(input.toLowerCase()) > -1;\n}\n\nexport function validateOptionValue(value, props) {\n if (isSingleMode(props) || isMultiple(props)) {\n return;\n }\n if (typeof value !== 'string') {\n throw new Error('Invalid `value` of type `' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '` supplied to Option, ' + 'expected `string` when `tags/combobox` is `true`.');\n }\n}\n\nexport function saveRef(instance, name) {\n return function (node) {\n instance[name] = node;\n };\n}\n\nexport function generateUUID() {\n if (process.env.NODE_ENV === 'test') {\n return 'test-uuid';\n }\n var d = new Date().getTime();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : r & 0x7 | 0x8).toString(16);\n });\n return uuid;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport raf from 'raf';\nimport PropTypes from '../_util/vue-types';\nimport Menu from '../vc-menu';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport { getSelectKeys, preventDefaultEvent } from './util';\nimport { cloneElement } from '../_util/vnode';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getSlotOptions, getComponentFromProp, getListeners } from '../_util/props-util';\n\nexport default {\n name: 'DropdownMenu',\n mixins: [BaseMixin],\n props: {\n ariaId: PropTypes.string,\n defaultActiveFirstOption: PropTypes.bool,\n value: PropTypes.any,\n dropdownMenuStyle: PropTypes.object,\n multiple: PropTypes.bool,\n // onPopupFocus: PropTypes.func,\n // onPopupScroll: PropTypes.func,\n // onMenuDeSelect: PropTypes.func,\n // onMenuSelect: PropTypes.func,\n prefixCls: PropTypes.string,\n menuItems: PropTypes.any,\n inputValue: PropTypes.string,\n visible: PropTypes.bool,\n backfillValue: PropTypes.any,\n firstActiveValue: PropTypes.string,\n menuItemSelectedIcon: PropTypes.any\n },\n watch: {\n visible: function visible(val) {\n var _this = this;\n\n if (!val) {\n this.lastVisible = val;\n } else {\n this.$nextTick(function () {\n _this.scrollActiveItemToView();\n });\n }\n }\n },\n\n created: function created() {\n this.rafInstance = null;\n this.lastInputValue = this.$props.inputValue;\n this.lastVisible = false;\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.scrollActiveItemToView();\n });\n this.lastVisible = this.$props.visible;\n },\n updated: function updated() {\n var props = this.$props;\n // if (!this.prevVisible && props.visible) {\n // this.$nextTick(() => {\n // this.scrollActiveItemToView();\n // });\n // }\n this.lastVisible = props.visible;\n this.lastInputValue = props.inputValue;\n this.prevVisible = this.visible;\n },\n beforeDestroy: function beforeDestroy() {\n if (this.rafInstance) {\n raf.cancel(this.rafInstance);\n }\n },\n\n methods: {\n scrollActiveItemToView: function scrollActiveItemToView() {\n var _this3 = this;\n\n // scroll into view\n var itemComponent = this.firstActiveItem && this.firstActiveItem.$el;\n var props = this.$props;\n var value = props.value,\n visible = props.visible,\n firstActiveValue = props.firstActiveValue;\n\n if (!itemComponent || !visible) {\n return;\n }\n var scrollIntoViewOpts = {\n onlyScrollIfNeeded: true\n };\n if ((!value || value.length === 0) && firstActiveValue) {\n scrollIntoViewOpts.alignWithTop = true;\n }\n // Delay to scroll since current frame item position is not ready when pre view is by filter\n // https://github.com/ant-design/ant-design/issues/11268#issuecomment-406634462\n this.rafInstance = raf(function () {\n scrollIntoView(itemComponent, _this3.$refs.menuRef.$el, scrollIntoViewOpts);\n });\n },\n renderMenu: function renderMenu() {\n var _this4 = this;\n\n var h = this.$createElement;\n\n var props = this.$props;\n var menuItems = props.menuItems,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n value = props.value,\n prefixCls = props.prefixCls,\n multiple = props.multiple,\n inputValue = props.inputValue,\n firstActiveValue = props.firstActiveValue,\n dropdownMenuStyle = props.dropdownMenuStyle,\n backfillValue = props.backfillValue,\n visible = props.visible;\n\n var menuItemSelectedIcon = getComponentFromProp(this, 'menuItemSelectedIcon');\n\n var _getListeners = getListeners(this),\n menuDeselect = _getListeners.menuDeselect,\n menuSelect = _getListeners.menuSelect,\n popupScroll = _getListeners.popupScroll;\n\n if (menuItems && menuItems.length) {\n var selectedKeys = getSelectKeys(menuItems, value);\n var menuProps = {\n props: {\n multiple: multiple,\n itemIcon: multiple ? menuItemSelectedIcon : null,\n selectedKeys: selectedKeys,\n prefixCls: prefixCls + '-menu'\n },\n on: {},\n style: dropdownMenuStyle,\n ref: 'menuRef',\n attrs: {\n role: 'listbox'\n }\n };\n if (popupScroll) {\n menuProps.on.scroll = popupScroll;\n }\n if (multiple) {\n menuProps.on.deselect = menuDeselect;\n menuProps.on.select = menuSelect;\n } else {\n menuProps.on.click = menuSelect;\n }\n var activeKeyProps = {};\n\n var defaultActiveFirst = defaultActiveFirstOption;\n var clonedMenuItems = menuItems;\n if (selectedKeys.length || firstActiveValue) {\n if (props.visible && !this.lastVisible) {\n activeKeyProps.activeKey = selectedKeys[0] || firstActiveValue;\n } else if (!visible) {\n // Do not trigger auto active since we already have selectedKeys\n if (selectedKeys[0]) {\n defaultActiveFirst = false;\n }\n activeKeyProps.activeKey = undefined;\n }\n var foundFirst = false;\n // set firstActiveItem via cloning menus\n // for scroll into view\n var clone = function clone(item) {\n if (!foundFirst && selectedKeys.indexOf(item.key) !== -1 || !foundFirst && !selectedKeys.length && firstActiveValue.indexOf(item.key) !== -1) {\n foundFirst = true;\n return cloneElement(item, {\n directives: [{\n name: 'ant-ref',\n value: function value(ref) {\n _this4.firstActiveItem = ref;\n }\n }]\n });\n }\n return item;\n };\n\n clonedMenuItems = menuItems.map(function (item) {\n if (getSlotOptions(item).isMenuItemGroup) {\n var children = item.componentOptions.children.map(clone);\n return cloneElement(item, { children: children });\n }\n return clone(item);\n });\n } else {\n // Clear firstActiveItem when dropdown menu items was empty\n // Avoid `Unable to find node on an unmounted component`\n // https://github.com/ant-design/ant-design/issues/10774\n this.firstActiveItem = null;\n }\n\n // clear activeKey when inputValue change\n var lastValue = value && value[value.length - 1];\n if (inputValue !== this.lastInputValue && (!lastValue || lastValue !== backfillValue)) {\n activeKeyProps.activeKey = '';\n }\n menuProps.props = _extends({}, activeKeyProps, menuProps.props, { defaultActiveFirst: defaultActiveFirst });\n return h(\n Menu,\n menuProps,\n [clonedMenuItems]\n );\n }\n return null;\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var renderMenu = this.renderMenu();\n\n var _getListeners2 = getListeners(this),\n popupFocus = _getListeners2.popupFocus,\n popupScroll = _getListeners2.popupScroll;\n\n return renderMenu ? h(\n 'div',\n {\n style: {\n overflow: 'auto',\n transform: 'translateZ(0)'\n },\n attrs: { id: this.$props.ariaId,\n tabIndex: '-1'\n },\n on: {\n 'focus': popupFocus,\n 'mousedown': preventDefaultEvent,\n 'scroll': popupScroll\n },\n\n ref: 'menuContainer'\n },\n [renderMenu]\n ) : null;\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport raf from 'raf';\nimport Trigger from '../vc-trigger';\nimport PropTypes from '../_util/vue-types';\nimport DropdownMenu from './DropdownMenu';\nimport { isSingleMode, saveRef } from './util';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getListeners } from '../_util/props-util';\n\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\n\nexport default {\n name: 'SelectTrigger',\n mixins: [BaseMixin],\n props: {\n // onPopupFocus: PropTypes.func,\n // onPopupScroll: PropTypes.func,\n dropdownMatchSelectWidth: PropTypes.bool,\n defaultActiveFirstOption: PropTypes.bool,\n dropdownAlign: PropTypes.object,\n visible: PropTypes.bool,\n disabled: PropTypes.bool,\n showSearch: PropTypes.bool,\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n dropdownMenuStyle: PropTypes.object,\n multiple: PropTypes.bool,\n inputValue: PropTypes.string,\n filterOption: PropTypes.any,\n empty: PropTypes.bool,\n options: PropTypes.any,\n prefixCls: PropTypes.string,\n popupClassName: PropTypes.string,\n value: PropTypes.array,\n // children: PropTypes.any,\n showAction: PropTypes.arrayOf(PropTypes.string),\n combobox: PropTypes.bool,\n animation: PropTypes.string,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n backfillValue: PropTypes.any,\n menuItemSelectedIcon: PropTypes.any,\n dropdownRender: PropTypes.func,\n ariaId: PropTypes.string\n },\n data: function data() {\n return {\n dropdownWidth: 0\n };\n },\n created: function created() {\n this.rafInstance = null;\n this.saveDropdownMenuRef = saveRef(this, 'dropdownMenuRef');\n this.saveTriggerRef = saveRef(this, 'triggerRef');\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setDropdownWidth();\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setDropdownWidth();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.cancelRafInstance();\n },\n\n methods: {\n setDropdownWidth: function setDropdownWidth() {\n var _this3 = this;\n\n this.cancelRafInstance();\n this.rafInstance = raf(function () {\n var width = _this3.$el.offsetWidth;\n if (width !== _this3.dropdownWidth) {\n _this3.setState({ dropdownWidth: width });\n }\n });\n },\n cancelRafInstance: function cancelRafInstance() {\n if (this.rafInstance) {\n raf.cancel(this.rafInstance);\n }\n },\n getInnerMenu: function getInnerMenu() {\n return this.dropdownMenuRef && this.dropdownMenuRef.$refs.menuRef;\n },\n getPopupDOMNode: function getPopupDOMNode() {\n return this.triggerRef.getPopupDomNode();\n },\n getDropdownElement: function getDropdownElement(newProps) {\n var h = this.$createElement;\n var value = this.value,\n firstActiveValue = this.firstActiveValue,\n defaultActiveFirstOption = this.defaultActiveFirstOption,\n dropdownMenuStyle = this.dropdownMenuStyle,\n getDropdownPrefixCls = this.getDropdownPrefixCls,\n backfillValue = this.backfillValue,\n menuItemSelectedIcon = this.menuItemSelectedIcon;\n\n var _getListeners = getListeners(this),\n menuSelect = _getListeners.menuSelect,\n menuDeselect = _getListeners.menuDeselect,\n popupScroll = _getListeners.popupScroll;\n\n var props = this.$props;\n\n var dropdownRender = props.dropdownRender,\n ariaId = props.ariaId;\n\n var dropdownMenuProps = {\n props: _extends({}, newProps.props, {\n ariaId: ariaId,\n prefixCls: getDropdownPrefixCls(),\n value: value,\n firstActiveValue: firstActiveValue,\n defaultActiveFirstOption: defaultActiveFirstOption,\n dropdownMenuStyle: dropdownMenuStyle,\n backfillValue: backfillValue,\n menuItemSelectedIcon: menuItemSelectedIcon\n }),\n on: _extends({}, newProps.on, {\n menuSelect: menuSelect,\n menuDeselect: menuDeselect,\n popupScroll: popupScroll\n }),\n directives: [{\n name: 'ant-ref',\n value: this.saveDropdownMenuRef\n }]\n };\n var menuNode = h(DropdownMenu, dropdownMenuProps);\n\n if (dropdownRender) {\n return dropdownRender(menuNode, props);\n }\n return null;\n },\n getDropdownTransitionName: function getDropdownTransitionName() {\n var props = this.$props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = this.getDropdownPrefixCls() + '-' + props.animation;\n }\n return transitionName;\n },\n getDropdownPrefixCls: function getDropdownPrefixCls() {\n return this.prefixCls + '-dropdown';\n }\n },\n\n render: function render() {\n var _popupClassName;\n\n var h = arguments[0];\n var $props = this.$props,\n $slots = this.$slots;\n var multiple = $props.multiple,\n visible = $props.visible,\n inputValue = $props.inputValue,\n dropdownAlign = $props.dropdownAlign,\n disabled = $props.disabled,\n showSearch = $props.showSearch,\n dropdownClassName = $props.dropdownClassName,\n dropdownStyle = $props.dropdownStyle,\n dropdownMatchSelectWidth = $props.dropdownMatchSelectWidth,\n options = $props.options,\n getPopupContainer = $props.getPopupContainer,\n showAction = $props.showAction,\n empty = $props.empty;\n\n var _getListeners2 = getListeners(this),\n mouseenter = _getListeners2.mouseenter,\n mouseleave = _getListeners2.mouseleave,\n popupFocus = _getListeners2.popupFocus,\n dropdownVisibleChange = _getListeners2.dropdownVisibleChange;\n\n var dropdownPrefixCls = this.getDropdownPrefixCls();\n var popupClassName = (_popupClassName = {}, _defineProperty(_popupClassName, dropdownClassName, !!dropdownClassName), _defineProperty(_popupClassName, dropdownPrefixCls + '--' + (multiple ? 'multiple' : 'single'), 1), _defineProperty(_popupClassName, dropdownPrefixCls + '--empty', empty), _popupClassName);\n var popupElement = this.getDropdownElement({\n props: {\n menuItems: options,\n multiple: multiple,\n inputValue: inputValue,\n visible: visible\n },\n on: {\n popupFocus: popupFocus\n }\n });\n var hideAction = void 0;\n if (disabled) {\n hideAction = [];\n } else if (isSingleMode($props) && !showSearch) {\n hideAction = ['click'];\n } else {\n hideAction = ['blur'];\n }\n var popupStyle = _extends({}, dropdownStyle);\n var widthProp = dropdownMatchSelectWidth ? 'width' : 'minWidth';\n if (this.dropdownWidth) {\n popupStyle[widthProp] = this.dropdownWidth + 'px';\n }\n var triggerProps = {\n props: _extends({}, $props, {\n showAction: disabled ? [] : showAction,\n hideAction: hideAction,\n ref: 'triggerRef',\n popupPlacement: 'bottomLeft',\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: this.getDropdownTransitionName(),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classnames(popupClassName),\n popupStyle: popupStyle\n }),\n on: {\n popupVisibleChange: dropdownVisibleChange\n },\n directives: [{\n name: 'ant-ref',\n value: this.saveTriggerRef\n }]\n };\n if (mouseenter) {\n triggerProps.on.mouseenter = mouseenter;\n }\n if (mouseleave) {\n triggerProps.on.mouseleave = mouseleave;\n }\n return h(\n Trigger,\n triggerProps,\n [$slots['default'], h(\n 'template',\n { slot: 'popup' },\n [popupElement]\n )]\n );\n }\n};","import PropTypes from '../_util/vue-types';\n\nexport var SelectPropTypes = {\n defaultActiveFirstOption: PropTypes.bool,\n multiple: PropTypes.bool,\n filterOption: PropTypes.any,\n // children: PropTypes.any,\n showSearch: PropTypes.bool,\n disabled: PropTypes.bool,\n allowClear: PropTypes.bool,\n showArrow: PropTypes.bool,\n tags: PropTypes.bool,\n prefixCls: PropTypes.string,\n // className: PropTypes.string,\n transitionName: PropTypes.string,\n optionLabelProp: PropTypes.string,\n optionFilterProp: PropTypes.string,\n animation: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n // onChange: PropTypes.func,\n // onBlur: PropTypes.func,\n // onFocus: PropTypes.func,\n // onSelect: PropTypes.func,\n // onSearch: PropTypes.func,\n // onPopupScroll: PropTypes.func,\n // onMouseEnter: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n // onInputKeyDown: PropTypes.func,\n placeholder: PropTypes.any,\n // onDeselect: PropTypes.func,\n labelInValue: PropTypes.bool,\n loading: PropTypes.bool,\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n dropdownStyle: PropTypes.object,\n dropdownClassName: PropTypes.string,\n maxTagTextLength: PropTypes.number,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.any,\n tokenSeparators: PropTypes.arrayOf(PropTypes.string),\n getInputElement: PropTypes.func,\n showAction: PropTypes.arrayOf(PropTypes.string),\n autoFocus: PropTypes.bool,\n getPopupContainer: PropTypes.func,\n clearIcon: PropTypes.any,\n inputIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n menuItemSelectedIcon: PropTypes.any,\n dropdownRender: PropTypes.func,\n mode: PropTypes.oneOf(['multiple', 'tags']),\n backfill: PropTypes.bool,\n dropdownAlign: PropTypes.any,\n dropdownMatchSelectWidth: PropTypes.bool,\n dropdownMenuStyle: PropTypes.object,\n notFoundContent: PropTypes.oneOfType([String, Number]),\n tabIndex: PropTypes.oneOfType([String, Number])\n};","/* eslint-disable no-undef */\n// Browser environment sniffing\nexport var inBrowser = typeof window !== 'undefined';\nexport var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nexport var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nexport var UA = inBrowser && window.navigator.userAgent.toLowerCase();\nexport var isIE = UA && /msie|trident/.test(UA);\nexport var isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nexport var isEdge = UA && UA.indexOf('edge/') > 0;\nexport var isAndroid = UA && UA.indexOf('android') > 0 || weexPlatform === 'android';\nexport var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA) || weexPlatform === 'ios';\nexport var isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nexport var isPhantomJS = UA && /phantomjs/.test(UA);\nexport var isFF = UA && UA.match(/firefox\\/(\\d+)/);","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport KeyCode from '../_util/KeyCode';\nimport PropTypes from '../_util/vue-types';\nimport classnames from 'classnames';\nimport classes from 'component-classes';\nimport { Item as MenuItem, ItemGroup as MenuItemGroup } from '../vc-menu';\nimport warning from 'warning';\nimport Vue from 'vue';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nimport { hasProp, getSlotOptions, getPropsData, getValueByProp as getValue, getComponentFromProp, getEvents, getClass, getStyle, getAttrs, getOptionProps, getSlots, getListeners } from '../_util/props-util';\nimport getTransitionProps from '../_util/getTransitionProps';\nimport { cloneElement } from '../_util/vnode';\nimport BaseMixin from '../_util/BaseMixin';\nimport proxyComponent from '../_util/proxyComponent';\nimport ref from 'vue-ref';\nimport SelectTrigger from './SelectTrigger';\nimport { defaultFilterFn, findFirstMenuItem, findIndexInValueBySingleValue, generateUUID, getLabelFromPropsValue, getMapKey, getPropValue, getValuePropValue, includesSeparators, isCombobox, isMultipleOrTags, isMultipleOrTagsOrCombobox, isSingleMode, preventDefaultEvent, saveRef, splitBySeparators, toArray, toTitle, UNSELECTABLE_ATTRIBUTE, UNSELECTABLE_STYLE, validateOptionValue } from './util';\nimport { SelectPropTypes } from './PropTypes';\nimport contains from '../vc-util/Dom/contains';\nimport { isIE, isEdge } from '../_util/env';\n\nVue.use(ref, { name: 'ant-ref' });\nvar SELECT_EMPTY_VALUE_KEY = 'RC_SELECT_EMPTY_VALUE_KEY';\n\nvar noop = function noop() {\n return null;\n};\n\n// Where el is the DOM element you'd like to test for visibility\nfunction isHidden(node) {\n return !node || node.offsetParent === null;\n}\n\nfunction chaining() {\n for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n // eslint-disable-line\n // eslint-disable-line\n for (var i = 0; i < fns.length; i++) {\n if (fns[i] && typeof fns[i] === 'function') {\n fns[i].apply(chaining, args);\n }\n }\n };\n}\nvar Select = {\n inheritAttrs: false,\n Option: Option,\n OptGroup: OptGroup,\n name: 'Select',\n mixins: [BaseMixin],\n props: _extends({}, SelectPropTypes, {\n prefixCls: SelectPropTypes.prefixCls.def('rc-select'),\n defaultOpen: PropTypes.bool.def(false),\n labelInValue: SelectPropTypes.labelInValue.def(false),\n defaultActiveFirstOption: SelectPropTypes.defaultActiveFirstOption.def(true),\n showSearch: SelectPropTypes.showSearch.def(true),\n allowClear: SelectPropTypes.allowClear.def(false),\n placeholder: SelectPropTypes.placeholder.def(''),\n // showArrow: SelectPropTypes.showArrow.def(true),\n dropdownMatchSelectWidth: PropTypes.bool.def(true),\n dropdownStyle: SelectPropTypes.dropdownStyle.def(function () {\n return {};\n }),\n dropdownMenuStyle: PropTypes.object.def(function () {\n return {};\n }),\n optionFilterProp: SelectPropTypes.optionFilterProp.def('value'),\n optionLabelProp: SelectPropTypes.optionLabelProp.def('value'),\n notFoundContent: PropTypes.any.def('Not Found'),\n backfill: PropTypes.bool.def(false),\n showAction: SelectPropTypes.showAction.def(['click']),\n combobox: PropTypes.bool.def(false),\n tokenSeparators: PropTypes.arrayOf(PropTypes.string).def([]),\n autoClearSearchValue: PropTypes.bool.def(true),\n tabIndex: PropTypes.any.def(0),\n dropdownRender: PropTypes.func.def(function (menu) {\n return menu;\n })\n // onChange: noop,\n // onFocus: noop,\n // onBlur: noop,\n // onSelect: noop,\n // onSearch: noop,\n // onDeselect: noop,\n // onInputKeydown: noop,\n }),\n model: {\n prop: 'value',\n event: 'change'\n },\n created: function created() {\n this.saveInputRef = saveRef(this, 'inputRef');\n this.saveInputMirrorRef = saveRef(this, 'inputMirrorRef');\n this.saveTopCtrlRef = saveRef(this, 'topCtrlRef');\n this.saveSelectTriggerRef = saveRef(this, 'selectTriggerRef');\n this.saveRootRef = saveRef(this, 'rootRef');\n this.saveSelectionRef = saveRef(this, 'selectionRef');\n this._focused = false;\n this._mouseDown = false;\n this._options = [];\n this._empty = false;\n },\n data: function data() {\n var props = getOptionProps(this);\n var optionsInfo = this.getOptionsInfoFromProps(props);\n warning(this.__propsSymbol__, 'Replace slots.default with props.children and pass props.__propsSymbol__');\n if (props.tags && typeof props.filterOption !== 'function') {\n var isDisabledExist = Object.keys(optionsInfo).some(function (key) {\n return optionsInfo[key].disabled;\n });\n warning(!isDisabledExist, 'Please avoid setting option to disabled in tags mode since user can always type text as tag.');\n }\n var state = {\n _value: this.getValueFromProps(props, true), // true: use default value\n _inputValue: props.combobox ? this.getInputValueForCombobox(props, optionsInfo, true // use default value\n ) : '',\n _open: props.defaultOpen,\n _optionsInfo: optionsInfo,\n _backfillValue: '',\n // a flag for aviod redundant getOptionsInfoFromProps call\n _skipBuildOptionsInfo: true,\n _ariaId: generateUUID()\n };\n return _extends({}, state, {\n _mirrorInputValue: state._inputValue }, this.getDerivedState(props, state));\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // when defaultOpen is true, we should auto focus search input\n // https://github.com/ant-design/ant-design/issues/14254\n if (_this.autoFocus || _this._open) {\n _this.focus();\n }\n // this.setState({\n // _ariaId: generateUUID(),\n // });\n });\n },\n\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n _extends(this.$data, this.getDerivedState(getOptionProps(this), this.$data));\n },\n '$data._inputValue': function $data_inputValue(val) {\n this.$data._mirrorInputValue = val;\n }\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n if (isMultipleOrTags(_this2.$props)) {\n var inputNode = _this2.getInputDOMNode();\n var mirrorNode = _this2.getInputMirrorDOMNode();\n if (inputNode && inputNode.value && mirrorNode) {\n inputNode.style.width = '';\n inputNode.style.width = mirrorNode.clientWidth + 10 + 'px';\n } else if (inputNode) {\n inputNode.style.width = '';\n }\n }\n _this2.forcePopupAlign();\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFocusTime();\n this.clearBlurTime();\n this.clearComboboxTime();\n if (this.dropdownContainer) {\n document.body.removeChild(this.dropdownContainer);\n this.dropdownContainer = null;\n }\n },\n\n methods: {\n getDerivedState: function getDerivedState(nextProps, prevState) {\n var optionsInfo = prevState._skipBuildOptionsInfo ? prevState._optionsInfo : this.getOptionsInfoFromProps(nextProps, prevState);\n\n var newState = {\n _optionsInfo: optionsInfo,\n _skipBuildOptionsInfo: false\n };\n\n if ('open' in nextProps) {\n newState._open = nextProps.open;\n }\n\n if ('value' in nextProps) {\n var value = this.getValueFromProps(nextProps);\n newState._value = value;\n if (nextProps.combobox) {\n newState._inputValue = this.getInputValueForCombobox(nextProps, optionsInfo);\n }\n }\n return newState;\n },\n getOptionsFromChildren: function getOptionsFromChildren() {\n var _this3 = this;\n\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n children.forEach(function (child) {\n if (!child.data || child.data.slot !== undefined) {\n return;\n }\n if (getSlotOptions(child).isSelectOptGroup) {\n _this3.getOptionsFromChildren(child.componentOptions.children, options);\n } else {\n options.push(child);\n }\n });\n return options;\n },\n getInputValueForCombobox: function getInputValueForCombobox(props, optionsInfo, useDefaultValue) {\n var value = [];\n if ('value' in props && !useDefaultValue) {\n value = toArray(props.value);\n }\n if ('defaultValue' in props && useDefaultValue) {\n value = toArray(props.defaultValue);\n }\n if (value.length) {\n value = value[0];\n } else {\n return '';\n }\n var label = value;\n if (props.labelInValue) {\n label = value.label;\n } else if (optionsInfo[getMapKey(value)]) {\n label = optionsInfo[getMapKey(value)].label;\n }\n if (label === undefined) {\n label = '';\n }\n return label;\n },\n getLabelFromOption: function getLabelFromOption(props, option) {\n return getPropValue(option, props.optionLabelProp);\n },\n getOptionsInfoFromProps: function getOptionsInfoFromProps(props, preState) {\n var _this4 = this;\n\n var options = this.getOptionsFromChildren(this.$props.children);\n var optionsInfo = {};\n options.forEach(function (option) {\n var singleValue = getValuePropValue(option);\n optionsInfo[getMapKey(singleValue)] = {\n option: option,\n value: singleValue,\n label: _this4.getLabelFromOption(props, option),\n title: getValue(option, 'title'),\n disabled: getValue(option, 'disabled')\n };\n });\n if (preState) {\n // keep option info in pre state value.\n var oldOptionsInfo = preState._optionsInfo;\n var value = preState._value;\n if (value) {\n value.forEach(function (v) {\n var key = getMapKey(v);\n if (!optionsInfo[key] && oldOptionsInfo[key] !== undefined) {\n optionsInfo[key] = oldOptionsInfo[key];\n }\n });\n }\n }\n return optionsInfo;\n },\n getValueFromProps: function getValueFromProps(props, useDefaultValue) {\n var value = [];\n if ('value' in props && !useDefaultValue) {\n value = toArray(props.value);\n }\n if ('defaultValue' in props && useDefaultValue) {\n value = toArray(props.defaultValue);\n }\n if (props.labelInValue) {\n value = value.map(function (v) {\n return v.key;\n });\n }\n return value;\n },\n onInputChange: function onInputChange(e) {\n var _e$target = e.target,\n val = _e$target.value,\n composing = _e$target.composing;\n\n var _$data$_inputValue = this.$data._inputValue,\n _inputValue = _$data$_inputValue === undefined ? '' : _$data$_inputValue;\n\n if (e.isComposing || composing || _inputValue === val) {\n this.setState({\n _mirrorInputValue: val\n });\n return;\n }\n var tokenSeparators = this.$props.tokenSeparators;\n\n if (isMultipleOrTags(this.$props) && tokenSeparators.length && includesSeparators(val, tokenSeparators)) {\n var nextValue = this.getValueByInput(val);\n if (nextValue !== undefined) {\n this.fireChange(nextValue);\n }\n this.setOpenState(false, { needFocus: true });\n this.setInputValue('', false);\n return;\n }\n this.setInputValue(val);\n this.setState({\n _open: true\n });\n if (isCombobox(this.$props)) {\n this.fireChange([val]);\n }\n },\n onDropdownVisibleChange: function onDropdownVisibleChange(open) {\n if (open && !this._focused) {\n this.clearBlurTime();\n this.timeoutFocus();\n this._focused = true;\n this.updateFocusClassName();\n }\n this.setOpenState(open);\n },\n\n\n // combobox ignore\n onKeyDown: function onKeyDown(event) {\n var open = this.$data._open;\n var disabled = this.$props.disabled;\n\n if (disabled) {\n return;\n }\n var keyCode = event.keyCode;\n if (open && !this.getInputDOMNode()) {\n this.onInputKeydown(event);\n } else if (keyCode === KeyCode.ENTER || keyCode === KeyCode.DOWN) {\n // vue state是同步更新,onKeyDown在onMenuSelect后会再次调用,单选时不在调用setOpenState\n // https://github.com/vueComponent/ant-design-vue/issues/1142\n if (keyCode === KeyCode.ENTER && !isMultipleOrTags(this.$props)) {\n this.maybeFocus(true);\n } else if (!open) {\n this.setOpenState(true);\n }\n event.preventDefault();\n } else if (keyCode === KeyCode.SPACE) {\n // Not block space if popup is shown\n if (!open) {\n this.setOpenState(true);\n event.preventDefault();\n }\n }\n },\n onInputKeydown: function onInputKeydown(event) {\n var _this5 = this;\n\n var _$props = this.$props,\n disabled = _$props.disabled,\n combobox = _$props.combobox,\n defaultActiveFirstOption = _$props.defaultActiveFirstOption;\n\n if (disabled) {\n return;\n }\n var state = this.$data;\n var isRealOpen = this.getRealOpenState(state);\n var keyCode = event.keyCode;\n if (isMultipleOrTags(this.$props) && !event.target.value && keyCode === KeyCode.BACKSPACE) {\n event.preventDefault();\n var value = state._value;\n\n if (value.length) {\n this.removeSelected(value[value.length - 1]);\n }\n return;\n }\n if (keyCode === KeyCode.DOWN) {\n if (!state._open) {\n this.openIfHasChildren();\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n } else if (keyCode === KeyCode.ENTER && state._open) {\n // Aviod trigger form submit when select item\n // https://github.com/ant-design/ant-design/issues/10861\n // https://github.com/ant-design/ant-design/issues/14544\n if (isRealOpen || !combobox) {\n event.preventDefault();\n }\n // Hard close popup to avoid lock of non option in combobox mode\n if (isRealOpen && combobox && defaultActiveFirstOption === false) {\n this.comboboxTimer = setTimeout(function () {\n _this5.setOpenState(false);\n });\n }\n } else if (keyCode === KeyCode.ESC) {\n if (state._open) {\n this.setOpenState(false);\n event.preventDefault();\n event.stopPropagation();\n }\n return;\n }\n\n if (isRealOpen && this.selectTriggerRef) {\n var menu = this.selectTriggerRef.getInnerMenu();\n if (menu && menu.onKeyDown(event, this.handleBackfill)) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n onMenuSelect: function onMenuSelect(_ref) {\n var item = _ref.item;\n\n if (!item) {\n return;\n }\n var value = this.$data._value;\n var props = this.$props;\n var selectedValue = getValuePropValue(item);\n var lastValue = value[value.length - 1];\n var skipTrigger = false;\n\n if (isMultipleOrTags(props)) {\n if (findIndexInValueBySingleValue(value, selectedValue) !== -1) {\n skipTrigger = true;\n } else {\n value = value.concat([selectedValue]);\n }\n } else {\n if (!isCombobox(props) && lastValue !== undefined && lastValue === selectedValue && selectedValue !== this.$data._backfillValue) {\n this.setOpenState(false, { needFocus: true, fireSearch: false });\n skipTrigger = true;\n } else {\n value = [selectedValue];\n this.setOpenState(false, { needFocus: true, fireSearch: false });\n }\n }\n if (!skipTrigger) {\n this.fireChange(value);\n }\n if (!skipTrigger) {\n this.fireSelect(selectedValue);\n var inputValue = isCombobox(props) ? getPropValue(item, props.optionLabelProp) : '';\n\n if (props.autoClearSearchValue) {\n this.setInputValue(inputValue, false);\n }\n }\n },\n onMenuDeselect: function onMenuDeselect(_ref2) {\n var item = _ref2.item,\n domEvent = _ref2.domEvent;\n\n if (domEvent.type === 'keydown' && domEvent.keyCode === KeyCode.ENTER) {\n var menuItemDomNode = item.$el;\n // https://github.com/ant-design/ant-design/issues/20465#issuecomment-569033796\n if (!isHidden(menuItemDomNode)) {\n this.removeSelected(getValuePropValue(item));\n }\n return;\n }\n if (domEvent.type === 'click') {\n this.removeSelected(getValuePropValue(item));\n }\n if (this.autoClearSearchValue) {\n this.setInputValue('');\n }\n },\n onArrowClick: function onArrowClick(e) {\n e.stopPropagation();\n e.preventDefault();\n this.clearBlurTime();\n if (!this.disabled) {\n this.setOpenState(!this.$data._open, { needFocus: !this.$data._open });\n }\n },\n onPlaceholderClick: function onPlaceholderClick() {\n if (this.getInputDOMNode() && this.getInputDOMNode()) {\n this.getInputDOMNode().focus();\n }\n },\n onPopupFocus: function onPopupFocus() {\n // fix ie scrollbar, focus element again\n this.maybeFocus(true, true);\n },\n onClearSelection: function onClearSelection(event) {\n var props = this.$props;\n var state = this.$data;\n if (props.disabled) {\n return;\n }\n var inputValue = state._inputValue,\n value = state._value;\n\n event.stopPropagation();\n if (inputValue || value.length) {\n if (value.length) {\n this.fireChange([]);\n }\n this.setOpenState(false, { needFocus: true });\n if (inputValue) {\n this.setInputValue('');\n }\n }\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n this.forcePopupAlign();\n },\n getOptionInfoBySingleValue: function getOptionInfoBySingleValue(value, optionsInfo) {\n var h = this.$createElement;\n\n var info = void 0;\n optionsInfo = optionsInfo || this.$data._optionsInfo;\n if (optionsInfo[getMapKey(value)]) {\n info = optionsInfo[getMapKey(value)];\n }\n if (info) {\n return info;\n }\n var defaultLabel = value;\n if (this.$props.labelInValue) {\n var valueLabel = getLabelFromPropsValue(this.$props.value, value);\n var defaultValueLabel = getLabelFromPropsValue(this.$props.defaultValue, value);\n if (valueLabel !== undefined) {\n defaultLabel = valueLabel;\n } else if (defaultValueLabel !== undefined) {\n defaultLabel = defaultValueLabel;\n }\n }\n var defaultInfo = {\n option: h(\n Option,\n {\n attrs: { value: value },\n key: value },\n [value]\n ),\n value: value,\n label: defaultLabel\n };\n return defaultInfo;\n },\n getOptionBySingleValue: function getOptionBySingleValue(value) {\n var _getOptionInfoBySingl = this.getOptionInfoBySingleValue(value),\n option = _getOptionInfoBySingl.option;\n\n return option;\n },\n getOptionsBySingleValue: function getOptionsBySingleValue(values) {\n var _this6 = this;\n\n return values.map(function (value) {\n return _this6.getOptionBySingleValue(value);\n });\n },\n getValueByLabel: function getValueByLabel(label) {\n var _this7 = this;\n\n if (label === undefined) {\n return null;\n }\n var value = null;\n Object.keys(this.$data._optionsInfo).forEach(function (key) {\n var info = _this7.$data._optionsInfo[key];\n var disabled = info.disabled;\n\n if (disabled) {\n return;\n }\n var oldLable = toArray(info.label);\n if (oldLable && oldLable.join('') === label) {\n value = info.value;\n }\n });\n return value;\n },\n getVLBySingleValue: function getVLBySingleValue(value) {\n if (this.$props.labelInValue) {\n return {\n key: value,\n label: this.getLabelBySingleValue(value)\n };\n }\n return value;\n },\n getVLForOnChange: function getVLForOnChange(vlsS) {\n var _this8 = this;\n\n var vls = vlsS;\n if (vls !== undefined) {\n if (!this.labelInValue) {\n vls = vls.map(function (v) {\n return v;\n });\n } else {\n vls = vls.map(function (vl) {\n return {\n key: vl,\n label: _this8.getLabelBySingleValue(vl)\n };\n });\n }\n return isMultipleOrTags(this.$props) ? vls : vls[0];\n }\n return vls;\n },\n getLabelBySingleValue: function getLabelBySingleValue(value, optionsInfo) {\n var _getOptionInfoBySingl2 = this.getOptionInfoBySingleValue(value, optionsInfo),\n label = _getOptionInfoBySingl2.label;\n\n return label;\n },\n getDropdownContainer: function getDropdownContainer() {\n if (!this.dropdownContainer) {\n this.dropdownContainer = document.createElement('div');\n document.body.appendChild(this.dropdownContainer);\n }\n return this.dropdownContainer;\n },\n getPlaceholderElement: function getPlaceholderElement() {\n var h = this.$createElement;\n var props = this.$props,\n state = this.$data;\n\n var hidden = false;\n if (state._mirrorInputValue) {\n hidden = true;\n }\n var value = state._value;\n if (value.length) {\n hidden = true;\n }\n if (!state._mirrorInputValue && isCombobox(props) && value.length === 1 && state._value && !state._value[0]) {\n hidden = false;\n }\n var placeholder = props.placeholder;\n if (placeholder) {\n var p = {\n on: {\n mousedown: preventDefaultEvent,\n click: this.onPlaceholderClick\n },\n attrs: UNSELECTABLE_ATTRIBUTE,\n style: _extends({\n display: hidden ? 'none' : 'block'\n }, UNSELECTABLE_STYLE),\n 'class': props.prefixCls + '-selection__placeholder'\n };\n return h(\n 'div',\n p,\n [placeholder]\n );\n }\n return null;\n },\n inputClick: function inputClick(e) {\n if (this.$data._open) {\n this.clearBlurTime();\n e.stopPropagation();\n } else {\n this._focused = false;\n }\n },\n inputBlur: function inputBlur(e) {\n var _this9 = this;\n\n var target = e.relatedTarget || document.activeElement;\n\n // https://github.com/vueComponent/ant-design-vue/issues/999\n // https://github.com/vueComponent/ant-design-vue/issues/1223\n if ((isIE || isEdge) && (e.relatedTarget === this.$refs.arrow || target && this.selectTriggerRef && this.selectTriggerRef.getInnerMenu() && this.selectTriggerRef.getInnerMenu().$el === target || contains(e.target, target))) {\n e.target.focus();\n e.preventDefault();\n return;\n }\n this.clearBlurTime();\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n this.blurTimer = setTimeout(function () {\n _this9._focused = false;\n _this9.updateFocusClassName();\n var props = _this9.$props;\n var value = _this9.$data._value;\n var inputValue = _this9.$data._inputValue;\n\n if (isSingleMode(props) && props.showSearch && inputValue && props.defaultActiveFirstOption) {\n var options = _this9._options || [];\n if (options.length) {\n var firstOption = findFirstMenuItem(options);\n if (firstOption) {\n value = [getValuePropValue(firstOption)];\n _this9.fireChange(value);\n }\n }\n } else if (isMultipleOrTags(props) && inputValue) {\n if (_this9._mouseDown) {\n // need update dropmenu when not blur\n _this9.setInputValue('');\n } else {\n // why not use setState?\n _this9.$data._inputValue = '';\n if (_this9.getInputDOMNode && _this9.getInputDOMNode()) {\n _this9.getInputDOMNode().value = '';\n }\n }\n var tmpValue = _this9.getValueByInput(inputValue);\n if (tmpValue !== undefined) {\n value = tmpValue;\n _this9.fireChange(value);\n }\n }\n // if click the rest space of Select in multiple mode\n if (isMultipleOrTags(props) && _this9._mouseDown) {\n _this9.maybeFocus(true, true);\n _this9._mouseDown = false;\n return;\n }\n _this9.setOpenState(false);\n _this9.$emit('blur', _this9.getVLForOnChange(value));\n }, 200);\n },\n inputFocus: function inputFocus(e) {\n if (this.$props.disabled) {\n e.preventDefault();\n return;\n }\n this.clearBlurTime();\n\n // In IE11, onOuterFocus will be trigger twice when focus input\n // First one: e.target is div\n // Second one: e.target is input\n // other browser only trigger second one\n // https://github.com/ant-design/ant-design/issues/15942\n // Here we ignore the first one when e.target is div\n var inputNode = this.getInputDOMNode();\n if (inputNode && e.target === this.rootRef) {\n return;\n }\n if (!isMultipleOrTagsOrCombobox(this.$props) && e.target === inputNode) {\n return;\n }\n if (this._focused) {\n return;\n }\n this._focused = true;\n this.updateFocusClassName();\n // only effect multiple or tag mode\n if (!isMultipleOrTags(this.$props) || !this._mouseDown) {\n this.timeoutFocus();\n }\n },\n _getInputElement: function _getInputElement() {\n var h = this.$createElement;\n\n var props = this.$props;\n var _$data = this.$data,\n inputValue = _$data._inputValue,\n _mirrorInputValue = _$data._mirrorInputValue;\n\n var attrs = getAttrs(this);\n var defaultInput = h('input', {\n attrs: { id: attrs.id, autoComplete: 'off' }\n });\n\n var inputElement = props.getInputElement ? props.getInputElement() : defaultInput;\n var inputCls = classnames(getClass(inputElement), _defineProperty({}, props.prefixCls + '-search__field', true));\n var inputEvents = getEvents(inputElement);\n // https://github.com/ant-design/ant-design/issues/4992#issuecomment-281542159\n // Add space to the end of the inputValue as the width measurement tolerance\n inputElement.data = inputElement.data || {};\n return h(\n 'div',\n { 'class': props.prefixCls + '-search__field__wrap', on: {\n 'click': this.inputClick\n }\n },\n [cloneElement(inputElement, {\n props: {\n disabled: props.disabled,\n value: inputValue\n },\n attrs: _extends({}, inputElement.data.attrs || {}, {\n disabled: props.disabled,\n value: inputValue\n }),\n domProps: {\n value: inputValue\n },\n 'class': inputCls,\n directives: [{\n name: 'ant-ref',\n value: this.saveInputRef\n }, {\n name: 'ant-input'\n }],\n on: {\n input: this.onInputChange,\n keydown: chaining(this.onInputKeydown, inputEvents.keydown, getListeners(this).inputKeydown),\n focus: chaining(this.inputFocus, inputEvents.focus),\n blur: chaining(this.inputBlur, inputEvents.blur)\n }\n }), h(\n 'span',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.saveInputMirrorRef\n }]\n }, {\n // ref='inputMirrorRef'\n 'class': props.prefixCls + '-search__field__mirror'\n }]),\n [_mirrorInputValue, '\\xA0']\n )]\n );\n },\n getInputDOMNode: function getInputDOMNode() {\n return this.topCtrlRef ? this.topCtrlRef.querySelector('input,textarea,div[contentEditable]') : this.inputRef;\n },\n getInputMirrorDOMNode: function getInputMirrorDOMNode() {\n return this.inputMirrorRef;\n },\n getPopupDOMNode: function getPopupDOMNode() {\n if (this.selectTriggerRef) {\n return this.selectTriggerRef.getPopupDOMNode();\n }\n },\n getPopupMenuComponent: function getPopupMenuComponent() {\n if (this.selectTriggerRef) {\n return this.selectTriggerRef.getInnerMenu();\n }\n },\n setOpenState: function setOpenState(open) {\n var _this10 = this;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = this.$props,\n state = this.$data;\n var needFocus = config.needFocus,\n fireSearch = config.fireSearch;\n\n if (state._open === open) {\n this.maybeFocus(open, !!needFocus);\n return;\n }\n this.__emit('dropdownVisibleChange', open);\n var nextState = {\n _open: open,\n _backfillValue: ''\n };\n // clear search input value when open is false in singleMode.\n if (!open && isSingleMode(props) && props.showSearch) {\n this.setInputValue('', fireSearch);\n }\n if (!open) {\n this.maybeFocus(open, !!needFocus);\n }\n this.setState(nextState, function () {\n if (open) {\n _this10.maybeFocus(open, !!needFocus);\n }\n });\n },\n setInputValue: function setInputValue(inputValue) {\n var fireSearch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (inputValue !== this.$data._inputValue) {\n this.setState({\n _inputValue: inputValue\n }, this.forcePopupAlign);\n if (fireSearch) {\n this.$emit('search', inputValue);\n }\n }\n },\n getValueByInput: function getValueByInput(str) {\n var _this11 = this;\n\n var _$props2 = this.$props,\n multiple = _$props2.multiple,\n tokenSeparators = _$props2.tokenSeparators;\n\n var nextValue = this.$data._value;\n var hasNewValue = false;\n splitBySeparators(str, tokenSeparators).forEach(function (label) {\n var selectedValue = [label];\n if (multiple) {\n var value = _this11.getValueByLabel(label);\n if (value && findIndexInValueBySingleValue(nextValue, value) === -1) {\n nextValue = nextValue.concat(value);\n hasNewValue = true;\n _this11.fireSelect(value);\n }\n } else if (findIndexInValueBySingleValue(nextValue, label) === -1) {\n nextValue = nextValue.concat(selectedValue);\n hasNewValue = true;\n _this11.fireSelect(label);\n }\n });\n return hasNewValue ? nextValue : undefined;\n },\n getRealOpenState: function getRealOpenState(state) {\n var _open = this.$props.open;\n\n if (typeof _open === 'boolean') {\n return _open;\n }\n\n var open = (state || this.$data)._open;\n var options = this._options || [];\n if (isMultipleOrTagsOrCombobox(this.$props) || !this.$props.showSearch) {\n if (open && !options.length) {\n open = false;\n }\n }\n return open;\n },\n focus: function focus() {\n if (isSingleMode(this.$props) && this.selectionRef) {\n this.selectionRef.focus();\n } else if (this.getInputDOMNode()) {\n this.getInputDOMNode().focus();\n }\n },\n blur: function blur() {\n if (isSingleMode(this.$props) && this.selectionRef) {\n this.selectionRef.blur();\n } else if (this.getInputDOMNode()) {\n this.getInputDOMNode().blur();\n }\n },\n markMouseDown: function markMouseDown() {\n this._mouseDown = true;\n },\n markMouseLeave: function markMouseLeave() {\n this._mouseDown = false;\n },\n handleBackfill: function handleBackfill(item) {\n if (!this.backfill || !(isSingleMode(this.$props) || isCombobox(this.$props))) {\n return;\n }\n\n var key = getValuePropValue(item);\n\n if (isCombobox(this.$props)) {\n this.setInputValue(key, false);\n }\n\n this.setState({\n _value: [key],\n _backfillValue: key\n });\n },\n _filterOption: function _filterOption(input, child) {\n var defaultFilter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultFilterFn;\n var _$data2 = this.$data,\n value = _$data2._value,\n backfillValue = _$data2._backfillValue;\n\n var lastValue = value[value.length - 1];\n if (!input || lastValue && lastValue === backfillValue) {\n return true;\n }\n var filterFn = this.$props.filterOption;\n if (hasProp(this, 'filterOption')) {\n if (filterFn === true) {\n filterFn = defaultFilter.bind(this);\n }\n } else {\n filterFn = defaultFilter.bind(this);\n }\n if (!filterFn) {\n return true;\n } else if (typeof filterFn === 'function') {\n return filterFn.call(this, input, child);\n } else if (getValue(child, 'disabled')) {\n return false;\n }\n return true;\n },\n timeoutFocus: function timeoutFocus() {\n var _this12 = this;\n\n if (this.focusTimer) {\n this.clearFocusTime();\n }\n this.focusTimer = window.setTimeout(function () {\n // this._focused = true\n // this.updateFocusClassName()\n _this12.$emit('focus');\n }, 10);\n },\n clearFocusTime: function clearFocusTime() {\n if (this.focusTimer) {\n clearTimeout(this.focusTimer);\n this.focusTimer = null;\n }\n },\n clearBlurTime: function clearBlurTime() {\n if (this.blurTimer) {\n clearTimeout(this.blurTimer);\n this.blurTimer = null;\n }\n },\n clearComboboxTime: function clearComboboxTime() {\n if (this.comboboxTimer) {\n clearTimeout(this.comboboxTimer);\n this.comboboxTimer = null;\n }\n },\n updateFocusClassName: function updateFocusClassName() {\n var rootRef = this.rootRef,\n prefixCls = this.prefixCls;\n // avoid setState and its side effect\n\n if (this._focused) {\n classes(rootRef).add(prefixCls + '-focused');\n } else {\n classes(rootRef).remove(prefixCls + '-focused');\n }\n },\n maybeFocus: function maybeFocus(open, needFocus) {\n if (needFocus || open) {\n var input = this.getInputDOMNode();\n var _document = document,\n activeElement = _document.activeElement;\n\n if (input && (open || isMultipleOrTagsOrCombobox(this.$props))) {\n if (activeElement !== input) {\n input.focus();\n this._focused = true;\n }\n } else if (activeElement !== this.selectionRef && this.selectionRef) {\n this.selectionRef.focus();\n this._focused = true;\n }\n }\n },\n removeSelected: function removeSelected(selectedKey, e) {\n var props = this.$props;\n if (props.disabled || this.isChildDisabled(selectedKey)) {\n return;\n }\n // Do not trigger Trigger popup\n if (e && e.stopPropagation) {\n e.stopPropagation();\n }\n var oldValue = this.$data._value;\n var value = oldValue.filter(function (singleValue) {\n return singleValue !== selectedKey;\n });\n var canMultiple = isMultipleOrTags(props);\n\n if (canMultiple) {\n var event = selectedKey;\n if (props.labelInValue) {\n event = {\n key: selectedKey,\n label: this.getLabelBySingleValue(selectedKey)\n };\n }\n this.$emit('deselect', event, this.getOptionBySingleValue(selectedKey));\n }\n this.fireChange(value);\n },\n openIfHasChildren: function openIfHasChildren() {\n var $props = this.$props;\n\n if ($props.children && $props.children.length || isSingleMode($props)) {\n this.setOpenState(true);\n }\n },\n fireSelect: function fireSelect(value) {\n this.$emit('select', this.getVLBySingleValue(value), this.getOptionBySingleValue(value));\n },\n fireChange: function fireChange(value) {\n if (!hasProp(this, 'value')) {\n this.setState({\n _value: value\n }, this.forcePopupAlign);\n }\n var vls = this.getVLForOnChange(value);\n var options = this.getOptionsBySingleValue(value);\n this._valueOptions = options;\n this.$emit('change', vls, isMultipleOrTags(this.$props) ? options : options[0]);\n },\n isChildDisabled: function isChildDisabled(key) {\n return (this.$props.children || []).some(function (child) {\n var childValue = getValuePropValue(child);\n return childValue === key && getValue(child, 'disabled');\n });\n },\n forcePopupAlign: function forcePopupAlign() {\n if (!this.$data._open) {\n return;\n }\n if (this.selectTriggerRef && this.selectTriggerRef.triggerRef) {\n this.selectTriggerRef.triggerRef.forcePopupAlign();\n }\n },\n renderFilterOptions: function renderFilterOptions() {\n var h = this.$createElement;\n var inputValue = this.$data._inputValue;\n var _$props3 = this.$props,\n children = _$props3.children,\n tags = _$props3.tags,\n notFoundContent = _$props3.notFoundContent;\n\n var menuItems = [];\n var childrenKeys = [];\n var empty = false;\n var options = this.renderFilterOptionsFromChildren(children, childrenKeys, menuItems);\n if (tags) {\n // tags value must be string\n var value = this.$data._value;\n value = value.filter(function (singleValue) {\n return childrenKeys.indexOf(singleValue) === -1 && (!inputValue || String(singleValue).indexOf(String(inputValue)) > -1);\n });\n\n // sort by length\n value.sort(function (val1, val2) {\n return val1.length - val2.length;\n });\n\n value.forEach(function (singleValue) {\n var key = singleValue;\n var attrs = _extends({}, UNSELECTABLE_ATTRIBUTE, {\n role: 'option'\n });\n var menuItem = h(\n MenuItem,\n _mergeJSXProps([{ style: UNSELECTABLE_STYLE }, { attrs: attrs }, {\n attrs: { value: key },\n key: key }]),\n [key]\n );\n options.push(menuItem);\n menuItems.push(menuItem);\n });\n // ref: https://github.com/ant-design/ant-design/issues/14090\n if (inputValue && menuItems.every(function (option) {\n return getValuePropValue(option) !== inputValue;\n })) {\n var p = {\n attrs: UNSELECTABLE_ATTRIBUTE,\n key: inputValue,\n props: {\n value: inputValue,\n role: 'option'\n },\n style: UNSELECTABLE_STYLE\n };\n options.unshift(h(\n MenuItem,\n p,\n [inputValue]\n ));\n }\n }\n\n if (!options.length && notFoundContent) {\n empty = true;\n var _p = {\n attrs: UNSELECTABLE_ATTRIBUTE,\n key: 'NOT_FOUND',\n props: {\n value: 'NOT_FOUND',\n disabled: true,\n role: 'option'\n },\n style: UNSELECTABLE_STYLE\n };\n options = [h(\n MenuItem,\n _p,\n [notFoundContent]\n )];\n }\n return { empty: empty, options: options };\n },\n renderFilterOptionsFromChildren: function renderFilterOptionsFromChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var _this13 = this;\n\n var childrenKeys = arguments[1];\n var menuItems = arguments[2];\n var h = this.$createElement;\n\n var sel = [];\n var props = this.$props;\n var inputValue = this.$data._inputValue;\n\n var tags = props.tags;\n children.forEach(function (child) {\n if (!child.data || child.data.slot !== undefined) {\n return;\n }\n if (getSlotOptions(child).isSelectOptGroup) {\n var label = getComponentFromProp(child, 'label');\n var key = child.key;\n if (!key && typeof label === 'string') {\n key = label;\n } else if (!label && key) {\n label = key;\n }\n var childChildren = getSlots(child)['default'];\n childChildren = typeof childChildren === 'function' ? childChildren() : childChildren;\n // Match option group label\n if (inputValue && _this13._filterOption(inputValue, child)) {\n var innerItems = childChildren.map(function (subChild) {\n var childValueSub = getValuePropValue(subChild) || subChild.key;\n return h(\n MenuItem,\n _mergeJSXProps([{ key: childValueSub, attrs: { value: childValueSub }\n }, subChild.data]),\n [subChild.componentOptions.children]\n );\n });\n\n sel.push(h(\n MenuItemGroup,\n { key: key, attrs: { title: label },\n 'class': getClass(child) },\n [innerItems]\n ));\n\n // Not match\n } else {\n var _innerItems = _this13.renderFilterOptionsFromChildren(childChildren, childrenKeys, menuItems);\n if (_innerItems.length) {\n sel.push(h(\n MenuItemGroup,\n _mergeJSXProps([{ key: key, attrs: { title: label }\n }, child.data]),\n [_innerItems]\n ));\n }\n }\n\n return;\n }\n warning(getSlotOptions(child).isSelectOption, 'the children of `Select` should be `Select.Option` or `Select.OptGroup`, ' + ('instead of `' + (getSlotOptions(child).name || getSlotOptions(child)) + '`.'));\n\n var childValue = getValuePropValue(child);\n\n validateOptionValue(childValue, _this13.$props);\n if (_this13._filterOption(inputValue, child)) {\n var p = {\n attrs: _extends({}, UNSELECTABLE_ATTRIBUTE, getAttrs(child)),\n key: childValue,\n props: _extends({\n value: childValue\n }, getPropsData(child), {\n role: 'option'\n }),\n style: UNSELECTABLE_STYLE,\n on: getEvents(child),\n 'class': getClass(child)\n };\n var menuItem = h(\n MenuItem,\n p,\n [child.componentOptions.children]\n );\n sel.push(menuItem);\n menuItems.push(menuItem);\n }\n if (tags) {\n childrenKeys.push(childValue);\n }\n });\n\n return sel;\n },\n renderTopControlNode: function renderTopControlNode() {\n var _this14 = this;\n\n var h = this.$createElement;\n var props = this.$props;\n var _$data3 = this.$data,\n value = _$data3._value,\n inputValue = _$data3._inputValue,\n open = _$data3._open;\n var choiceTransitionName = props.choiceTransitionName,\n prefixCls = props.prefixCls,\n maxTagTextLength = props.maxTagTextLength,\n maxTagCount = props.maxTagCount,\n maxTagPlaceholder = props.maxTagPlaceholder,\n showSearch = props.showSearch;\n\n var removeIcon = getComponentFromProp(this, 'removeIcon');\n var className = prefixCls + '-selection__rendered';\n // search input is inside topControlNode in single, multiple & combobox. 2016/04/13\n var innerNode = null;\n if (isSingleMode(props)) {\n var selectedValue = null;\n if (value.length) {\n var showSelectedValue = false;\n var opacity = 1;\n if (!showSearch) {\n showSelectedValue = true;\n } else if (open) {\n showSelectedValue = !inputValue;\n if (showSelectedValue) {\n opacity = 0.4;\n }\n } else {\n showSelectedValue = true;\n }\n var singleValue = value[0];\n\n var _getOptionInfoBySingl3 = this.getOptionInfoBySingleValue(singleValue),\n label = _getOptionInfoBySingl3.label,\n title = _getOptionInfoBySingl3.title;\n\n selectedValue = h(\n 'div',\n {\n key: 'value',\n 'class': prefixCls + '-selection-selected-value',\n attrs: { title: toTitle(title || label)\n },\n style: {\n display: showSelectedValue ? 'block' : 'none',\n opacity: opacity\n }\n },\n [label]\n );\n }\n if (!showSearch) {\n innerNode = [selectedValue];\n } else {\n innerNode = [selectedValue, h(\n 'div',\n {\n 'class': prefixCls + '-search ' + prefixCls + '-search--inline',\n key: 'input',\n style: {\n display: open ? 'block' : 'none'\n }\n },\n [this._getInputElement()]\n )];\n }\n } else {\n var selectedValueNodes = [];\n var limitedCountValue = value;\n var maxTagPlaceholderEl = void 0;\n if (maxTagCount !== undefined && value.length > maxTagCount) {\n limitedCountValue = limitedCountValue.slice(0, maxTagCount);\n var omittedValues = this.getVLForOnChange(value.slice(maxTagCount, value.length));\n var content = '+ ' + (value.length - maxTagCount) + ' ...';\n if (maxTagPlaceholder) {\n content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n }\n var attrs = _extends({}, UNSELECTABLE_ATTRIBUTE, {\n role: 'presentation',\n title: toTitle(content)\n });\n maxTagPlaceholderEl = h(\n 'li',\n _mergeJSXProps([{\n style: UNSELECTABLE_STYLE\n }, { attrs: attrs }, {\n on: {\n 'mousedown': preventDefaultEvent\n },\n\n 'class': prefixCls + '-selection__choice ' + prefixCls + '-selection__choice__disabled',\n key: 'maxTagPlaceholder'\n }]),\n [h(\n 'div',\n { 'class': prefixCls + '-selection__choice__content' },\n [content]\n )]\n );\n }\n if (isMultipleOrTags(props)) {\n selectedValueNodes = limitedCountValue.map(function (singleValue) {\n var info = _this14.getOptionInfoBySingleValue(singleValue);\n var content = info.label;\n var title = info.title || content;\n if (maxTagTextLength && typeof content === 'string' && content.length > maxTagTextLength) {\n content = content.slice(0, maxTagTextLength) + '...';\n }\n var disabled = _this14.isChildDisabled(singleValue);\n var choiceClassName = disabled ? prefixCls + '-selection__choice ' + prefixCls + '-selection__choice__disabled' : prefixCls + '-selection__choice';\n // attrs 放在一起,避免动态title混乱问题,很奇怪的问题 https://github.com/vueComponent/ant-design-vue/issues/588\n var attrs = _extends({}, UNSELECTABLE_ATTRIBUTE, {\n role: 'presentation',\n title: toTitle(title)\n });\n return h(\n 'li',\n _mergeJSXProps([{\n style: UNSELECTABLE_STYLE\n }, { attrs: attrs }, {\n on: {\n 'mousedown': preventDefaultEvent\n },\n\n 'class': choiceClassName,\n key: singleValue || SELECT_EMPTY_VALUE_KEY\n }]),\n [h(\n 'div',\n { 'class': prefixCls + '-selection__choice__content' },\n [content]\n ), disabled ? null : h(\n 'span',\n {\n on: {\n 'click': function click(event) {\n _this14.removeSelected(singleValue, event);\n }\n },\n\n 'class': prefixCls + '-selection__choice__remove'\n },\n [removeIcon || h(\n 'i',\n { 'class': prefixCls + '-selection__choice__remove-icon' },\n ['\\xD7']\n )]\n )]\n );\n });\n }\n if (maxTagPlaceholderEl) {\n selectedValueNodes.push(maxTagPlaceholderEl);\n }\n selectedValueNodes.push(h(\n 'li',\n { 'class': prefixCls + '-search ' + prefixCls + '-search--inline', key: '__input' },\n [this._getInputElement()]\n ));\n\n if (isMultipleOrTags(props) && choiceTransitionName) {\n var transitionProps = getTransitionProps(choiceTransitionName, {\n tag: 'ul',\n afterLeave: this.onChoiceAnimationLeave\n });\n innerNode = h(\n 'transition-group',\n transitionProps,\n [selectedValueNodes]\n );\n } else {\n innerNode = h('ul', [selectedValueNodes]);\n }\n }\n return h(\n 'div',\n _mergeJSXProps([{\n 'class': className\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.saveTopCtrlRef\n }]\n }, {\n on: {\n 'click': this.topCtrlContainerClick\n }\n }]),\n [this.getPlaceholderElement(), innerNode]\n );\n },\n renderArrow: function renderArrow(multiple) {\n var h = this.$createElement;\n\n // showArrow : Set to true if not multiple by default but keep set value.\n var _$props4 = this.$props,\n _$props4$showArrow = _$props4.showArrow,\n showArrow = _$props4$showArrow === undefined ? !multiple : _$props4$showArrow,\n loading = _$props4.loading,\n prefixCls = _$props4.prefixCls;\n\n var inputIcon = getComponentFromProp(this, 'inputIcon');\n if (!showArrow && !loading) {\n return null;\n }\n // if loading have loading icon\n var defaultIcon = loading ? h('i', { 'class': prefixCls + '-arrow-loading' }) : h('i', { 'class': prefixCls + '-arrow-icon' });\n return h(\n 'span',\n _mergeJSXProps([{\n key: 'arrow',\n 'class': prefixCls + '-arrow',\n style: UNSELECTABLE_STYLE\n }, { attrs: UNSELECTABLE_ATTRIBUTE }, {\n on: {\n 'click': this.onArrowClick\n },\n\n ref: 'arrow'\n }]),\n [inputIcon || defaultIcon]\n );\n },\n topCtrlContainerClick: function topCtrlContainerClick(e) {\n if (this.$data._open && !isSingleMode(this.$props)) {\n e.stopPropagation();\n }\n },\n renderClear: function renderClear() {\n var h = this.$createElement;\n var _$props5 = this.$props,\n prefixCls = _$props5.prefixCls,\n allowClear = _$props5.allowClear;\n var _$data4 = this.$data,\n value = _$data4._value,\n inputValue = _$data4._inputValue;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n var clear = h(\n 'span',\n _mergeJSXProps([{\n key: 'clear',\n 'class': prefixCls + '-selection__clear',\n on: {\n 'mousedown': preventDefaultEvent\n },\n\n style: UNSELECTABLE_STYLE\n }, { attrs: UNSELECTABLE_ATTRIBUTE }, {\n on: {\n 'click': this.onClearSelection\n }\n }]),\n [clearIcon || h(\n 'i',\n { 'class': prefixCls + '-selection__clear-icon' },\n ['\\xD7']\n )]\n );\n if (!allowClear) {\n return null;\n }\n if (isCombobox(this.$props)) {\n if (inputValue) {\n return clear;\n }\n return null;\n }\n if (inputValue || value.length) {\n return clear;\n }\n return null;\n },\n selectionRefClick: function selectionRefClick() {\n //e.stopPropagation();\n if (!this.disabled) {\n var input = this.getInputDOMNode();\n if (this._focused && this.$data._open) {\n // this._focused = false;\n this.setOpenState(false, false);\n input && input.blur();\n } else {\n this.clearBlurTime();\n //this._focused = true;\n this.setOpenState(true, true);\n input && input.focus();\n }\n }\n },\n selectionRefFocus: function selectionRefFocus(e) {\n if (this._focused || this.disabled || isMultipleOrTagsOrCombobox(this.$props)) {\n e.preventDefault();\n return;\n }\n this._focused = true;\n this.updateFocusClassName();\n this.$emit('focus');\n },\n selectionRefBlur: function selectionRefBlur(e) {\n if (isMultipleOrTagsOrCombobox(this.$props)) {\n e.preventDefault();\n return;\n }\n this.inputBlur(e);\n }\n },\n\n render: function render() {\n var _rootCls;\n\n var h = arguments[0];\n\n var props = this.$props;\n var multiple = isMultipleOrTags(props);\n // Default set showArrow to true if not set (not set directly in defaultProps to handle multiple case)\n var _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === undefined ? true : _props$showArrow;\n\n var state = this.$data;\n var disabled = props.disabled,\n prefixCls = props.prefixCls,\n loading = props.loading;\n\n var ctrlNode = this.renderTopControlNode();\n var _$data5 = this.$data,\n open = _$data5._open,\n inputValue = _$data5._inputValue,\n value = _$data5._value;\n\n if (open) {\n var filterOptions = this.renderFilterOptions();\n this._empty = filterOptions.empty;\n this._options = filterOptions.options;\n }\n var realOpen = this.getRealOpenState();\n var empty = this._empty;\n var options = this._options || [];\n\n var _getListeners = getListeners(this),\n _getListeners$mouseen = _getListeners.mouseenter,\n mouseenter = _getListeners$mouseen === undefined ? noop : _getListeners$mouseen,\n _getListeners$mousele = _getListeners.mouseleave,\n mouseleave = _getListeners$mousele === undefined ? noop : _getListeners$mousele,\n _getListeners$popupSc = _getListeners.popupScroll,\n popupScroll = _getListeners$popupSc === undefined ? noop : _getListeners$popupSc;\n\n var selectionProps = {\n props: {},\n attrs: {\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true',\n 'aria-expanded': realOpen,\n 'aria-controls': this.$data._ariaId\n },\n on: {\n // click: this.selectionRefClick,\n },\n 'class': prefixCls + '-selection ' + prefixCls + '-selection--' + (multiple ? 'multiple' : 'single'),\n // directives: [\n // {\n // name: 'ant-ref',\n // value: this.saveSelectionRef,\n // },\n // ],\n key: 'selection'\n };\n //if (!isMultipleOrTagsOrCombobox(props)) {\n // selectionProps.on.keydown = this.onKeyDown;\n // selectionProps.on.focus = this.selectionRefFocus;\n // selectionProps.on.blur = this.selectionRefBlur;\n // selectionProps.attrs.tabIndex = props.disabled ? -1 : props.tabIndex;\n //}\n var extraSelectionProps = { attrs: { tabIndex: -1 } };\n if (!isMultipleOrTagsOrCombobox(props)) {\n extraSelectionProps.attrs.tabIndex = props.disabled ? -1 : props.tabIndex;\n }\n var rootCls = (_rootCls = {}, _defineProperty(_rootCls, prefixCls, true), _defineProperty(_rootCls, prefixCls + '-open', open), _defineProperty(_rootCls, prefixCls + '-focused', open || !!this._focused), _defineProperty(_rootCls, prefixCls + '-combobox', isCombobox(props)), _defineProperty(_rootCls, prefixCls + '-disabled', disabled), _defineProperty(_rootCls, prefixCls + '-enabled', !disabled), _defineProperty(_rootCls, prefixCls + '-allow-clear', !!props.allowClear), _defineProperty(_rootCls, prefixCls + '-no-arrow', !showArrow), _defineProperty(_rootCls, prefixCls + '-loading', !!loading), _rootCls);\n return h(\n SelectTrigger,\n _mergeJSXProps([{\n attrs: {\n dropdownAlign: props.dropdownAlign,\n dropdownClassName: props.dropdownClassName,\n dropdownMatchSelectWidth: props.dropdownMatchSelectWidth,\n defaultActiveFirstOption: props.defaultActiveFirstOption,\n dropdownMenuStyle: props.dropdownMenuStyle,\n transitionName: props.transitionName,\n animation: props.animation,\n prefixCls: props.prefixCls,\n dropdownStyle: props.dropdownStyle,\n combobox: props.combobox,\n showSearch: props.showSearch,\n options: options,\n empty: empty,\n multiple: multiple,\n disabled: disabled,\n visible: realOpen,\n inputValue: inputValue,\n value: value,\n backfillValue: state._backfillValue,\n firstActiveValue: props.firstActiveValue,\n\n getPopupContainer: props.getPopupContainer,\n\n showAction: props.showAction,\n menuItemSelectedIcon: getComponentFromProp(this, 'menuItemSelectedIcon')\n },\n on: {\n 'dropdownVisibleChange': this.onDropdownVisibleChange,\n 'menuSelect': this.onMenuSelect,\n 'menuDeselect': this.onMenuDeselect,\n 'popupScroll': popupScroll,\n 'popupFocus': this.onPopupFocus,\n 'mouseenter': mouseenter,\n 'mouseleave': mouseleave\n }\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.saveSelectTriggerRef\n }]\n }, {\n attrs: {\n dropdownRender: props.dropdownRender,\n ariaId: this.$data._ariaId\n }\n }]),\n [h(\n 'div',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: chaining(this.saveRootRef, this.saveSelectionRef)\n }]\n }, {\n style: getStyle(this),\n 'class': classnames(rootCls),\n on: {\n 'mousedown': this.markMouseDown,\n 'mouseup': this.markMouseLeave,\n 'mouseout': this.markMouseLeave\n }\n }, extraSelectionProps, {\n on: {\n 'blur': this.selectionRefBlur,\n 'focus': this.selectionRefFocus,\n 'click': this.selectionRefClick,\n 'keydown': isMultipleOrTagsOrCombobox(props) ? noop : this.onKeyDown\n }\n }]),\n [h(\n 'div',\n selectionProps,\n [ctrlNode, this.renderClear(), this.renderArrow(!!multiple)]\n )]\n )]\n );\n }\n};\nexport { Select };\nexport default proxyComponent(Select);","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from '../_util/warning';\nimport omit from 'omit.js';\nimport PropTypes from '../_util/vue-types';\nimport { Select as VcSelect, Option, OptGroup } from '../vc-select';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport { getComponentFromProp, getOptionProps, filterEmpty, isValidElement, getListeners } from '../_util/props-util';\nimport Icon from '../icon';\nimport { cloneElement } from '../_util/vnode';\nimport Base from '../base';\n\nvar AbstractSelectProps = function AbstractSelectProps() {\n return {\n prefixCls: PropTypes.string,\n size: PropTypes.oneOf(['small', 'large', 'default']),\n showAction: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(String)]),\n notFoundContent: PropTypes.any,\n transitionName: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n showSearch: PropTypes.bool,\n allowClear: PropTypes.bool,\n disabled: PropTypes.bool,\n tabIndex: PropTypes.number,\n placeholder: PropTypes.any,\n defaultActiveFirstOption: PropTypes.bool,\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.any,\n dropdownMenuStyle: PropTypes.any,\n dropdownMatchSelectWidth: PropTypes.bool,\n // onSearch: (value: string) => any,\n filterOption: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n autoFocus: PropTypes.bool,\n backfill: PropTypes.bool,\n showArrow: PropTypes.bool,\n getPopupContainer: PropTypes.func,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n autoClearSearchValue: PropTypes.bool,\n dropdownRender: PropTypes.func,\n loading: PropTypes.bool\n };\n};\nvar Value = PropTypes.shape({\n key: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n}).loose;\n\nvar SelectValue = PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([Value, PropTypes.string, PropTypes.number])), Value]);\n\nvar SelectProps = _extends({}, AbstractSelectProps(), {\n value: SelectValue,\n defaultValue: SelectValue,\n // mode: PropTypes.oneOf(['default', 'multiple', 'tags', 'combobox']),\n mode: PropTypes.string,\n optionLabelProp: PropTypes.string,\n firstActiveValue: PropTypes.oneOfType([String, PropTypes.arrayOf(String)]),\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.any,\n maxTagTextLength: PropTypes.number,\n dropdownMatchSelectWidth: PropTypes.bool,\n optionFilterProp: PropTypes.string,\n labelInValue: PropTypes.boolean,\n getPopupContainer: PropTypes.func,\n tokenSeparators: PropTypes.arrayOf(PropTypes.string),\n getInputElement: PropTypes.func,\n options: PropTypes.array,\n suffixIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n menuItemSelectedIcon: PropTypes.any\n});\n\nvar SelectPropTypes = {\n prefixCls: PropTypes.string,\n size: PropTypes.oneOf(['default', 'large', 'small']),\n // combobox: PropTypes.bool,\n notFoundContent: PropTypes.any,\n showSearch: PropTypes.bool,\n optionLabelProp: PropTypes.string,\n transitionName: PropTypes.string,\n choiceTransitionName: PropTypes.string\n};\n\nexport { AbstractSelectProps, SelectValue, SelectProps };\nvar SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nvar Select = {\n SECRET_COMBOBOX_MODE_DO_NOT_USE: SECRET_COMBOBOX_MODE_DO_NOT_USE,\n Option: _extends({}, Option, { name: 'ASelectOption' }),\n OptGroup: _extends({}, OptGroup, { name: 'ASelectOptGroup' }),\n name: 'ASelect',\n props: _extends({}, SelectProps, {\n showSearch: PropTypes.bool.def(false),\n transitionName: PropTypes.string.def('slide-up'),\n choiceTransitionName: PropTypes.string.def('zoom')\n }),\n propTypes: SelectPropTypes,\n model: {\n prop: 'value',\n event: 'change'\n },\n provide: function provide() {\n return {\n savePopupRef: this.savePopupRef\n };\n },\n\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n created: function created() {\n warning(this.$props.mode !== 'combobox', 'Select', 'The combobox mode of Select is deprecated,' + 'it will be removed in next major version,' + 'please use AutoComplete instead');\n },\n\n methods: {\n getNotFoundContent: function getNotFoundContent(renderEmpty) {\n var h = this.$createElement;\n var notFoundContent = getComponentFromProp(this, 'notFoundContent');\n if (notFoundContent !== undefined) {\n return notFoundContent;\n }\n if (this.isCombobox()) {\n return null;\n }\n return renderEmpty(h, 'Select');\n },\n savePopupRef: function savePopupRef(ref) {\n this.popupRef = ref;\n },\n focus: function focus() {\n this.$refs.vcSelect.focus();\n },\n blur: function blur() {\n this.$refs.vcSelect.blur();\n },\n isCombobox: function isCombobox() {\n var mode = this.mode;\n\n return mode === 'combobox' || mode === SECRET_COMBOBOX_MODE_DO_NOT_USE;\n },\n renderSuffixIcon: function renderSuffixIcon(prefixCls) {\n var h = this.$createElement;\n var loading = this.$props.loading;\n\n var suffixIcon = getComponentFromProp(this, 'suffixIcon');\n suffixIcon = Array.isArray(suffixIcon) ? suffixIcon[0] : suffixIcon;\n if (suffixIcon) {\n return isValidElement(suffixIcon) ? cloneElement(suffixIcon, { 'class': prefixCls + '-arrow-icon' }) : suffixIcon;\n }\n if (loading) {\n return h(Icon, {\n attrs: { type: 'loading' }\n });\n }\n return h(Icon, {\n attrs: { type: 'down' },\n 'class': prefixCls + '-arrow-icon' });\n }\n },\n render: function render() {\n var _cls;\n\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n customizePrefixCls = _getOptionProps.prefixCls,\n size = _getOptionProps.size,\n mode = _getOptionProps.mode,\n options = _getOptionProps.options,\n getPopupContainer = _getOptionProps.getPopupContainer,\n showArrow = _getOptionProps.showArrow,\n restProps = _objectWithoutProperties(_getOptionProps, ['prefixCls', 'size', 'mode', 'options', 'getPopupContainer', 'showArrow']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var renderEmpty = this.configProvider.renderEmpty;\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n\n var getContextPopupContainer = this.configProvider.getPopupContainer;\n\n var removeIcon = getComponentFromProp(this, 'removeIcon');\n removeIcon = Array.isArray(removeIcon) ? removeIcon[0] : removeIcon;\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n clearIcon = Array.isArray(clearIcon) ? clearIcon[0] : clearIcon;\n var menuItemSelectedIcon = getComponentFromProp(this, 'menuItemSelectedIcon');\n menuItemSelectedIcon = Array.isArray(menuItemSelectedIcon) ? menuItemSelectedIcon[0] : menuItemSelectedIcon;\n var rest = omit(restProps, ['inputIcon', 'removeIcon', 'clearIcon', 'suffixIcon', 'menuItemSelectedIcon']);\n\n var cls = (_cls = {}, _defineProperty(_cls, prefixCls + '-lg', size === 'large'), _defineProperty(_cls, prefixCls + '-sm', size === 'small'), _defineProperty(_cls, prefixCls + '-show-arrow', showArrow), _cls);\n\n var optionLabelProp = this.$props.optionLabelProp;\n\n if (this.isCombobox()) {\n // children 带 dom 结构时,无法填入输入框\n optionLabelProp = optionLabelProp || 'value';\n }\n\n var modeConfig = {\n multiple: mode === 'multiple',\n tags: mode === 'tags',\n combobox: this.isCombobox()\n };\n var finalRemoveIcon = removeIcon && (isValidElement(removeIcon) ? cloneElement(removeIcon, { 'class': prefixCls + '-remove-icon' }) : removeIcon) || h(Icon, {\n attrs: { type: 'close' },\n 'class': prefixCls + '-remove-icon' });\n\n var finalClearIcon = clearIcon && (isValidElement(clearIcon) ? cloneElement(clearIcon, { 'class': prefixCls + '-clear-icon' }) : clearIcon) || h(Icon, {\n attrs: { type: 'close-circle', theme: 'filled' },\n 'class': prefixCls + '-clear-icon' });\n\n var finalMenuItemSelectedIcon = menuItemSelectedIcon && (isValidElement(menuItemSelectedIcon) ? cloneElement(menuItemSelectedIcon, { 'class': prefixCls + '-selected-icon' }) : menuItemSelectedIcon) || h(Icon, {\n attrs: { type: 'check' },\n 'class': prefixCls + '-selected-icon' });\n\n var selectProps = {\n props: _extends({\n inputIcon: this.renderSuffixIcon(prefixCls),\n removeIcon: finalRemoveIcon,\n clearIcon: finalClearIcon,\n menuItemSelectedIcon: finalMenuItemSelectedIcon,\n showArrow: showArrow\n }, rest, modeConfig, {\n prefixCls: prefixCls,\n optionLabelProp: optionLabelProp || 'children',\n notFoundContent: this.getNotFoundContent(renderEmpty),\n maxTagPlaceholder: getComponentFromProp(this, 'maxTagPlaceholder'),\n placeholder: getComponentFromProp(this, 'placeholder'),\n children: options ? options.map(function (option) {\n var key = option.key,\n _option$label = option.label,\n label = _option$label === undefined ? option.title : _option$label,\n on = option.on,\n cls = option['class'],\n style = option.style,\n restOption = _objectWithoutProperties(option, ['key', 'label', 'on', 'class', 'style']);\n\n return h(\n Option,\n _mergeJSXProps([{ key: key }, { props: restOption, on: on, 'class': cls, style: style }]),\n [label]\n );\n }) : filterEmpty(this.$slots['default']),\n __propsSymbol__: Symbol(),\n dropdownRender: getComponentFromProp(this, 'dropdownRender', {}, false),\n getPopupContainer: getPopupContainer || getContextPopupContainer\n }),\n on: getListeners(this),\n 'class': cls,\n ref: 'vcSelect'\n };\n return h(VcSelect, selectProps);\n }\n};\n\n/* istanbul ignore next */\nSelect.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Select.name, Select);\n Vue.component(Select.Option.name, Select.Option);\n Vue.component(Select.OptGroup.name, Select.OptGroup);\n};\n\nexport default Select;","export default {\n functional: true,\n PRESENTED_IMAGE_DEFAULT: true,\n render: function render() {\n var h = arguments[0];\n\n return h(\n \"svg\",\n {\n attrs: { width: \"184\", height: \"152\", viewBox: \"0 0 184 152\", xmlns: \"http://www.w3.org/2000/svg\" }\n },\n [h(\n \"g\",\n {\n attrs: { fill: \"none\", fillRule: \"evenodd\" }\n },\n [h(\n \"g\",\n {\n attrs: { transform: \"translate(24 31.67)\" }\n },\n [h(\"ellipse\", {\n attrs: {\n fillOpacity: \".8\",\n fill: \"#F5F5F7\",\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }\n }), h(\"path\", {\n attrs: {\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\",\n fill: \"#AEB8C2\"\n }\n }), h(\"path\", {\n attrs: {\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n fill: \"url(#linearGradient-1)\",\n transform: \"translate(13.56)\"\n }\n }), h(\"path\", {\n attrs: {\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\",\n fill: \"#F5F5F7\"\n }\n }), h(\"path\", {\n attrs: {\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\",\n fill: \"#DCE0E6\"\n }\n })]\n ), h(\"path\", {\n attrs: {\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\",\n fill: \"#DCE0E6\"\n }\n }), h(\n \"g\",\n {\n attrs: { transform: \"translate(149.65 15.383)\", fill: \"#FFF\" }\n },\n [h(\"ellipse\", {\n attrs: { cx: \"20.654\", cy: \"3.167\", rx: \"2.849\", ry: \"2.815\" }\n }), h(\"path\", {\n attrs: { d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\" }\n })]\n )]\n )]\n );\n }\n};","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 PropTypes from '../_util/vue-types';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport Base from '../base';\n\nexport var TransferLocale = function TransferLocale() {\n return {\n description: PropTypes.string\n };\n};\n\nexport var EmptyProps = function EmptyProps() {\n return {\n prefixCls: PropTypes.string,\n image: PropTypes.any,\n description: PropTypes.any,\n imageStyle: PropTypes.object\n };\n};\n\nvar Empty = {\n name: 'AEmpty',\n props: _extends({}, EmptyProps()),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n renderEmpty: function renderEmpty(contentLocale) {\n var h = this.$createElement;\n var _$props = this.$props,\n customizePrefixCls = _$props.prefixCls,\n imageStyle = _$props.imageStyle;\n var getPrefixCls = this.configProvider.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var image = getComponentFromProp(this, 'image') || h(DefaultEmptyImg);\n var description = getComponentFromProp(this, 'description');\n\n var des = typeof description !== 'undefined' ? description : contentLocale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var cls = _defineProperty({}, prefixCls, true);\n var imageNode = null;\n if (typeof image === 'string') {\n imageNode = h('img', {\n attrs: { alt: alt, src: image }\n });\n } else if ((typeof image === 'undefined' ? 'undefined' : _typeof(image)) === 'object' && image.PRESENTED_IMAGE_SIMPLE) {\n var Image = image;\n imageNode = h(Image);\n cls[prefixCls + '-normal'] = true;\n } else {\n imageNode = image;\n }\n return h(\n 'div',\n _mergeJSXProps([{ 'class': cls }, { on: getListeners(this) }]),\n [h(\n 'div',\n { 'class': prefixCls + '-image', style: imageStyle },\n [imageNode]\n ), des && h(\n 'p',\n { 'class': prefixCls + '-description' },\n [des]\n ), this.$slots['default'] && h(\n 'div',\n { 'class': prefixCls + '-footer' },\n [this.$slots['default']]\n )]\n );\n }\n },\n render: function render() {\n var h = arguments[0];\n\n return h(LocaleReceiver, {\n attrs: { componentName: 'Empty' },\n scopedSlots: { 'default': this.renderEmpty } });\n }\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = DefaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = SimpleEmptyImg;\n\n/* istanbul ignore next */\nEmpty.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Empty.name, Empty);\n};\n\nexport default Empty;","export default {\n functional: true,\n PRESENTED_IMAGE_SIMPLE: true,\n render: function render() {\n var h = arguments[0];\n\n return h(\n \"svg\",\n {\n attrs: { width: \"64\", height: \"41\", viewBox: \"0 0 64 41\", xmlns: \"http://www.w3.org/2000/svg\" }\n },\n [h(\n \"g\",\n {\n attrs: { transform: \"translate(0 1)\", fill: \"none\", fillRule: \"evenodd\" }\n },\n [h(\"ellipse\", {\n attrs: { fill: \"#F5F5F5\", cx: \"32\", cy: \"33\", rx: \"32\", ry: \"7\" }\n }), h(\n \"g\",\n {\n attrs: { fillRule: \"nonzero\", stroke: \"#D9D9D9\" }\n },\n [h(\"path\", {\n attrs: { d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\" }\n }), h(\"path\", {\n attrs: {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n fill: \"#FAFAFA\"\n }\n })]\n )]\n )]\n );\n }\n};","import PropTypes from '../_util/vue-types';\nimport Empty from '../empty';\nimport { ConfigConsumerProps } from './configConsumerProps';\n\nvar RenderEmpty = {\n functional: true,\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n props: {\n componentName: PropTypes.string\n },\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n injections = context.injections;\n\n function renderHtml(componentName) {\n var getPrefixCls = injections.configProvider.getPrefixCls;\n var prefix = getPrefixCls('empty');\n switch (componentName) {\n case 'Table':\n case 'List':\n return h(Empty, {\n attrs: { image: Empty.PRESENTED_IMAGE_SIMPLE }\n });\n\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return h(Empty, {\n attrs: { image: Empty.PRESENTED_IMAGE_SIMPLE },\n 'class': prefix + '-small' });\n\n default:\n return h(Empty);\n }\n }\n return renderHtml(props.componentName);\n }\n};\n\nfunction renderEmpty(h, componentName) {\n return h(RenderEmpty, {\n attrs: { componentName: componentName }\n });\n}\n\nexport default renderEmpty;","import defaultRenderEmpty from './renderEmpty';\n\nexport var ConfigConsumerProps = {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return 'ant-' + suffixCls;\n },\n renderEmpty: defaultRenderEmpty\n};","import _extends from 'babel-runtime/helpers/extends';\nimport classNames from 'classnames';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getStyle } from '../_util/props-util';\nimport omit from 'omit.js';\nimport { cloneElement } from '../_util/vnode';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nfunction getNumberArray(num) {\n return num ? num.toString().split('').reverse().map(function (i) {\n var current = Number(i);\n return isNaN(current) ? i : current;\n }) : [];\n}\n\nvar ScrollNumberProps = {\n prefixCls: PropTypes.string,\n count: PropTypes.any,\n component: PropTypes.string,\n title: PropTypes.oneOfType([PropTypes.number, PropTypes.string, null]),\n displayComponent: PropTypes.any,\n className: PropTypes.object\n};\n\nexport default {\n mixins: [BaseMixin],\n props: ScrollNumberProps,\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n return {\n animateStarted: true,\n sCount: this.count\n };\n },\n\n watch: {\n count: function count() {\n this.lastCount = this.sCount;\n this.setState({\n animateStarted: true\n });\n }\n },\n updated: function updated() {\n var _this = this;\n\n var animateStarted = this.animateStarted,\n count = this.count;\n\n if (animateStarted) {\n this.clearTimeout();\n // Let browser has time to reset the scroller before actually\n // performing the transition.\n this.timeout = setTimeout(function () {\n _this.setState({\n animateStarted: false,\n sCount: count\n }, _this.onAnimated);\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.clearTimeout();\n },\n\n methods: {\n clearTimeout: function (_clearTimeout) {\n function clearTimeout() {\n return _clearTimeout.apply(this, arguments);\n }\n\n clearTimeout.toString = function () {\n return _clearTimeout.toString();\n };\n\n return clearTimeout;\n }(function () {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = undefined;\n }\n }),\n getPositionByNum: function getPositionByNum(num, i) {\n var sCount = this.sCount;\n\n var currentCount = Math.abs(Number(sCount));\n var lastCount = Math.abs(Number(this.lastCount));\n var currentDigit = Math.abs(getNumberArray(sCount)[i]);\n var lastDigit = Math.abs(getNumberArray(this.lastCount)[i]);\n\n if (this.animateStarted) {\n return 10 + num;\n }\n // 同方向则在同一侧切换数字\n if (currentCount > lastCount) {\n if (currentDigit >= lastDigit) {\n return 10 + num;\n }\n return 20 + num;\n }\n if (currentDigit <= lastDigit) {\n return 10 + num;\n }\n return num;\n },\n onAnimated: function onAnimated() {\n this.$emit('animated');\n },\n renderNumberList: function renderNumberList(position, className) {\n var h = this.$createElement;\n\n var childrenToReturn = [];\n for (var i = 0; i < 30; i++) {\n childrenToReturn.push(h(\n 'p',\n {\n key: i.toString(),\n 'class': classNames(className, {\n current: position === i\n })\n },\n [i % 10]\n ));\n }\n\n return childrenToReturn;\n },\n renderCurrentNumber: function renderCurrentNumber(prefixCls, num, i) {\n var h = this.$createElement;\n\n if (typeof num === 'number') {\n var position = this.getPositionByNum(num, i);\n var removeTransition = this.animateStarted || getNumberArray(this.lastCount)[i] === undefined;\n var style = {\n transition: removeTransition ? 'none' : undefined,\n msTransform: 'translateY(' + -position * 100 + '%)',\n WebkitTransform: 'translateY(' + -position * 100 + '%)',\n transform: 'translateY(' + -position * 100 + '%)'\n };\n return h(\n 'span',\n { 'class': prefixCls + '-only', style: style, key: i },\n [this.renderNumberList(position, prefixCls + '-only-unit')]\n );\n }\n return h(\n 'span',\n { key: 'symbol', 'class': prefixCls + '-symbol' },\n [num]\n );\n },\n renderNumberElement: function renderNumberElement(prefixCls) {\n var _this2 = this;\n\n var sCount = this.sCount;\n\n if (sCount && Number(sCount) % 1 === 0) {\n return getNumberArray(sCount).map(function (num, i) {\n return _this2.renderCurrentNumber(prefixCls, num, i);\n }).reverse();\n }\n return sCount;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var customizePrefixCls = this.prefixCls,\n title = this.title,\n _component = this.component,\n Tag = _component === undefined ? 'sup' : _component,\n displayComponent = this.displayComponent,\n className = this.className;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('scroll-number', customizePrefixCls);\n if (displayComponent) {\n return cloneElement(displayComponent, {\n 'class': prefixCls + '-custom-component'\n });\n }\n var style = getStyle(this, true);\n // fix https://fb.me/react-unknown-prop\n var restProps = omit(this.$props, ['count', 'component', 'prefixCls', 'displayComponent']);\n var newProps = {\n props: _extends({}, restProps),\n attrs: {\n title: title\n },\n style: style,\n 'class': classNames(prefixCls, className)\n };\n // allow specify the border\n // mock border-color by box-shadow for compatible with old usage:\n // \n if (style && style.borderColor) {\n newProps.style.boxShadow = '0 0 0 1px ' + style.borderColor + ' inset';\n }\n\n return h(\n Tag,\n newProps,\n [this.renderNumberElement(prefixCls)]\n );\n }\n};","import { tuple } from './type';\n\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args;\n};\n\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args;\n};","var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\nexport default isNumeric;","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 PropTypes from '../_util/vue-types';\nimport ScrollNumber from './ScrollNumber';\nimport { PresetColorTypes } from '../_util/colors';\nimport classNames from 'classnames';\nimport { initDefaultProps, filterEmpty, getComponentFromProp, getListeners } from '../_util/props-util';\nimport { cloneElement } from '../_util/vnode';\nimport getTransitionProps from '../_util/getTransitionProps';\nimport isNumeric from '../_util/isNumeric';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nvar BadgeProps = {\n /** Number to show in badge */\n count: PropTypes.any,\n showZero: PropTypes.bool,\n /** Max count to show */\n overflowCount: PropTypes.number,\n /** whether to show red dot without number */\n dot: PropTypes.bool,\n prefixCls: PropTypes.string,\n scrollNumberPrefixCls: PropTypes.string,\n status: PropTypes.oneOf(['success', 'processing', 'default', 'error', 'warning']),\n color: PropTypes.string,\n text: PropTypes.string,\n offset: PropTypes.array,\n numberStyle: PropTypes.object.def(function () {\n return {};\n }),\n title: PropTypes.string\n};\nfunction isPresetColor(color) {\n return PresetColorTypes.indexOf(color) !== -1;\n}\nexport default {\n name: 'ABadge',\n props: initDefaultProps(BadgeProps, {\n showZero: false,\n dot: false,\n overflowCount: 99\n }),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n getNumberedDispayCount: function getNumberedDispayCount() {\n var overflowCount = this.$props.overflowCount;\n\n var count = this.badgeCount;\n var displayCount = count > overflowCount ? overflowCount + '+' : count;\n return displayCount;\n },\n getDispayCount: function getDispayCount() {\n var isDot = this.isDot();\n // dot mode don't need count\n if (isDot) {\n return '';\n }\n return this.getNumberedDispayCount();\n },\n getScrollNumberTitle: function getScrollNumberTitle() {\n var title = this.$props.title;\n\n var count = this.badgeCount;\n if (title) {\n return title;\n }\n return typeof count === 'string' || typeof count === 'number' ? count : undefined;\n },\n getStyleWithOffset: function getStyleWithOffset() {\n var _$props = this.$props,\n offset = _$props.offset,\n numberStyle = _$props.numberStyle;\n\n return offset ? _extends({\n right: -parseInt(offset[0], 10) + 'px',\n marginTop: isNumeric(offset[1]) ? offset[1] + 'px' : offset[1]\n }, numberStyle) : _extends({}, numberStyle);\n },\n getBadgeClassName: function getBadgeClassName(prefixCls) {\n var _classNames;\n\n var children = filterEmpty(this.$slots['default']);\n var hasStatus = this.hasStatus();\n return classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-status', hasStatus), _defineProperty(_classNames, prefixCls + '-dot-status', hasStatus && this.dot && !this.isZero()), _defineProperty(_classNames, prefixCls + '-not-a-wrapper', !children.length), _classNames));\n },\n hasStatus: function hasStatus() {\n var _$props2 = this.$props,\n status = _$props2.status,\n color = _$props2.color;\n\n return !!status || !!color;\n },\n isZero: function isZero() {\n var numberedDispayCount = this.getNumberedDispayCount();\n return numberedDispayCount === '0' || numberedDispayCount === 0;\n },\n isDot: function isDot() {\n var dot = this.$props.dot;\n\n var isZero = this.isZero();\n return dot && !isZero || this.hasStatus();\n },\n isHidden: function isHidden() {\n var showZero = this.$props.showZero;\n\n var displayCount = this.getDispayCount();\n var isZero = this.isZero();\n var isDot = this.isDot();\n var isEmpty = displayCount === null || displayCount === undefined || displayCount === '';\n return (isEmpty || isZero && !showZero) && !isDot;\n },\n renderStatusText: function renderStatusText(prefixCls) {\n var h = this.$createElement;\n var text = this.$props.text;\n\n var hidden = this.isHidden();\n return hidden || !text ? null : h(\n 'span',\n { 'class': prefixCls + '-status-text' },\n [text]\n );\n },\n renderDispayComponent: function renderDispayComponent() {\n var count = this.badgeCount;\n var customNode = count;\n if (!customNode || (typeof customNode === 'undefined' ? 'undefined' : _typeof(customNode)) !== 'object') {\n return undefined;\n }\n return cloneElement(customNode, {\n style: this.getStyleWithOffset()\n });\n },\n renderBadgeNumber: function renderBadgeNumber(prefixCls, scrollNumberPrefixCls) {\n var _scrollNumberCls;\n\n var h = this.$createElement;\n var _$props3 = this.$props,\n status = _$props3.status,\n color = _$props3.color;\n\n var count = this.badgeCount;\n var displayCount = this.getDispayCount();\n var isDot = this.isDot();\n var hidden = this.isHidden();\n\n var scrollNumberCls = (_scrollNumberCls = {}, _defineProperty(_scrollNumberCls, prefixCls + '-dot', isDot), _defineProperty(_scrollNumberCls, prefixCls + '-count', !isDot), _defineProperty(_scrollNumberCls, prefixCls + '-multiple-words', !isDot && count && count.toString && count.toString().length > 1), _defineProperty(_scrollNumberCls, prefixCls + '-status-' + status, !!status), _defineProperty(_scrollNumberCls, prefixCls + '-status-' + color, isPresetColor(color)), _scrollNumberCls);\n\n var statusStyle = this.getStyleWithOffset();\n if (color && !isPresetColor(color)) {\n statusStyle = statusStyle || {};\n statusStyle.background = color;\n }\n\n return hidden ? null : h(ScrollNumber, {\n attrs: {\n prefixCls: scrollNumberPrefixCls,\n 'data-show': !hidden,\n\n className: scrollNumberCls,\n count: displayCount,\n displayComponent: this.renderDispayComponent() // }>\n , title: this.getScrollNumberTitle()\n },\n directives: [{\n name: 'show',\n value: !hidden\n }],\n style: statusStyle,\n key: 'scrollNumber'\n });\n }\n },\n\n render: function render() {\n var _classNames2;\n\n var h = arguments[0];\n var customizePrefixCls = this.prefixCls,\n customizeScrollNumberPrefixCls = this.scrollNumberPrefixCls,\n status = this.status,\n text = this.text,\n color = this.color,\n $slots = this.$slots;\n\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('badge', customizePrefixCls);\n var scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);\n\n var children = filterEmpty($slots['default']);\n var count = getComponentFromProp(this, 'count');\n if (Array.isArray(count)) {\n count = count[0];\n }\n this.badgeCount = count;\n var scrollNumber = this.renderBadgeNumber(prefixCls, scrollNumberPrefixCls);\n var statusText = this.renderStatusText(prefixCls);\n var statusCls = classNames((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-status-dot', this.hasStatus()), _defineProperty(_classNames2, prefixCls + '-status-' + status, !!status), _defineProperty(_classNames2, prefixCls + '-status-' + color, isPresetColor(color)), _classNames2));\n var statusStyle = {};\n if (color && !isPresetColor(color)) {\n statusStyle.background = color;\n }\n // \n if (!children.length && this.hasStatus()) {\n var styleWithOffset = this.getStyleWithOffset();\n var statusTextColor = styleWithOffset && styleWithOffset.color;\n return h(\n 'span',\n _mergeJSXProps([{ on: getListeners(this) }, {\n 'class': this.getBadgeClassName(prefixCls),\n style: styleWithOffset\n }]),\n [h('span', { 'class': statusCls, style: statusStyle }), h(\n 'span',\n { style: { color: statusTextColor }, 'class': prefixCls + '-status-text' },\n [text]\n )]\n );\n }\n\n var transitionProps = getTransitionProps(children.length ? prefixCls + '-zoom' : '');\n\n return h(\n 'span',\n _mergeJSXProps([{ on: getListeners(this) }, { 'class': this.getBadgeClassName(prefixCls) }]),\n [children, h(\n 'transition',\n transitionProps,\n [scrollNumber]\n ), statusText]\n );\n }\n};","import Badge from './Badge';\nimport Base from '../base';\n\n/* istanbul ignore next */\nBadge.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Badge.name, Badge);\n};\n\nexport default Badge;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\n\nexport default placements;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport omit from 'omit.js';\nimport PropTypes from '../_util/vue-types';\nimport Trigger from '../vc-trigger';\nimport KeyCode from '../_util/KeyCode';\nimport { connect } from '../_util/store';\nimport SubPopupMenu from './SubPopupMenu';\nimport placements from './placements';\nimport BaseMixin from '../_util/BaseMixin';\nimport { getComponentFromProp, filterEmpty, getListeners } from '../_util/props-util';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../_util/requestAnimationTimeout';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey } from './util';\nimport getTransitionProps from '../_util/getTransitionProps';\n\nvar guid = 0;\n\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n var state = store.getState();\n store.setState({\n defaultActiveFirst: _extends({}, state.defaultActiveFirst, _defineProperty({}, menuId, defaultActiveFirst))\n });\n};\n\nvar SubMenu = {\n name: 'SubMenu',\n props: {\n parentMenu: PropTypes.object,\n title: PropTypes.any,\n selectedKeys: PropTypes.array.def([]),\n openKeys: PropTypes.array.def([]),\n openChange: PropTypes.func.def(noop),\n rootPrefixCls: PropTypes.string,\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n multiple: PropTypes.bool,\n active: PropTypes.bool, // TODO: remove\n isRootMenu: PropTypes.bool.def(false),\n index: PropTypes.number,\n triggerSubMenuAction: PropTypes.string,\n popupClassName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n forceSubMenuRender: PropTypes.bool,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n disabled: PropTypes.bool,\n subMenuOpenDelay: PropTypes.number.def(0.1),\n subMenuCloseDelay: PropTypes.number.def(0.1),\n level: PropTypes.number.def(1),\n inlineIndent: PropTypes.number.def(24),\n openTransitionName: PropTypes.string,\n popupOffset: PropTypes.array,\n isOpen: PropTypes.bool,\n store: PropTypes.object,\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']).def('vertical'),\n manualRef: PropTypes.func.def(noop),\n builtinPlacements: PropTypes.object.def(function () {\n return {};\n }),\n itemIcon: PropTypes.any,\n expandIcon: PropTypes.any,\n subMenuKey: PropTypes.string\n },\n mixins: [BaseMixin],\n isSubMenu: true,\n data: function data() {\n var props = this.$props;\n var store = props.store;\n var eventKey = props.eventKey;\n var defaultActiveFirst = store.getState().defaultActiveFirst;\n var value = false;\n\n if (defaultActiveFirst) {\n value = defaultActiveFirst[eventKey];\n }\n\n updateDefaultActiveFirst(store, eventKey, value);\n return {\n // defaultActiveFirst: false,\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.handleUpdated();\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.handleUpdated();\n });\n },\n beforeDestroy: function beforeDestroy() {\n var eventKey = this.eventKey;\n\n this.__emit('destroy', eventKey);\n\n /* istanbul ignore if */\n if (this.minWidthTimeout) {\n cancelAnimationTimeout(this.minWidthTimeout);\n this.minWidthTimeout = null;\n }\n\n /* istanbul ignore if */\n if (this.mouseenterTimeout) {\n cancelAnimationTimeout(this.mouseenterTimeout);\n this.mouseenterTimeout = null;\n }\n },\n\n methods: {\n handleUpdated: function handleUpdated() {\n var _this3 = this;\n\n var _$props = this.$props,\n mode = _$props.mode,\n parentMenu = _$props.parentMenu,\n manualRef = _$props.manualRef;\n\n // invoke customized ref to expose component to mixin\n\n if (manualRef) {\n manualRef(this);\n }\n\n if (mode !== 'horizontal' || !parentMenu.isRootMenu || !this.isOpen) {\n return;\n }\n\n this.minWidthTimeout = requestAnimationTimeout(function () {\n return _this3.adjustWidth();\n }, 0);\n },\n onKeyDown: function onKeyDown(e) {\n var keyCode = e.keyCode;\n var menu = this.menuInstance;\n var _$props2 = this.$props,\n store = _$props2.store,\n isOpen = _$props2.isOpen;\n\n\n if (keyCode === KeyCode.ENTER) {\n this.onTitleClick(e);\n updateDefaultActiveFirst(store, this.eventKey, true);\n return true;\n }\n\n if (keyCode === KeyCode.RIGHT) {\n if (isOpen) {\n menu.onKeyDown(e);\n } else {\n this.triggerOpenChange(true);\n // need to update current menu's defaultActiveFirst value\n updateDefaultActiveFirst(store, this.eventKey, true);\n }\n return true;\n }\n if (keyCode === KeyCode.LEFT) {\n var handled = void 0;\n if (isOpen) {\n handled = menu.onKeyDown(e);\n } else {\n return undefined;\n }\n if (!handled) {\n this.triggerOpenChange(false);\n handled = true;\n }\n return handled;\n }\n\n if (isOpen && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n return menu.onKeyDown(e);\n }\n return undefined;\n },\n onPopupVisibleChange: function onPopupVisibleChange(visible) {\n this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n },\n onMouseEnter: function onMouseEnter(e) {\n var _$props3 = this.$props,\n key = _$props3.eventKey,\n store = _$props3.store;\n\n updateDefaultActiveFirst(store, key, false);\n this.__emit('mouseenter', {\n key: key,\n domEvent: e\n });\n },\n onMouseLeave: function onMouseLeave(e) {\n var eventKey = this.eventKey,\n parentMenu = this.parentMenu;\n\n parentMenu.subMenuInstance = this;\n // parentMenu.subMenuLeaveFn = () => {\n // // trigger mouseleave\n // this.__emit('mouseleave', {\n // key: eventKey,\n // domEvent: e,\n // })\n // }\n this.__emit('mouseleave', {\n key: eventKey,\n domEvent: e\n });\n // prevent popup menu and submenu gap\n // parentMenu.subMenuLeaveTimer = setTimeout(parentMenu.subMenuLeaveFn, 100)\n },\n onTitleMouseEnter: function onTitleMouseEnter(domEvent) {\n var key = this.$props.eventKey;\n // this.clearSubMenuTitleLeaveTimer()\n\n this.__emit('itemHover', {\n key: key,\n hover: true\n });\n this.__emit('titleMouseenter', {\n key: key,\n domEvent: domEvent\n });\n },\n onTitleMouseLeave: function onTitleMouseLeave(e) {\n var eventKey = this.eventKey,\n parentMenu = this.parentMenu;\n\n parentMenu.subMenuInstance = this;\n this.__emit('itemHover', {\n key: eventKey,\n hover: false\n });\n this.__emit('titleMouseleave', {\n key: eventKey,\n domEvent: e\n });\n },\n onTitleClick: function onTitleClick(e) {\n var _$props4 = this.$props,\n triggerSubMenuAction = _$props4.triggerSubMenuAction,\n eventKey = _$props4.eventKey,\n isOpen = _$props4.isOpen,\n store = _$props4.store;\n\n this.__emit('titleClick', {\n key: eventKey,\n domEvent: e\n });\n if (triggerSubMenuAction === 'hover') {\n return;\n }\n this.triggerOpenChange(!isOpen, 'click');\n updateDefaultActiveFirst(store, eventKey, false);\n },\n onSubMenuClick: function onSubMenuClick(info) {\n this.__emit('click', this.addKeyPath(info));\n },\n getPrefixCls: function getPrefixCls() {\n return this.$props.rootPrefixCls + '-submenu';\n },\n getActiveClassName: function getActiveClassName() {\n return this.getPrefixCls() + '-active';\n },\n getDisabledClassName: function getDisabledClassName() {\n return this.getPrefixCls() + '-disabled';\n },\n getSelectedClassName: function getSelectedClassName() {\n return this.getPrefixCls() + '-selected';\n },\n getOpenClassName: function getOpenClassName() {\n return this.$props.rootPrefixCls + '-submenu-open';\n },\n saveMenuInstance: function saveMenuInstance(c) {\n // children menu instance\n this.menuInstance = c;\n },\n addKeyPath: function addKeyPath(info) {\n return _extends({}, info, {\n keyPath: (info.keyPath || []).concat(this.$props.eventKey)\n });\n },\n\n\n // triggerOpenChange (open, type) {\n // const key = this.$props.eventKey\n // this.__emit('openChange', {\n // key,\n // item: this,\n // trigger: type,\n // open,\n // })\n // },\n triggerOpenChange: function triggerOpenChange(open, type) {\n var _this4 = this;\n\n var key = this.$props.eventKey;\n var openChange = function openChange() {\n _this4.__emit('openChange', {\n key: key,\n item: _this4,\n trigger: type,\n open: open\n });\n };\n if (type === 'mouseenter') {\n // make sure mouseenter happen after other menu item's mouseleave\n this.mouseenterTimeout = requestAnimationTimeout(function () {\n openChange();\n }, 0);\n } else {\n openChange();\n }\n },\n isChildrenSelected: function isChildrenSelected() {\n var ret = { find: false };\n loopMenuItemRecursively(this.$slots['default'], this.$props.selectedKeys, ret);\n return ret.find;\n },\n\n // isOpen () {\n // return this.$props.openKeys.indexOf(this.$props.eventKey) !== -1\n // },\n\n adjustWidth: function adjustWidth() {\n /* istanbul ignore if */\n if (!this.$refs.subMenuTitle || !this.menuInstance) {\n return;\n }\n var popupMenu = this.menuInstance.$el;\n if (popupMenu.offsetWidth >= this.$refs.subMenuTitle.offsetWidth) {\n return;\n }\n\n /* istanbul ignore next */\n popupMenu.style.minWidth = this.$refs.subMenuTitle.offsetWidth + 'px';\n },\n renderChildren: function renderChildren(children) {\n var h = this.$createElement;\n\n var props = this.$props;\n\n var _getListeners = getListeners(this),\n select = _getListeners.select,\n deselect = _getListeners.deselect,\n openChange = _getListeners.openChange;\n\n var subPopupMenuProps = {\n props: {\n mode: props.mode === 'horizontal' ? 'vertical' : props.mode,\n visible: props.isOpen,\n level: props.level + 1,\n inlineIndent: props.inlineIndent,\n focusable: false,\n selectedKeys: props.selectedKeys,\n eventKey: props.eventKey + '-menu-',\n openKeys: props.openKeys,\n openTransitionName: props.openTransitionName,\n openAnimation: props.openAnimation,\n subMenuOpenDelay: props.subMenuOpenDelay,\n parentMenu: this,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n triggerSubMenuAction: props.triggerSubMenuAction,\n builtinPlacements: props.builtinPlacements,\n defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n multiple: props.multiple,\n prefixCls: props.rootPrefixCls,\n manualRef: this.saveMenuInstance,\n itemIcon: getComponentFromProp(this, 'itemIcon'),\n expandIcon: getComponentFromProp(this, 'expandIcon'),\n children: children\n },\n on: {\n click: this.onSubMenuClick,\n select: select,\n deselect: deselect,\n openChange: openChange\n },\n id: this.internalMenuId\n };\n var baseProps = subPopupMenuProps.props;\n var haveRendered = this.haveRendered;\n this.haveRendered = true;\n\n this.haveOpened = this.haveOpened || baseProps.visible || baseProps.forceSubMenuRender;\n // never rendered not planning to, don't render\n if (!this.haveOpened) {\n return h('div');\n }\n\n // don't show transition on first rendering (no animation for opened menu)\n // show appear transition if it's not visible (not sure why)\n // show appear transition if it's not inline mode\n var transitionAppear = haveRendered || !baseProps.visible || !baseProps.mode === 'inline';\n subPopupMenuProps['class'] = ' ' + baseProps.prefixCls + '-sub';\n var animProps = { appear: transitionAppear, css: false };\n var transitionProps = {\n props: animProps,\n on: {}\n };\n if (baseProps.openTransitionName) {\n transitionProps = getTransitionProps(baseProps.openTransitionName, {\n appear: transitionAppear\n });\n } else if (_typeof(baseProps.openAnimation) === 'object') {\n animProps = _extends({}, animProps, baseProps.openAnimation.props || {});\n if (!transitionAppear) {\n animProps.appear = false;\n }\n } else if (typeof baseProps.openAnimation === 'string') {\n transitionProps = getTransitionProps(baseProps.openAnimation, { appear: transitionAppear });\n }\n\n if (_typeof(baseProps.openAnimation) === 'object' && baseProps.openAnimation.on) {\n transitionProps.on = baseProps.openAnimation.on;\n }\n return h(\n 'transition',\n transitionProps,\n [h(SubPopupMenu, _mergeJSXProps([{\n directives: [{\n name: 'show',\n value: props.isOpen\n }]\n }, subPopupMenuProps]))]\n );\n }\n },\n\n render: function render() {\n var _className, _attrs;\n\n var h = arguments[0];\n\n var props = this.$props;\n var rootPrefixCls = this.rootPrefixCls,\n parentMenu = this.parentMenu;\n\n var isOpen = props.isOpen;\n var prefixCls = this.getPrefixCls();\n var isInlineMode = props.mode === 'inline';\n var className = (_className = {}, _defineProperty(_className, prefixCls, true), _defineProperty(_className, prefixCls + '-' + props.mode, true), _defineProperty(_className, this.getOpenClassName(), isOpen), _defineProperty(_className, this.getActiveClassName(), props.active || isOpen && !isInlineMode), _defineProperty(_className, this.getDisabledClassName(), props.disabled), _defineProperty(_className, this.getSelectedClassName(), this.isChildrenSelected()), _className);\n\n if (!this.internalMenuId) {\n if (props.eventKey) {\n this.internalMenuId = props.eventKey + '$Menu';\n } else {\n this.internalMenuId = '$__$' + ++guid + '$Menu';\n }\n }\n\n var mouseEvents = {};\n var titleClickEvents = {};\n var titleMouseEvents = {};\n if (!props.disabled) {\n mouseEvents = {\n mouseleave: this.onMouseLeave,\n mouseenter: this.onMouseEnter\n };\n\n // only works in title, not outer li\n titleClickEvents = {\n click: this.onTitleClick\n };\n titleMouseEvents = {\n mouseenter: this.onTitleMouseEnter,\n mouseleave: this.onTitleMouseLeave\n };\n }\n\n var style = {};\n if (isInlineMode) {\n style.paddingLeft = props.inlineIndent * props.level + 'px';\n }\n var ariaOwns = {};\n // only set aria-owns when menu is open\n // otherwise it would be an invalid aria-owns value\n // since corresponding node cannot be found\n if (isOpen) {\n ariaOwns = {\n 'aria-owns': this.internalMenuId\n };\n }\n var titleProps = {\n attrs: _extends({\n 'aria-expanded': isOpen\n }, ariaOwns, {\n 'aria-haspopup': 'true',\n title: typeof props.title === 'string' ? props.title : undefined\n }),\n on: _extends({}, titleMouseEvents, titleClickEvents),\n style: style,\n 'class': prefixCls + '-title',\n ref: 'subMenuTitle'\n };\n // expand custom icon should NOT be displayed in menu with horizontal mode.\n var icon = null;\n if (props.mode !== 'horizontal') {\n icon = getComponentFromProp(this, 'expandIcon', props);\n }\n var title = h(\n 'div',\n titleProps,\n [getComponentFromProp(this, 'title'), icon || h('i', { 'class': prefixCls + '-arrow' })]\n );\n var children = this.renderChildren(filterEmpty(this.$slots['default']));\n\n var getPopupContainer = this.parentMenu.isRootMenu ? this.parentMenu.getPopupContainer : function (triggerNode) {\n return triggerNode.parentNode;\n };\n var popupPlacement = popupPlacementMap[props.mode];\n var popupAlign = props.popupOffset ? { offset: props.popupOffset } : {};\n var popupClassName = props.mode === 'inline' ? '' : props.popupClassName;\n var liProps = {\n on: _extends({}, omit(getListeners(this), ['click']), mouseEvents),\n 'class': className\n };\n\n return h(\n 'li',\n _mergeJSXProps([liProps, {\n attrs: { role: 'menuitem' }\n }]),\n [isInlineMode && title, isInlineMode && children, !isInlineMode && h(\n Trigger,\n {\n attrs: (_attrs = {\n prefixCls: prefixCls,\n popupClassName: prefixCls + '-popup ' + rootPrefixCls + '-' + parentMenu.theme + ' ' + (popupClassName || ''),\n getPopupContainer: getPopupContainer,\n builtinPlacements: placements\n }, _defineProperty(_attrs, 'builtinPlacements', _extends({}, placements, props.builtinPlacements)), _defineProperty(_attrs, 'popupPlacement', popupPlacement), _defineProperty(_attrs, 'popupVisible', isOpen), _defineProperty(_attrs, 'popupAlign', popupAlign), _defineProperty(_attrs, 'action', props.disabled ? [] : [props.triggerSubMenuAction]), _defineProperty(_attrs, 'mouseEnterDelay', props.subMenuOpenDelay), _defineProperty(_attrs, 'mouseLeaveDelay', props.subMenuCloseDelay), _defineProperty(_attrs, 'forceRender', props.forceSubMenuRender), _attrs),\n on: {\n 'popupVisibleChange': this.onPopupVisibleChange\n }\n },\n [h(\n 'template',\n { slot: 'popup' },\n [children]\n ), title]\n )]\n );\n }\n};\n\nvar connected = connect(function (_ref, _ref2) {\n var openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n isOpen: openKeys.indexOf(eventKey) > -1,\n active: activeKey[subMenuKey] === eventKey,\n selectedKeys: selectedKeys\n };\n})(SubMenu);\n\nconnected.isSubMenu = true;\n\nexport default connected;","import TransitionEvents from './css-animation/Event';\nimport raf from './raf';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nvar styleForPesudo = void 0;\n\n// Where el is the DOM element you'd like to test for visibility\nfunction isHidden(element) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return !element || element.offsetParent === null;\n}\nfunction isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\.\\d]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nexport default {\n name: 'Wave',\n props: ['insertExtraNode'],\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var node = _this.$el;\n if (node.nodeType !== 1) {\n return;\n }\n _this.instance = _this.bindAnimationEvent(node);\n });\n },\n\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.instance) {\n this.instance.cancel();\n }\n if (this.clickWaveTimeoutId) {\n clearTimeout(this.clickWaveTimeoutId);\n }\n this.destroy = true;\n },\n\n methods: {\n onClick: function onClick(node, waveColor) {\n if (!node || isHidden(node) || node.className.indexOf('-leave') >= 0) {\n return;\n }\n var insertExtraNode = this.$props.insertExtraNode;\n\n this.extraNode = document.createElement('div');\n var extraNode = this.extraNode;\n extraNode.className = 'ant-click-animating-node';\n var attributeName = this.getAttributeName();\n node.removeAttribute(attributeName);\n node.setAttribute(attributeName, 'true');\n // Not white or transparent or grey\n styleForPesudo = styleForPesudo || document.createElement('style');\n if (waveColor && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && isNotGrey(waveColor) && !/rgba\\(\\d*, \\d*, \\d*, 0\\)/.test(waveColor) && // any transparent rgba color\n waveColor !== 'transparent') {\n // Add nonce if CSP exist\n if (this.csp && this.csp.nonce) {\n styleForPesudo.nonce = this.csp.nonce;\n }\n extraNode.style.borderColor = waveColor;\n styleForPesudo.innerHTML = '\\n [ant-click-animating-without-extra-node=\\'true\\']::after, .ant-click-animating-node {\\n --antd-wave-shadow-color: ' + waveColor + ';\\n }';\n if (!document.body.contains(styleForPesudo)) {\n document.body.appendChild(styleForPesudo);\n }\n }\n if (insertExtraNode) {\n node.appendChild(extraNode);\n }\n TransitionEvents.addStartEventListener(node, this.onTransitionStart);\n TransitionEvents.addEndEventListener(node, this.onTransitionEnd);\n },\n onTransitionStart: function onTransitionStart(e) {\n if (this.destroy) return;\n\n var node = this.$el;\n if (!e || e.target !== node) {\n return;\n }\n\n if (!this.animationStart) {\n this.resetEffect(node);\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n if (!e || e.animationName !== 'fadeEffect') {\n return;\n }\n this.resetEffect(e.target);\n },\n getAttributeName: function getAttributeName() {\n var insertExtraNode = this.$props.insertExtraNode;\n\n return insertExtraNode ? 'ant-click-animating' : 'ant-click-animating-without-extra-node';\n },\n bindAnimationEvent: function bindAnimationEvent(node) {\n var _this2 = this;\n\n if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.indexOf('disabled') >= 0) {\n return;\n }\n var onClick = function onClick(e) {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n return;\n }\n _this2.resetEffect(node);\n // Get wave color from target\n var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') || // Firefox Compatible\n getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n _this2.clickWaveTimeoutId = window.setTimeout(function () {\n return _this2.onClick(node, waveColor);\n }, 0);\n raf.cancel(_this2.animationStartId);\n _this2.animationStart = true;\n\n // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n _this2.animationStartId = raf(function () {\n _this2.animationStart = false;\n }, 10);\n };\n node.addEventListener('click', onClick, true);\n return {\n cancel: function cancel() {\n node.removeEventListener('click', onClick, true);\n }\n };\n },\n resetEffect: function resetEffect(node) {\n if (!node || node === this.extraNode || !(node instanceof Element)) {\n return;\n }\n var insertExtraNode = this.$props.insertExtraNode;\n\n var attributeName = this.getAttributeName();\n node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n if (styleForPesudo) {\n styleForPesudo.innerHTML = '';\n }\n if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n node.removeChild(this.extraNode);\n }\n TransitionEvents.removeStartEventListener(node, this.onTransitionStart);\n TransitionEvents.removeEndEventListener(node, this.onTransitionEnd);\n }\n },\n\n render: function render() {\n if (this.configProvider.csp) {\n this.csp = this.configProvider.csp;\n }\n return this.$slots['default'] && this.$slots['default'][0];\n }\n};","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport { getOptionProps } from './props-util';\n\nexport default {\n methods: {\n setState: function setState() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n var newState = typeof state === 'function' ? state(this.$data, this.$props) : state;\n if (this.getDerivedStateFromProps) {\n var s = this.getDerivedStateFromProps(getOptionProps(this), _extends({}, this.$data, newState));\n if (s === null) {\n return;\n } else {\n newState = _extends({}, newState, s || {});\n }\n }\n _extends(this.$data, newState);\n this.$forceUpdate();\n this.$nextTick(function () {\n callback && callback();\n });\n },\n __emit: function __emit() {\n // 直接调用listeners,底层组件不需要vueTool记录events\n var args = [].slice.call(arguments, 0);\n var eventName = args[0];\n var event = this.$listeners[eventName];\n if (args.length && event) {\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n event[i].apply(event, _toConsumableArray(args.slice(1)));\n }\n } else {\n event.apply(undefined, _toConsumableArray(args.slice(1)));\n }\n }\n }\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport classNames from 'classnames';\nimport Icon from '../icon';\nimport { getInputClassName } from './Input';\nimport PropTypes from '../_util/vue-types';\nimport { cloneElement } from '../_util/vnode';\nimport { getComponentFromProp } from '../_util/props-util';\n\nexport function hasPrefixSuffix(instance) {\n return !!(getComponentFromProp(instance, 'prefix') || getComponentFromProp(instance, 'suffix') || instance.$props.allowClear);\n}\n\nvar ClearableInputType = ['text', 'input'];\n\nvar ClearableLabeledInput = {\n props: {\n prefixCls: PropTypes.string,\n inputType: PropTypes.oneOf(ClearableInputType),\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n allowClear: PropTypes.bool,\n element: PropTypes.any,\n handleReset: PropTypes.func,\n disabled: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'large', 'default']),\n suffix: PropTypes.any,\n prefix: PropTypes.any,\n addonBefore: PropTypes.any,\n addonAfter: PropTypes.any,\n className: PropTypes.string,\n readOnly: PropTypes.bool\n },\n methods: {\n renderClearIcon: function renderClearIcon(prefixCls) {\n var h = this.$createElement;\n var _$props = this.$props,\n allowClear = _$props.allowClear,\n value = _$props.value,\n disabled = _$props.disabled,\n readOnly = _$props.readOnly,\n inputType = _$props.inputType,\n handleReset = _$props.handleReset;\n\n if (!allowClear || disabled || readOnly || value === undefined || value === null || value === '') {\n return null;\n }\n var className = inputType === ClearableInputType[0] ? prefixCls + '-textarea-clear-icon' : prefixCls + '-clear-icon';\n return h(Icon, {\n attrs: {\n type: 'close-circle',\n theme: 'filled',\n\n role: 'button'\n },\n on: {\n 'click': handleReset\n },\n\n 'class': className });\n },\n renderSuffix: function renderSuffix(prefixCls) {\n var h = this.$createElement;\n var _$props2 = this.$props,\n suffix = _$props2.suffix,\n allowClear = _$props2.allowClear;\n\n if (suffix || allowClear) {\n return h(\n 'span',\n { 'class': prefixCls + '-suffix' },\n [this.renderClearIcon(prefixCls), suffix]\n );\n }\n return null;\n },\n renderLabeledIcon: function renderLabeledIcon(prefixCls, element) {\n var _classNames;\n\n var h = this.$createElement;\n\n var props = this.$props;\n var suffix = this.renderSuffix(prefixCls);\n if (!hasPrefixSuffix(this)) {\n return cloneElement(element, {\n props: { value: props.value }\n });\n }\n\n var prefix = props.prefix ? h(\n 'span',\n { 'class': prefixCls + '-prefix' },\n [props.prefix]\n ) : null;\n\n var affixWrapperCls = classNames(props.className, prefixCls + '-affix-wrapper', (_classNames = {}, _defineProperty(_classNames, prefixCls + '-affix-wrapper-sm', props.size === 'small'), _defineProperty(_classNames, prefixCls + '-affix-wrapper-lg', props.size === 'large'), _defineProperty(_classNames, prefixCls + '-affix-wrapper-input-with-clear-btn', props.suffix && props.allowClear && this.$props.value), _classNames));\n\n return h(\n 'span',\n { 'class': affixWrapperCls, style: props.style },\n [prefix, cloneElement(element, {\n style: null,\n props: { value: props.value },\n 'class': getInputClassName(prefixCls, props.size, props.disabled)\n }), suffix]\n );\n },\n renderInputWithLabel: function renderInputWithLabel(prefixCls, labeledElement) {\n var _classNames3;\n\n var h = this.$createElement;\n var _$props3 = this.$props,\n addonBefore = _$props3.addonBefore,\n addonAfter = _$props3.addonAfter,\n style = _$props3.style,\n size = _$props3.size,\n className = _$props3.className;\n // Not wrap when there is not addons\n\n if (!addonBefore && !addonAfter) {\n return labeledElement;\n }\n\n var wrapperClassName = prefixCls + '-group';\n var addonClassName = wrapperClassName + '-addon';\n var addonBeforeNode = addonBefore ? h(\n 'span',\n { 'class': addonClassName },\n [addonBefore]\n ) : null;\n var addonAfterNode = addonAfter ? h(\n 'span',\n { 'class': addonClassName },\n [addonAfter]\n ) : null;\n\n var mergedWrapperClassName = classNames(prefixCls + '-wrapper', _defineProperty({}, wrapperClassName, addonBefore || addonAfter));\n\n var mergedGroupClassName = classNames(className, prefixCls + '-group-wrapper', (_classNames3 = {}, _defineProperty(_classNames3, prefixCls + '-group-wrapper-sm', size === 'small'), _defineProperty(_classNames3, prefixCls + '-group-wrapper-lg', size === 'large'), _classNames3));\n\n // Need another wrapper for changing display:table to display:inline-block\n // and put style prop in wrapper\n return h(\n 'span',\n { 'class': mergedGroupClassName, style: style },\n [h(\n 'span',\n { 'class': mergedWrapperClassName },\n [addonBeforeNode, cloneElement(labeledElement, { style: null }), addonAfterNode]\n )]\n );\n },\n renderTextAreaWithClearIcon: function renderTextAreaWithClearIcon(prefixCls, element) {\n var h = this.$createElement;\n var _$props4 = this.$props,\n value = _$props4.value,\n allowClear = _$props4.allowClear,\n className = _$props4.className,\n style = _$props4.style;\n\n if (!allowClear) {\n return cloneElement(element, {\n props: { value: value }\n });\n }\n var affixWrapperCls = classNames(className, prefixCls + '-affix-wrapper', prefixCls + '-affix-wrapper-textarea-with-clear-btn');\n return h(\n 'span',\n { 'class': affixWrapperCls, style: style },\n [cloneElement(element, {\n style: null,\n props: { value: value }\n }), this.renderClearIcon(prefixCls)]\n );\n },\n renderClearableLabeledInput: function renderClearableLabeledInput() {\n var _$props5 = this.$props,\n prefixCls = _$props5.prefixCls,\n inputType = _$props5.inputType,\n element = _$props5.element;\n\n if (inputType === ClearableInputType[0]) {\n return this.renderTextAreaWithClearIcon(prefixCls, element);\n }\n return this.renderInputWithLabel(prefixCls, this.renderLabeledIcon(prefixCls, element));\n }\n },\n render: function render() {\n return this.renderClearableLabeledInput();\n }\n};\n\nexport default ClearableLabeledInput;","// based on rc-resize-observer 0.1.3\nimport ResizeObserver from 'resize-observer-polyfill';\n\n// Still need to be compatible with React 15, we use class component here\nvar VueResizeObserver = {\n name: 'ResizeObserver',\n props: {\n disabled: Boolean\n },\n data: function data() {\n this.currentElement = null;\n this.resizeObserver = null;\n return {\n width: 0,\n height: 0\n };\n },\n mounted: function mounted() {\n this.onComponentUpdated();\n },\n updated: function updated() {\n this.onComponentUpdated();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyObserver();\n },\n\n methods: {\n onComponentUpdated: function onComponentUpdated() {\n var disabled = this.$props.disabled;\n\n // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n }\n\n // Unregister if element changed\n var element = this.$el;\n var elementChanged = element !== this.currentElement;\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n }\n },\n onResize: function onResize(entries) {\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (this.width !== fixedWidth || this.height !== fixedHeight) {\n var size = { width: fixedWidth, height: fixedHeight };\n this.width = fixedWidth;\n this.height = fixedHeight;\n this.$emit('resize', size);\n }\n },\n destroyObserver: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n },\n\n render: function render() {\n return this.$slots['default'][0];\n }\n};\n\nexport default VueResizeObserver;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\n\nvar HIDDEN_TEXTAREA_STYLE = '\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important\\n';\n\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];\n\nvar computedStyleCache = {};\nvar hiddenTextarea = void 0;\n\nexport function calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n\n var style = window.getComputedStyle(node);\n\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return name + ':' + style.getPropertyValue(name);\n }).join(';');\n\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n\n return nodeInfo;\n}\n\nexport default function calculateNodeHeight(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n\n\n hiddenTextarea.setAttribute('style', sizingStyle + ';' + HIDDEN_TEXTAREA_STYLE);\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n\n var minHeight = Number.MIN_SAFE_INTEGER;\n var maxHeight = Number.MAX_SAFE_INTEGER;\n var height = hiddenTextarea.scrollHeight;\n var overflowY = void 0;\n\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n return {\n height: height + 'px',\n minHeight: minHeight + 'px',\n maxHeight: maxHeight + 'px',\n overflowY: overflowY\n };\n}","import PropTypes from '../_util/vue-types';\nexport default {\n prefixCls: PropTypes.string,\n inputPrefixCls: PropTypes.string,\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n placeholder: [String, Number],\n type: {\n 'default': 'text',\n type: String\n },\n name: String,\n size: PropTypes.oneOf(['small', 'large', 'default']),\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n addonBefore: PropTypes.any,\n addonAfter: PropTypes.any,\n // onPressEnter?: React.FormEventHandler;\n // onKeyDown?: React.FormEventHandler;\n // onChange?: React.ChangeEventHandler;\n // onClick?: React.FormEventHandler;\n // onFocus?: React.FormEventHandler;\n // onBlur?: React.FormEventHandler;\n prefix: PropTypes.any,\n suffix: PropTypes.any,\n // spellCheck: Boolean,\n autoFocus: Boolean,\n allowClear: Boolean,\n lazy: {\n 'default': true,\n type: Boolean\n },\n maxLength: PropTypes.number,\n loading: PropTypes.bool,\n className: PropTypes.string\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 ResizeObserver from '../vc-resize-observer';\nimport omit from 'omit.js';\nimport classNames from 'classnames';\nimport calculateNodeHeight from './calculateNodeHeight';\nimport raf from '../_util/raf';\nimport warning from '../_util/warning';\nimport BaseMixin from '../_util/BaseMixin';\nimport inputProps from './inputProps';\nimport PropTypes from '../_util/vue-types';\nimport { getOptionProps, getListeners } from '../_util/props-util';\n\nvar RESIZE_STATUS_NONE = 0;\nvar RESIZE_STATUS_RESIZING = 1;\nvar RESIZE_STATUS_RESIZED = 2;\n\nvar TextAreaProps = _extends({}, inputProps, {\n autosize: PropTypes.oneOfType([Object, Boolean]),\n autoSize: PropTypes.oneOfType([Object, Boolean])\n});\nvar ResizableTextArea = {\n name: 'ResizableTextArea',\n props: TextAreaProps,\n data: function data() {\n return {\n textareaStyles: {},\n resizeStatus: RESIZE_STATUS_NONE\n };\n },\n\n mixins: [BaseMixin],\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.resizeTextarea();\n });\n },\n beforeDestroy: function beforeDestroy() {\n raf.cancel(this.nextFrameActionId);\n raf.cancel(this.resizeFrameId);\n },\n\n watch: {\n value: function value() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.resizeTextarea();\n });\n }\n },\n methods: {\n handleResize: function handleResize(size) {\n var resizeStatus = this.$data.resizeStatus;\n var autoSize = this.$props.autoSize;\n\n\n if (resizeStatus !== RESIZE_STATUS_NONE) {\n return;\n }\n this.$emit('resize', size);\n if (autoSize) {\n this.resizeOnNextFrame();\n }\n },\n resizeOnNextFrame: function resizeOnNextFrame() {\n raf.cancel(this.nextFrameActionId);\n this.nextFrameActionId = raf(this.resizeTextarea);\n },\n resizeTextarea: function resizeTextarea() {\n var _this3 = this;\n\n var autoSize = this.$props.autoSize || this.$props.autosize;\n if (!autoSize || !this.$refs.textArea) {\n return;\n }\n var minRows = autoSize.minRows,\n maxRows = autoSize.maxRows;\n\n var textareaStyles = calculateNodeHeight(this.$refs.textArea, false, minRows, maxRows);\n this.setState({ textareaStyles: textareaStyles, resizeStatus: RESIZE_STATUS_RESIZING }, function () {\n raf.cancel(_this3.resizeFrameId);\n _this3.resizeFrameId = raf(function () {\n _this3.setState({ resizeStatus: RESIZE_STATUS_RESIZED }, function () {\n _this3.resizeFrameId = raf(function () {\n _this3.setState({ resizeStatus: RESIZE_STATUS_NONE });\n _this3.fixFirefoxAutoScroll();\n });\n });\n });\n });\n },\n\n // https://github.com/ant-design/ant-design/issues/21870\n fixFirefoxAutoScroll: function fixFirefoxAutoScroll() {\n try {\n if (document.activeElement === this.$refs.textArea) {\n var currentStart = this.$refs.textArea.selectionStart;\n var currentEnd = this.$refs.textArea.selectionEnd;\n this.$refs.textArea.setSelectionRange(currentStart, currentEnd);\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n },\n renderTextArea: function renderTextArea() {\n var h = this.$createElement;\n\n var props = getOptionProps(this);\n var prefixCls = props.prefixCls,\n autoSize = props.autoSize,\n autosize = props.autosize,\n disabled = props.disabled;\n var _$data = this.$data,\n textareaStyles = _$data.textareaStyles,\n resizeStatus = _$data.resizeStatus;\n\n warning(autosize === undefined, 'Input.TextArea', 'autosize is deprecated, please use autoSize instead.');\n var otherProps = omit(props, ['prefixCls', 'autoSize', 'autosize', 'defaultValue', 'allowClear', 'type', 'lazy', 'value']);\n var cls = classNames(prefixCls, _defineProperty({}, prefixCls + '-disabled', disabled));\n var domProps = {};\n // Fix https://github.com/ant-design/ant-design/issues/6776\n // Make sure it could be reset when using form.getFieldDecorator\n if ('value' in props) {\n domProps.value = props.value || '';\n }\n var style = _extends({}, textareaStyles, resizeStatus === RESIZE_STATUS_RESIZING ? { overflowX: 'hidden', overflowY: 'hidden' } : null);\n var textareaProps = {\n attrs: otherProps,\n domProps: domProps,\n style: style,\n 'class': cls,\n on: omit(getListeners(this), 'pressEnter'),\n directives: [{\n name: 'ant-input'\n }]\n };\n return h(\n ResizeObserver,\n {\n on: {\n 'resize': this.handleResize\n },\n attrs: { disabled: !(autoSize || autosize) }\n },\n [h('textarea', _mergeJSXProps([textareaProps, { ref: 'textArea' }]))]\n );\n }\n },\n\n render: function render() {\n return this.renderTextArea();\n }\n};\n\nexport default ResizableTextArea;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport ClearableLabeledInput from './ClearableLabeledInput';\nimport ResizableTextArea from './ResizableTextArea';\nimport inputProps from './inputProps';\nimport hasProp, { getListeners, getOptionProps } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport { fixControlledValue, resolveOnChange } from './Input';\nimport PropTypes from '../_util/vue-types';\n\nvar TextAreaProps = _extends({}, inputProps, {\n autosize: PropTypes.oneOfType([Object, Boolean]),\n autoSize: PropTypes.oneOfType([Object, Boolean])\n});\n\nexport default {\n name: 'ATextarea',\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'change.value'\n },\n props: _extends({}, TextAreaProps),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n var value = typeof this.value === 'undefined' ? this.defaultValue : this.value;\n return {\n stateValue: typeof value === 'undefined' ? '' : value\n };\n },\n\n computed: {},\n watch: {\n value: function value(val) {\n this.stateValue = val;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus) {\n _this.focus();\n }\n });\n },\n\n methods: {\n setValue: function setValue(value, callback) {\n if (!hasProp(this, 'value')) {\n this.stateValue = value;\n this.$nextTick(function () {\n callback && callback();\n });\n } else {\n // 不在严格受控\n // https://github.com/vueComponent/ant-design-vue/issues/2207,modal 是 新 new 实例,更新队列和当前不在同一个更新队列中\n // this.$forceUpdate();\n }\n },\n handleKeyDown: function handleKeyDown(e) {\n if (e.keyCode === 13) {\n this.$emit('pressEnter', e);\n }\n this.$emit('keydown', e);\n },\n onChange: function onChange(e) {\n this.$emit('change.value', e.target.value);\n this.$emit('change', e);\n this.$emit('input', e);\n },\n handleChange: function handleChange(e) {\n var _this2 = this;\n\n var _e$target = e.target,\n value = _e$target.value,\n composing = _e$target.composing;\n\n if ((e.isComposing || composing) && this.lazy || this.stateValue === value) return;\n\n this.setValue(e.target.value, function () {\n _this2.$refs.resizableTextArea.resizeTextarea();\n });\n resolveOnChange(this.$refs.resizableTextArea.$refs.textArea, e, this.onChange);\n },\n focus: function focus() {\n this.$refs.resizableTextArea.$refs.textArea.focus();\n },\n blur: function blur() {\n this.$refs.resizableTextArea.$refs.textArea.blur();\n },\n handleReset: function handleReset(e) {\n var _this3 = this;\n\n this.setValue('', function () {\n _this3.$refs.resizableTextArea.renderTextArea();\n _this3.focus();\n });\n resolveOnChange(this.$refs.resizableTextArea.$refs.textArea, e, this.onChange);\n },\n renderTextArea: function renderTextArea(prefixCls) {\n var h = this.$createElement;\n\n var props = getOptionProps(this);\n var resizeProps = {\n props: _extends({}, props, {\n prefixCls: prefixCls\n }),\n on: _extends({}, getListeners(this), {\n input: this.handleChange,\n keydown: this.handleKeyDown\n }),\n attrs: this.$attrs\n };\n return h(ResizableTextArea, _mergeJSXProps([resizeProps, { ref: 'resizableTextArea' }]));\n }\n },\n render: function render() {\n var h = arguments[0];\n var stateValue = this.stateValue,\n customizePrefixCls = this.prefixCls;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n\n var props = {\n props: _extends({}, getOptionProps(this), {\n prefixCls: prefixCls,\n inputType: 'text',\n value: fixControlledValue(stateValue),\n element: this.renderTextArea(prefixCls),\n handleReset: this.handleReset\n }),\n on: getListeners(this)\n };\n return h(ClearableLabeledInput, props);\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport classNames from 'classnames';\nimport TextArea from './TextArea';\nimport omit from 'omit.js';\nimport inputProps from './inputProps';\nimport { hasProp, getComponentFromProp, getListeners, getOptionProps } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport ClearableLabeledInput from './ClearableLabeledInput';\n\nfunction noop() {}\n\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return value;\n}\n\nexport function resolveOnChange(target, e, onChange) {\n if (onChange) {\n var event = e;\n if (e.type === 'click') {\n // click clear icon\n //event = Object.create(e);\n Object.defineProperty(event, 'target', {\n writable: true\n });\n Object.defineProperty(event, 'currentTarget', {\n writable: true\n });\n event.target = target;\n event.currentTarget = target;\n var originalInputValue = target.value;\n // change target ref value cause e.target.value should be '' when clear input\n target.value = '';\n onChange(event);\n // reset target ref value\n target.value = originalInputValue;\n return;\n }\n onChange(event);\n }\n}\n\nexport function getInputClassName(prefixCls, size, disabled) {\n var _classNames;\n\n return classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-sm', size === 'small'), _defineProperty(_classNames, prefixCls + '-lg', size === 'large'), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _classNames));\n}\n\nexport default {\n name: 'AInput',\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'change.value'\n },\n props: _extends({}, inputProps),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n var props = this.$props;\n var value = typeof props.value === 'undefined' ? props.defaultValue : props.value;\n return {\n stateValue: typeof value === 'undefined' ? '' : value\n };\n },\n\n watch: {\n value: function value(val) {\n this.stateValue = val;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus) {\n _this.focus();\n }\n _this.clearPasswordValueAttribute();\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (this.removePasswordTimeout) {\n clearTimeout(this.removePasswordTimeout);\n }\n },\n\n methods: {\n onBlur: function onBlur(e) {\n // fix this isssue: https://github.com/vueComponent/ant-design-vue/issues/3816\n // reference: https://github.com/vuejs/vue/issues/5847 and https://github.com/vuejs/vue/issues/8431\n this.$forceUpdate();\n\n var _getListeners = getListeners(this),\n blur = _getListeners.blur;\n\n blur && blur(e);\n },\n focus: function focus() {\n this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input.blur();\n },\n select: function select() {\n this.$refs.input.select();\n },\n setValue: function setValue(value, callback) {\n if (this.stateValue === value) {\n return;\n }\n if (!hasProp(this, 'value')) {\n this.stateValue = value;\n this.$nextTick(function () {\n callback && callback();\n });\n } else {\n // 不在严格受控\n // https://github.com/vueComponent/ant-design-vue/issues/2207,modal 是 新 new 实例,更新队列和当前不在同一个更新队列中\n // this.$forceUpdate();\n }\n },\n onChange: function onChange(e) {\n this.$emit('change.value', e.target.value);\n this.$emit('change', e);\n this.$emit('input', e);\n },\n handleReset: function handleReset(e) {\n var _this2 = this;\n\n this.setValue('', function () {\n _this2.focus();\n });\n resolveOnChange(this.$refs.input, e, this.onChange);\n },\n renderInput: function renderInput(prefixCls) {\n var h = this.$createElement;\n\n var otherProps = omit(this.$props, ['prefixCls', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear', 'value', 'defaultValue', 'lazy', 'size', 'inputType', 'className']);\n var stateValue = this.stateValue,\n handleKeyDown = this.handleKeyDown,\n handleChange = this.handleChange,\n size = this.size,\n disabled = this.disabled;\n\n var inputProps = {\n directives: [{ name: 'ant-input' }],\n domProps: {\n value: fixControlledValue(stateValue)\n },\n attrs: _extends({}, otherProps, this.$attrs),\n on: _extends({}, getListeners(this), {\n keydown: handleKeyDown,\n input: handleChange,\n change: noop,\n blur: this.onBlur\n }),\n 'class': getInputClassName(prefixCls, size, disabled),\n ref: 'input',\n key: 'ant-input'\n };\n return h('input', inputProps);\n },\n clearPasswordValueAttribute: function clearPasswordValueAttribute() {\n var _this3 = this;\n\n // https://github.com/ant-design/ant-design/issues/20541\n this.removePasswordTimeout = setTimeout(function () {\n if (_this3.$refs.input && _this3.$refs.input.getAttribute && _this3.$refs.input.getAttribute('type') === 'password' && _this3.$refs.input.hasAttribute('value')) {\n _this3.$refs.input.removeAttribute('value');\n }\n });\n },\n handleChange: function handleChange(e) {\n var _e$target = e.target,\n value = _e$target.value,\n composing = _e$target.composing;\n // https://github.com/vueComponent/ant-design-vue/issues/2203\n\n if ((e.isComposing || composing) && this.lazy || this.stateValue === value) return;\n this.setValue(value, this.clearPasswordValueAttribute);\n resolveOnChange(this.$refs.input, e, this.onChange);\n },\n handleKeyDown: function handleKeyDown(e) {\n if (e.keyCode === 13) {\n this.$emit('pressEnter', e);\n }\n this.$emit('keydown', e);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (this.$props.type === 'textarea') {\n var textareaProps = {\n props: this.$props,\n attrs: this.$attrs,\n on: _extends({}, getListeners(this), {\n input: this.handleChange,\n keydown: this.handleKeyDown,\n change: noop,\n blur: this.onBlur\n })\n };\n return h(TextArea, _mergeJSXProps([textareaProps, { ref: 'input' }]));\n }\n var customizePrefixCls = this.$props.prefixCls;\n var stateValue = this.$data.stateValue;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n var addonAfter = getComponentFromProp(this, 'addonAfter');\n var addonBefore = getComponentFromProp(this, 'addonBefore');\n var suffix = getComponentFromProp(this, 'suffix');\n var prefix = getComponentFromProp(this, 'prefix');\n var props = {\n props: _extends({}, getOptionProps(this), {\n prefixCls: prefixCls,\n inputType: 'input',\n value: fixControlledValue(stateValue),\n element: this.renderInput(prefixCls),\n handleReset: this.handleReset,\n addonAfter: addonAfter,\n addonBefore: addonBefore,\n suffix: suffix,\n prefix: prefix\n }),\n on: getListeners(this)\n };\n return h(ClearableLabeledInput, props);\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport { filterEmpty, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nexport default {\n name: 'AInputGroup',\n props: {\n prefixCls: PropTypes.string,\n size: {\n validator: function validator(value) {\n return ['small', 'large', 'default'].includes(value);\n }\n },\n compact: Boolean\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n computed: {\n classes: function classes() {\n var _ref;\n\n var customizePrefixCls = this.prefixCls,\n size = this.size,\n _compact = this.compact,\n compact = _compact === undefined ? false : _compact;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('input-group', customizePrefixCls);\n\n return _ref = {}, _defineProperty(_ref, '' + prefixCls, true), _defineProperty(_ref, prefixCls + '-lg', size === 'large'), _defineProperty(_ref, prefixCls + '-sm', size === 'small'), _defineProperty(_ref, prefixCls + '-compact', compact), _ref;\n }\n },\n methods: {},\n render: function render() {\n var h = arguments[0];\n\n return h(\n 'span',\n _mergeJSXProps([{ 'class': this.classes }, { on: getListeners(this) }]),\n [filterEmpty(this.$slots['default'])]\n );\n }\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classNames from 'classnames';\nimport { isMobile } from 'is-mobile';\nimport Input from './Input';\nimport Icon from '../icon';\nimport inputProps from './inputProps';\nimport Button from '../button';\nimport { cloneElement } from '../_util/vnode';\nimport PropTypes from '../_util/vue-types';\nimport { getOptionProps, getComponentFromProp, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nexport default {\n name: 'AInputSearch',\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'change.value'\n },\n props: _extends({}, inputProps, {\n // 不能设置默认值 https://github.com/vueComponent/ant-design-vue/issues/1916\n enterButton: PropTypes.any\n }),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n onChange: function onChange(e) {\n if (e && e.target && e.type === 'click') {\n this.$emit('search', e.target.value, e);\n }\n this.$emit('change', e);\n },\n onSearch: function onSearch(e) {\n if (this.loading || this.disabled) {\n return;\n }\n this.$emit('search', this.$refs.input.stateValue, e);\n if (!isMobile({ tablet: true })) {\n this.$refs.input.focus();\n }\n },\n focus: function focus() {\n this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input.blur();\n },\n renderLoading: function renderLoading(prefixCls) {\n var h = this.$createElement;\n var size = this.$props.size;\n\n var enterButton = getComponentFromProp(this, 'enterButton');\n // 兼容 , 因enterButton类型为 any,此类写法 enterButton 为空字符串\n enterButton = enterButton || enterButton === '';\n if (enterButton) {\n return h(\n Button,\n { 'class': prefixCls + '-button', attrs: { type: 'primary', size: size },\n key: 'enterButton' },\n [h(Icon, {\n attrs: { type: 'loading' }\n })]\n );\n }\n return h(Icon, { 'class': prefixCls + '-icon', attrs: { type: 'loading' },\n key: 'loadingIcon' });\n },\n renderSuffix: function renderSuffix(prefixCls) {\n var h = this.$createElement;\n var loading = this.loading;\n\n var suffix = getComponentFromProp(this, 'suffix');\n var enterButton = getComponentFromProp(this, 'enterButton');\n // 兼容 , 因enterButton类型为 any,此类写法 enterButton 为空字符串\n enterButton = enterButton || enterButton === '';\n if (loading && !enterButton) {\n return [suffix, this.renderLoading(prefixCls)];\n }\n\n if (enterButton) return suffix;\n\n var icon = h(Icon, { 'class': prefixCls + '-icon', attrs: { type: 'search' },\n key: 'searchIcon', on: {\n 'click': this.onSearch\n }\n });\n\n if (suffix) {\n // let cloneSuffix = suffix;\n // if (isValidElement(cloneSuffix) && !cloneSuffix.key) {\n // cloneSuffix = cloneElement(cloneSuffix, {\n // key: 'originSuffix',\n // });\n // }\n return [suffix, icon];\n }\n\n return icon;\n },\n renderAddonAfter: function renderAddonAfter(prefixCls) {\n var h = this.$createElement;\n var size = this.size,\n disabled = this.disabled,\n loading = this.loading;\n\n var btnClassName = prefixCls + '-button';\n var enterButton = getComponentFromProp(this, 'enterButton');\n enterButton = enterButton || enterButton === '';\n var addonAfter = getComponentFromProp(this, 'addonAfter');\n if (loading && enterButton) {\n return [this.renderLoading(prefixCls), addonAfter];\n }\n if (!enterButton) return addonAfter;\n var enterButtonAsElement = Array.isArray(enterButton) ? enterButton[0] : enterButton;\n var button = void 0;\n var isAntdButton = enterButtonAsElement.componentOptions && enterButtonAsElement.componentOptions.Ctor.extendOptions.__ANT_BUTTON;\n if (enterButtonAsElement.tag === 'button' || isAntdButton) {\n button = cloneElement(enterButtonAsElement, {\n key: 'enterButton',\n 'class': isAntdButton ? btnClassName : '',\n props: isAntdButton ? { size: size } : {},\n on: {\n click: this.onSearch\n }\n });\n } else {\n button = h(\n Button,\n {\n 'class': btnClassName,\n attrs: { type: 'primary',\n size: size,\n disabled: disabled\n },\n key: 'enterButton',\n on: {\n 'click': this.onSearch\n }\n },\n [enterButton === true || enterButton === '' ? h(Icon, {\n attrs: { type: 'search' }\n }) : enterButton]\n );\n }\n if (addonAfter) {\n return [button, addonAfter];\n }\n\n return button;\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n customizePrefixCls = _getOptionProps.prefixCls,\n customizeInputPrefixCls = _getOptionProps.inputPrefixCls,\n size = _getOptionProps.size,\n loading = _getOptionProps.loading,\n others = _objectWithoutProperties(_getOptionProps, ['prefixCls', 'inputPrefixCls', 'size', 'loading']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('input-search', customizePrefixCls);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n\n var enterButton = getComponentFromProp(this, 'enterButton');\n var addonBefore = getComponentFromProp(this, 'addonBefore');\n enterButton = enterButton || enterButton === '';\n var inputClassName = void 0;\n if (enterButton) {\n var _classNames;\n\n inputClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-enter-button', !!enterButton), _defineProperty(_classNames, prefixCls + '-' + size, !!size), _classNames));\n } else {\n inputClassName = prefixCls;\n }\n\n var on = _extends({}, getListeners(this));\n delete on.search;\n var inputProps = {\n props: _extends({}, others, {\n prefixCls: inputPrefixCls,\n size: size,\n suffix: this.renderSuffix(prefixCls),\n prefix: getComponentFromProp(this, 'prefix'),\n addonAfter: this.renderAddonAfter(prefixCls),\n addonBefore: addonBefore,\n className: inputClassName\n }),\n attrs: this.$attrs,\n ref: 'input',\n on: _extends({\n pressEnter: this.onSearch\n }, on, {\n change: this.onChange\n })\n };\n return h(Input, inputProps);\n }\n};","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classNames from 'classnames';\nimport { getComponentFromProp, getOptionProps, getListeners } from '../_util/props-util';\nimport Input from './Input';\nimport Icon from '../icon';\nimport inputProps from './inputProps';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\n\nvar ActionMap = {\n click: 'click',\n hover: 'mouseover'\n};\n\nexport default {\n name: 'AInputPassword',\n mixins: [BaseMixin],\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'change.value'\n },\n props: _extends({}, inputProps, {\n prefixCls: PropTypes.string,\n inputPrefixCls: PropTypes.string,\n action: PropTypes.string.def('click'),\n visibilityToggle: PropTypes.bool.def(true)\n }),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n return {\n visible: false\n };\n },\n\n methods: {\n focus: function focus() {\n this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input.blur();\n },\n onVisibleChange: function onVisibleChange() {\n if (this.disabled) {\n return;\n }\n this.setState({\n visible: !this.visible\n });\n },\n getIcon: function getIcon(prefixCls) {\n var _on;\n\n var h = this.$createElement;\n var action = this.$props.action;\n\n var iconTrigger = ActionMap[action] || '';\n var iconProps = {\n props: {\n type: this.visible ? 'eye' : 'eye-invisible'\n },\n on: (_on = {}, _defineProperty(_on, iconTrigger, this.onVisibleChange), _defineProperty(_on, 'mousedown', function mousedown(e) {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n }), _defineProperty(_on, 'mouseup', function mouseup(e) {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/pull/23633/files\n e.preventDefault();\n }), _on),\n 'class': prefixCls + '-icon',\n key: 'passwordIcon'\n };\n return h(Icon, iconProps);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var _getOptionProps = getOptionProps(this),\n customizePrefixCls = _getOptionProps.prefixCls,\n customizeInputPrefixCls = _getOptionProps.inputPrefixCls,\n size = _getOptionProps.size,\n suffix = _getOptionProps.suffix,\n visibilityToggle = _getOptionProps.visibilityToggle,\n restProps = _objectWithoutProperties(_getOptionProps, ['prefixCls', 'inputPrefixCls', 'size', 'suffix', 'visibilityToggle']);\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var prefixCls = getPrefixCls('input-password', customizePrefixCls);\n\n var suffixIcon = visibilityToggle && this.getIcon(prefixCls);\n var inputClassName = classNames(prefixCls, _defineProperty({}, prefixCls + '-' + size, !!size));\n var inputProps = {\n props: _extends({}, restProps, {\n prefixCls: inputPrefixCls,\n size: size,\n suffix: suffixIcon,\n prefix: getComponentFromProp(this, 'prefix'),\n addonAfter: getComponentFromProp(this, 'addonAfter'),\n addonBefore: getComponentFromProp(this, 'addonBefore')\n }),\n attrs: _extends({}, this.$attrs, {\n type: this.visible ? 'text' : 'password'\n }),\n 'class': inputClassName,\n ref: 'input',\n on: getListeners(this)\n };\n return h(Input, inputProps);\n }\n};","import Vue from 'vue';\nimport Input from './Input';\nimport Group from './Group';\nimport Search from './Search';\nimport TextArea from './TextArea';\nimport Password from './Password';\nimport antInputDirective from '../_util/antInputDirective';\nimport Base from '../base';\n\nVue.use(antInputDirective);\n\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\n\n/* istanbul ignore next */\nInput.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Input.name, Input);\n Vue.component(Input.Group.name, Input.Group);\n Vue.component(Input.Search.name, Input.Search);\n Vue.component(Input.TextArea.name, Input.TextArea);\n Vue.component(Input.Password.name, Input.Password);\n};\n\nexport default Input;","import raf from 'raf';\n\nvar id = 0;\nvar ids = {};\n\n// Support call raf with delay specified frame\nexport default function wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var myId = id++;\n var restFrames = delayFrames;\n\n function internalCallback() {\n restFrames -= 1;\n\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = raf(internalCallback);\n }\n }\n\n ids[myId] = raf(internalCallback);\n\n return myId;\n}\n\nwrapperRaf.cancel = function (pid) {\n if (pid === undefined) return;\n raf.cancel(ids[pid]);\n delete ids[pid];\n};\nwrapperRaf.ids = ids; // export this for test usage","import PropTypes from '../_util/vue-types';\nexport default (function () {\n return {\n prefixCls: PropTypes.string,\n type: PropTypes.string,\n htmlType: PropTypes.oneOf(['button', 'submit', 'reset']).def('button'),\n icon: PropTypes.any,\n shape: PropTypes.oneOf(['circle', 'circle-outline', 'round']),\n size: PropTypes.oneOf(['small', 'large', 'default']).def('default'),\n loading: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n disabled: PropTypes.bool,\n ghost: PropTypes.bool,\n block: PropTypes.bool\n };\n});","import '../../style/index.less';\nimport './index.less';","var START_EVENT_NAME_MAP = {\n transitionstart: {\n transition: 'transitionstart',\n WebkitTransition: 'webkitTransitionStart',\n MozTransition: 'mozTransitionStart',\n OTransition: 'oTransitionStart',\n msTransition: 'MSTransitionStart'\n },\n\n animationstart: {\n animation: 'animationstart',\n WebkitAnimation: 'webkitAnimationStart',\n MozAnimation: 'mozAnimationStart',\n OAnimation: 'oAnimationStart',\n msAnimation: 'MSAnimationStart'\n }\n};\n\nvar END_EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar startEvents = [];\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete START_EVENT_NAME_MAP.animationstart.animation;\n delete END_EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete START_EVENT_NAME_MAP.transitionstart.transition;\n delete END_EVENT_NAME_MAP.transitionend.transition;\n }\n\n function process(EVENT_NAME_MAP, events) {\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n events.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n }\n\n process(START_EVENT_NAME_MAP, startEvents);\n process(END_EVENT_NAME_MAP, endEvents);\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n // Start events\n startEvents: startEvents,\n\n addStartEventListener: function addStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n startEvents.forEach(function (startEvent) {\n addEventListener(node, startEvent, eventListener);\n });\n },\n removeStartEventListener: function removeStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n return;\n }\n startEvents.forEach(function (startEvent) {\n removeEventListener(node, startEvent, eventListener);\n });\n },\n\n\n // End events\n endEvents: endEvents,\n\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexport default TransitionEvents;","import addDOMEventListener from 'add-dom-event-listener';\n\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n return addDOMEventListener(target, eventType, cb, option);\n}","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _slicedToArray from 'babel-runtime/helpers/slicedToArray';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\n/* eslint no-loop-func: 0*/\nimport warning from 'warning';\nimport omit from 'omit.js';\nimport TreeNode from './TreeNode';\nimport { getSlotOptions, getOptionProps } from '../../_util/props-util';\nvar DRAG_SIDE_RANGE = 0.25;\nvar DRAG_MIN_GAP = 2;\n\nvar onlyTreeNodeWarned = false;\n\nexport function warnOnlyTreeNode() {\n if (onlyTreeNodeWarned) return;\n\n onlyTreeNodeWarned = true;\n warning(false, 'Tree only accept TreeNode as children.');\n}\n\nexport function arrDel(list, value) {\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list, value) {\n var clone = list.slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos) {\n return pos.split('-');\n}\n\nexport function getPosition(level, index) {\n return level + '-' + index;\n}\n\nexport function isTreeNode(node) {\n return getSlotOptions(node).isTreeNode;\n}\n\nexport function getNodeChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n return children.filter(isTreeNode);\n}\n\nexport function isCheckDisabled(node) {\n var _ref = getOptionProps(node) || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n\nexport function traverseTreeNodes(treeNodes, callback) {\n function processNode(node, index, parent) {\n var children = node ? node.componentOptions.children : treeNodes;\n var pos = node ? getPosition(parent.pos, index) : 0;\n\n // Filter children\n var childList = getNodeChildren(children);\n\n // Process node if is not root\n if (node) {\n var key = node.key;\n if (!key && (key === undefined || key === null)) {\n key = pos;\n }\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null\n };\n callback(data);\n }\n\n // Process children node\n childList.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, { node: node, pos: pos });\n });\n }\n\n processNode(null);\n}\n\n/**\n * Use `rc-util` `toArray` to get the children list which keeps the key.\n * And return single node if children is only one(This can avoid `key` missing check).\n */\nexport function mapChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var func = arguments[1];\n\n var list = children.map(func);\n if (list.length === 1) {\n return list[0];\n }\n return list;\n}\n\nexport function getDragNodesKeys(treeNodes, node) {\n var _getOptionProps = getOptionProps(node),\n eventKey = _getOptionProps.eventKey,\n pos = _getOptionProps.pos;\n\n var dragNodesKeys = [];\n\n traverseTreeNodes(treeNodes, function (_ref2) {\n var key = _ref2.key;\n\n dragNodesKeys.push(key);\n });\n dragNodesKeys.push(eventKey || pos);\n return dragNodesKeys;\n}\n\nexport function calcDropPosition(event, treeNode) {\n var clientY = event.clientY;\n\n var _treeNode$$refs$selec = treeNode.$refs.selectHandle.getBoundingClientRect(),\n top = _treeNode$$refs$selec.top,\n bottom = _treeNode$$refs$selec.bottom,\n height = _treeNode$$refs$selec.height;\n\n var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n }\n if (clientY >= bottom - des) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) {\n return undefined;\n }\n\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\n/**\n * Since React internal will convert key to string,\n * we need do this to avoid `checkStrictly` use number match\n */\n// function keyListToString (keyList) {\n// if (!keyList) return keyList\n// return keyList.map(key => String(key))\n// }\n\nvar internalProcessProps = function internalProcessProps() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return {\n props: omit(props, ['on', 'key', 'class', 'className', 'style']),\n on: props.on || {},\n 'class': props['class'] || props.className,\n style: props.style,\n key: props.key\n };\n};\nexport function convertDataToTree(h, treeData, processor) {\n if (!treeData) return [];\n\n var _ref3 = processor || {},\n _ref3$processProps = _ref3.processProps,\n processProps = _ref3$processProps === undefined ? internalProcessProps : _ref3$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref4) {\n var children = _ref4.children,\n props = _objectWithoutProperties(_ref4, ['children']);\n\n var childrenNodes = convertDataToTree(h, children, processor);\n return h(\n TreeNode,\n processProps(props),\n [childrenNodes]\n );\n });\n}\n\n// TODO: ========================= NEW LOGIC =========================\n/**\n * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select`\n * @param treeNodes\n * @param processTreeEntity User can customize the entity\n */\nexport function convertTreeToEntities(treeNodes) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref5.initWrapper,\n processEntity = _ref5.processEntity,\n onProcessFinished = _ref5.onProcessFinished;\n\n var posEntities = new Map();\n var keyEntities = new Map();\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseTreeNodes(treeNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos;\n\n var entity = { node: node, index: index, key: key, pos: pos };\n\n posEntities.set(pos, entity);\n keyEntities.set(key, entity);\n\n // Fill children\n entity.parent = posEntities.get(parentPos);\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n var keyProps = void 0;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if ((typeof keys === 'undefined' ? 'undefined' : _typeof(keys)) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n // keyProps.checkedKeys = keyListToString(keyProps.checkedKeys)\n // keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys)\n\n return keyProps;\n}\n\n/**\n * Conduct check state by the keyList. It will conduct up & from the provided key.\n * If the conduct path reach the disabled or already checked / unchecked node will stop conduct.\n * @param keyList list of keys\n * @param isCheck is check the node or not\n * @param keyEntities parsed by `convertTreeToEntities` function in Tree\n * @param checkStatus Can pass current checked status for process (usually for uncheck operation)\n * @returns {{checkedKeys: [], halfCheckedKeys: []}}\n */\nexport function conductCheck(keyList, isCheck, keyEntities) {\n var checkStatus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var checkedKeys = new Map();\n var halfCheckedKeys = new Map(); // Record the key has some child checked (include child half checked)\n\n (checkStatus.checkedKeys || []).forEach(function (key) {\n checkedKeys.set(key, true);\n });\n\n (checkStatus.halfCheckedKeys || []).forEach(function (key) {\n halfCheckedKeys.set(key, true);\n });\n\n // Conduct up\n function conductUp(key) {\n if (checkedKeys.get(key) === isCheck) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n // Check child node checked status\n var everyChildChecked = true;\n var someChildChecked = false; // Child checked or half checked\n\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (_ref6) {\n var childKey = _ref6.key;\n\n var childChecked = checkedKeys.get(childKey);\n var childHalfChecked = halfCheckedKeys.get(childKey);\n\n if (childChecked || childHalfChecked) someChildChecked = true;\n if (!childChecked) everyChildChecked = false;\n });\n\n // Update checked status\n if (isCheck) {\n checkedKeys.set(key, everyChildChecked);\n } else {\n checkedKeys.set(key, false);\n }\n halfCheckedKeys.set(key, someChildChecked);\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n // Conduct down\n function conductDown(key) {\n if (checkedKeys.get(key) === isCheck) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var children = entity.children,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n checkedKeys.set(key, isCheck);\n\n (children || []).forEach(function (child) {\n conductDown(child.key);\n });\n }\n\n function conduct(key) {\n var entity = keyEntities.get(key);\n\n if (!entity) {\n warning(false, '\\'' + key + '\\' does not exist in the tree.');\n return;\n }\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n checkedKeys.set(key, isCheck);\n\n if (isCheckDisabled(node)) return;\n\n // Conduct down\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (child) {\n conductDown(child.key);\n });\n\n // Conduct up\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conduct(key);\n });\n\n var checkedKeyList = [];\n var halfCheckedKeyList = [];\n\n // Fill checked list\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = checkedKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref7 = _step.value;\n\n var _ref8 = _slicedToArray(_ref7, 2);\n\n var key = _ref8[0];\n var value = _ref8[1];\n\n if (value) {\n checkedKeyList.push(key);\n }\n }\n\n // Fill half checked list\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = halfCheckedKeys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref9 = _step2.value;\n\n var _ref10 = _slicedToArray(_ref9, 2);\n\n var _key = _ref10[0];\n var _value = _ref10[1];\n\n if (!checkedKeys.get(_key) && _value) {\n halfCheckedKeyList.push(_key);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2['return']) {\n _iterator2['return']();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return {\n checkedKeys: checkedKeyList,\n halfCheckedKeys: halfCheckedKeyList\n };\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Map();\n\n function conductUp(key) {\n if (expandedKeys.get(key)) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n expandedKeys.set(key, true);\n\n var parent = entity.parent,\n node = entity.node;\n\n var props = getOptionProps(node);\n if (props && props.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n\n return [].concat(_toConsumableArray(expandedKeys.keys()));\n}\n\n/**\n * Returns only the data- and aria- key/value pairs\n * @param {object} props\n */\nexport function getDataAndAria(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport { getNodeChildren as _getNodeChildren, mapChildren, warnOnlyTreeNode } from './util';\nimport { initDefaultProps, filterEmpty, getComponentFromProp } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport getTransitionProps from '../../_util/getTransitionProps';\n\nfunction noop() {}\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\n\nvar defaultTitle = '---';\n\nvar TreeNode = {\n name: 'TreeNode',\n mixins: [BaseMixin],\n __ANT_TREE_NODE: true,\n props: initDefaultProps({\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // Pass by parent `cloneElement`\n prefixCls: PropTypes.string,\n // className: PropTypes.string,\n root: PropTypes.object,\n // onSelect: PropTypes.func,\n\n // By parent\n expanded: PropTypes.bool,\n selected: PropTypes.bool,\n checked: PropTypes.bool,\n loaded: PropTypes.bool,\n loading: PropTypes.bool,\n halfChecked: PropTypes.bool,\n title: PropTypes.any,\n pos: PropTypes.string,\n dragOver: PropTypes.bool,\n dragOverGapTop: PropTypes.bool,\n dragOverGapBottom: PropTypes.bool,\n\n // By user\n isLeaf: PropTypes.bool,\n checkable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n disableCheckbox: PropTypes.bool,\n icon: PropTypes.any,\n dataRef: PropTypes.object,\n switcherIcon: PropTypes.any,\n label: PropTypes.any,\n value: PropTypes.any\n }, {}),\n\n data: function data() {\n return {\n dragNodeHighlight: false\n };\n },\n\n inject: {\n vcTree: { 'default': function _default() {\n return {};\n } },\n vcTreeNode: { 'default': function _default() {\n return {};\n } }\n },\n provide: function provide() {\n return {\n vcTreeNode: this\n };\n },\n\n\n // Isomorphic needn't load data in server side\n mounted: function mounted() {\n var eventKey = this.eventKey,\n registerTreeNode = this.vcTree.registerTreeNode;\n\n this.syncLoadData(this.$props);\n registerTreeNode && registerTreeNode(eventKey, this);\n },\n updated: function updated() {\n this.syncLoadData(this.$props);\n },\n beforeDestroy: function beforeDestroy() {\n var eventKey = this.eventKey,\n registerTreeNode = this.vcTree.registerTreeNode;\n\n registerTreeNode && registerTreeNode(eventKey, null);\n },\n\n\n methods: {\n onSelectorClick: function onSelectorClick(e) {\n // Click trigger before select/check operation\n var onNodeClick = this.vcTree.onNodeClick;\n\n onNodeClick(e, this);\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n },\n onSelectorDoubleClick: function onSelectorDoubleClick(e) {\n var onNodeDoubleClick = this.vcTree.onNodeDoubleClick;\n\n onNodeDoubleClick(e, this);\n },\n onSelect: function onSelect(e) {\n if (this.isDisabled()) return;\n\n var onNodeSelect = this.vcTree.onNodeSelect;\n\n e.preventDefault();\n onNodeSelect(e, this);\n },\n onCheck: function onCheck(e) {\n if (this.isDisabled()) return;\n\n var disableCheckbox = this.disableCheckbox,\n checked = this.checked;\n var onNodeCheck = this.vcTree.onNodeCheck;\n\n\n if (!this.isCheckable() || disableCheckbox) return;\n\n e.preventDefault();\n var targetChecked = !checked;\n onNodeCheck(e, this, targetChecked);\n },\n onMouseEnter: function onMouseEnter(e) {\n var onNodeMouseEnter = this.vcTree.onNodeMouseEnter;\n\n onNodeMouseEnter(e, this);\n },\n onMouseLeave: function onMouseLeave(e) {\n var onNodeMouseLeave = this.vcTree.onNodeMouseLeave;\n\n onNodeMouseLeave(e, this);\n },\n onContextMenu: function onContextMenu(e) {\n var onNodeContextMenu = this.vcTree.onNodeContextMenu;\n\n onNodeContextMenu(e, this);\n },\n onDragStart: function onDragStart(e) {\n var onNodeDragStart = this.vcTree.onNodeDragStart;\n\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n },\n onDragEnter: function onDragEnter(e) {\n var onNodeDragEnter = this.vcTree.onNodeDragEnter;\n\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n },\n onDragOver: function onDragOver(e) {\n var onNodeDragOver = this.vcTree.onNodeDragOver;\n\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n },\n onDragLeave: function onDragLeave(e) {\n var onNodeDragLeave = this.vcTree.onNodeDragLeave;\n\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n },\n onDragEnd: function onDragEnd(e) {\n var onNodeDragEnd = this.vcTree.onNodeDragEnd;\n\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, this);\n },\n onDrop: function onDrop(e) {\n var onNodeDrop = this.vcTree.onNodeDrop;\n\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, this);\n },\n\n\n // Disabled item still can be switch\n onExpand: function onExpand(e) {\n var onNodeExpand = this.vcTree.onNodeExpand;\n\n onNodeExpand(e, this);\n },\n getNodeChildren: function getNodeChildren() {\n var children = this.$slots['default'];\n\n var originList = filterEmpty(children);\n var targetList = _getNodeChildren(originList);\n\n if (originList.length !== targetList.length) {\n warnOnlyTreeNode();\n }\n\n return targetList;\n },\n getNodeState: function getNodeState() {\n var expanded = this.expanded;\n\n\n if (this.isLeaf2()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n },\n isLeaf2: function isLeaf2() {\n var isLeaf = this.isLeaf,\n loaded = this.loaded;\n var loadData = this.vcTree.loadData;\n\n\n var hasChildren = this.getNodeChildren().length !== 0;\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n },\n isDisabled: function isDisabled() {\n var disabled = this.disabled;\n var treeDisabled = this.vcTree.disabled;\n\n // Follow the logic of Selectable\n\n if (disabled === false) {\n return false;\n }\n\n return !!(treeDisabled || disabled);\n },\n isCheckable: function isCheckable() {\n var checkable = this.$props.checkable;\n var treeCheckable = this.vcTree.checkable;\n\n // Return false if tree or treeNode is not checkable\n\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n },\n\n\n // Load data to avoid default expanded tree without data\n syncLoadData: function syncLoadData(props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _vcTree = this.vcTree,\n loadData = _vcTree.loadData,\n onNodeLoad = _vcTree.onNodeLoad;\n\n if (loading) return;\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf2()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n var hasChildren = this.getNodeChildren().length !== 0;\n if (!hasChildren && !loaded) {\n onNodeLoad(this);\n }\n }\n },\n isSelectable: function isSelectable() {\n var selectable = this.selectable;\n var treeSelectable = this.vcTree.selectable;\n\n // Ignore when selectable is undefined or null\n\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n },\n\n\n // Switcher\n renderSwitcher: function renderSwitcher() {\n var h = this.$createElement;\n var expanded = this.expanded;\n var prefixCls = this.vcTree.prefixCls;\n\n var switcherIcon = getComponentFromProp(this, 'switcherIcon', {}, false) || getComponentFromProp(this.vcTree, 'switcherIcon', {}, false);\n if (this.isLeaf2()) {\n return h(\n 'span',\n {\n key: 'switcher',\n 'class': classNames(prefixCls + '-switcher', prefixCls + '-switcher-noop')\n },\n [typeof switcherIcon === 'function' ? switcherIcon(_extends({}, this.$props, this.$props.dataRef, { isLeaf: true })) : switcherIcon]\n );\n }\n\n var switcherCls = classNames(prefixCls + '-switcher', prefixCls + '-switcher_' + (expanded ? ICON_OPEN : ICON_CLOSE));\n return h(\n 'span',\n { key: 'switcher', on: {\n 'click': this.onExpand\n },\n 'class': switcherCls },\n [typeof switcherIcon === 'function' ? switcherIcon(_extends({}, this.$props, this.$props.dataRef, { isLeaf: false })) : switcherIcon]\n );\n },\n\n\n // Checkbox\n renderCheckbox: function renderCheckbox() {\n var h = this.$createElement;\n var checked = this.checked,\n halfChecked = this.halfChecked,\n disableCheckbox = this.disableCheckbox;\n var prefixCls = this.vcTree.prefixCls;\n\n var disabled = this.isDisabled();\n var checkable = this.isCheckable();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return h(\n 'span',\n {\n key: 'checkbox',\n 'class': classNames(prefixCls + '-checkbox', checked && prefixCls + '-checkbox-checked', !checked && halfChecked && prefixCls + '-checkbox-indeterminate', (disabled || disableCheckbox) && prefixCls + '-checkbox-disabled'),\n on: {\n 'click': this.onCheck\n }\n },\n [$custom]\n );\n },\n renderIcon: function renderIcon() {\n var h = this.$createElement;\n var loading = this.loading;\n var prefixCls = this.vcTree.prefixCls;\n\n\n return h('span', {\n key: 'icon',\n 'class': classNames(prefixCls + '-iconEle', prefixCls + '-icon__' + (this.getNodeState() || 'docu'), loading && prefixCls + '-icon_loading')\n });\n },\n\n\n // Icon + Title\n renderSelector: function renderSelector(h) {\n var selected = this.selected,\n loading = this.loading,\n dragNodeHighlight = this.dragNodeHighlight;\n\n var icon = getComponentFromProp(this, 'icon', {}, false);\n var _vcTree2 = this.vcTree,\n prefixCls = _vcTree2.prefixCls,\n showIcon = _vcTree2.showIcon,\n treeIcon = _vcTree2.icon,\n draggable = _vcTree2.draggable,\n loadData = _vcTree2.loadData;\n\n var disabled = this.isDisabled();\n var title = getComponentFromProp(this, 'title', {}, false);\n var wrapClass = prefixCls + '-node-content-wrapper';\n\n // Icon - Still show loading icon when loading without showIcon\n var $icon = void 0;\n\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? h(\n 'span',\n { 'class': classNames(prefixCls + '-iconEle', prefixCls + '-icon__customize') },\n [typeof currentIcon === 'function' ? currentIcon(_extends({}, this.$props, this.$props.dataRef), h) : currentIcon]\n ) : this.renderIcon();\n } else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n\n var currentTitle = title;\n var $title = currentTitle ? h(\n 'span',\n { 'class': prefixCls + '-title' },\n [typeof currentTitle === 'function' ? currentTitle(_extends({}, this.$props, this.$props.dataRef), h) : currentTitle]\n ) : h(\n 'span',\n { 'class': prefixCls + '-title' },\n [defaultTitle]\n );\n\n return h(\n 'span',\n {\n key: 'selector',\n ref: 'selectHandle',\n attrs: { title: typeof title === 'string' ? title : '',\n\n draggable: !disabled && draggable || undefined,\n 'aria-grabbed': !disabled && draggable || undefined\n },\n 'class': classNames('' + wrapClass, wrapClass + '-' + (this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && prefixCls + '-node-selected', !disabled && draggable && 'draggable'), on: {\n 'mouseenter': this.onMouseEnter,\n 'mouseleave': this.onMouseLeave,\n 'contextmenu': this.onContextMenu,\n 'click': this.onSelectorClick,\n 'dblclick': this.onSelectorDoubleClick,\n 'dragstart': draggable ? this.onDragStart : noop\n }\n },\n [$icon, $title]\n );\n },\n\n\n // Children list wrapped with `Animation`\n renderChildren: function renderChildren() {\n var h = this.$createElement;\n var expanded = this.expanded,\n pos = this.pos;\n var _vcTree3 = this.vcTree,\n prefixCls = _vcTree3.prefixCls,\n openTransitionName = _vcTree3.openTransitionName,\n openAnimation = _vcTree3.openAnimation,\n renderTreeNode = _vcTree3.renderTreeNode;\n\n\n var animProps = {};\n if (openTransitionName) {\n animProps = getTransitionProps(openTransitionName);\n } else if ((typeof openAnimation === 'undefined' ? 'undefined' : _typeof(openAnimation)) === 'object') {\n animProps = _extends({}, openAnimation);\n animProps.props = _extends({ css: false }, animProps.props);\n }\n\n // Children TreeNode\n var nodeList = this.getNodeChildren();\n\n if (nodeList.length === 0) {\n return null;\n }\n\n var $children = void 0;\n if (expanded) {\n $children = h(\n 'ul',\n {\n 'class': classNames(prefixCls + '-child-tree', expanded && prefixCls + '-child-tree-open'),\n attrs: { 'data-expanded': expanded,\n role: 'group'\n }\n },\n [mapChildren(nodeList, function (node, index) {\n return renderTreeNode(node, index, pos);\n })]\n );\n }\n\n return h(\n 'transition',\n animProps,\n [$children]\n );\n }\n },\n\n render: function render(h) {\n var _ref;\n\n var _$props = this.$props,\n dragOver = _$props.dragOver,\n dragOverGapTop = _$props.dragOverGapTop,\n dragOverGapBottom = _$props.dragOverGapBottom,\n isLeaf = _$props.isLeaf,\n expanded = _$props.expanded,\n selected = _$props.selected,\n checked = _$props.checked,\n halfChecked = _$props.halfChecked,\n loading = _$props.loading;\n var _vcTree4 = this.vcTree,\n prefixCls = _vcTree4.prefixCls,\n filterTreeNode = _vcTree4.filterTreeNode,\n draggable = _vcTree4.draggable;\n\n var disabled = this.isDisabled();\n return h(\n 'li',\n {\n 'class': (_ref = {}, _defineProperty(_ref, prefixCls + '-treenode-disabled', disabled), _defineProperty(_ref, prefixCls + '-treenode-switcher-' + (expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_ref, prefixCls + '-treenode-checkbox-checked', checked), _defineProperty(_ref, prefixCls + '-treenode-checkbox-indeterminate', halfChecked), _defineProperty(_ref, prefixCls + '-treenode-selected', selected), _defineProperty(_ref, prefixCls + '-treenode-loading', loading), _defineProperty(_ref, 'drag-over', !disabled && dragOver), _defineProperty(_ref, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_ref, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_ref, 'filter-node', filterTreeNode && filterTreeNode(this)), _ref),\n attrs: { role: 'treeitem'\n },\n on: {\n 'dragenter': draggable ? this.onDragEnter : noop,\n 'dragover': draggable ? this.onDragOver : noop,\n 'dragleave': draggable ? this.onDragLeave : noop,\n 'drop': draggable ? this.onDrop : noop,\n 'dragend': draggable ? this.onDragEnd : noop\n }\n },\n [this.renderSwitcher(), this.renderCheckbox(), this.renderSelector(h), this.renderChildren()]\n );\n }\n};\n\nTreeNode.isTreeNode = 1;\n\nexport default TreeNode;","var availablePrefixs = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill() {\n var lastTime = 0;\n return function (callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n}\n\nexport default function getRequestAnimationFrame() {\n if (typeof window === 'undefined') {\n return function () {};\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n var prefix = availablePrefixs.filter(function (key) {\n return key + 'RequestAnimationFrame' in window;\n })[0];\n\n return prefix ? window[prefix + 'RequestAnimationFrame'] : requestAnimationFramePolyfill();\n}\n\nexport function cancelRequestAnimationFrame(id) {\n if (typeof window === 'undefined') {\n return null;\n }\n if (window.cancelAnimationFrame) {\n return window.cancelAnimationFrame(id);\n }\n var prefix = availablePrefixs.filter(function (key) {\n return key + 'CancelAnimationFrame' in window || key + 'CancelRequestAnimationFrame' in window;\n })[0];\n\n return prefix ? (window[prefix + 'CancelAnimationFrame'] || window[prefix + 'CancelRequestAnimationFrame']).call(this, id) : clearTimeout(id);\n}","import getRequestAnimationFrame, { cancelRequestAnimationFrame as caf } from './getRequestAnimationFrame';\nvar raf = getRequestAnimationFrame();\n\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return caf(frame.id);\n};\n\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start = Date.now();\n function timeout() {\n if (Date.now() - start >= delay) {\n callback.call();\n } else {\n frame.id = raf(timeout);\n }\n }\n\n var frame = {\n id: raf(timeout)\n };\n\n return frame;\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport PropTypes from '../_util/vue-types';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport { getListeners } from '../_util/props-util';\n\nvar stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\n\nexport var ColSize = PropTypes.shape({\n span: stringOrNumber,\n order: stringOrNumber,\n offset: stringOrNumber,\n push: stringOrNumber,\n pull: stringOrNumber\n}).loose;\n\nvar objectOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number, ColSize]);\n\nexport var ColProps = {\n span: stringOrNumber,\n order: stringOrNumber,\n offset: stringOrNumber,\n push: stringOrNumber,\n pull: stringOrNumber,\n xs: objectOrNumber,\n sm: objectOrNumber,\n md: objectOrNumber,\n lg: objectOrNumber,\n xl: objectOrNumber,\n xxl: objectOrNumber,\n prefixCls: PropTypes.string,\n flex: stringOrNumber\n};\n\nexport default {\n name: 'ACol',\n props: ColProps,\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } },\n rowContext: {\n 'default': function _default() {\n return null;\n }\n }\n },\n methods: {\n parseFlex: function parseFlex(flex) {\n if (typeof flex === 'number') {\n return flex + ' ' + flex + ' auto';\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return '0 0 ' + flex;\n }\n return flex;\n }\n },\n render: function render() {\n var _this = this,\n _extends3;\n\n var h = arguments[0];\n var span = this.span,\n order = this.order,\n offset = this.offset,\n push = this.push,\n pull = this.pull,\n flex = this.flex,\n customizePrefixCls = this.prefixCls,\n $slots = this.$slots,\n rowContext = this.rowContext;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('col', customizePrefixCls);\n\n var sizeClassObj = {};\n ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].forEach(function (size) {\n var _extends2;\n\n var sizeProps = {};\n var propSize = _this[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if ((typeof propSize === 'undefined' ? 'undefined' : _typeof(propSize)) === 'object') {\n sizeProps = propSize || {};\n }\n\n sizeClassObj = _extends({}, sizeClassObj, (_extends2 = {}, _defineProperty(_extends2, prefixCls + '-' + size + '-' + sizeProps.span, sizeProps.span !== undefined), _defineProperty(_extends2, prefixCls + '-' + size + '-order-' + sizeProps.order, sizeProps.order || sizeProps.order === 0), _defineProperty(_extends2, prefixCls + '-' + size + '-offset-' + sizeProps.offset, sizeProps.offset || sizeProps.offset === 0), _defineProperty(_extends2, prefixCls + '-' + size + '-push-' + sizeProps.push, sizeProps.push || sizeProps.push === 0), _defineProperty(_extends2, prefixCls + '-' + size + '-pull-' + sizeProps.pull, sizeProps.pull || sizeProps.pull === 0), _extends2));\n });\n var classes = _extends((_extends3 = {}, _defineProperty(_extends3, '' + prefixCls, true), _defineProperty(_extends3, prefixCls + '-' + span, span !== undefined), _defineProperty(_extends3, prefixCls + '-order-' + order, order), _defineProperty(_extends3, prefixCls + '-offset-' + offset, offset), _defineProperty(_extends3, prefixCls + '-push-' + push, push), _defineProperty(_extends3, prefixCls + '-pull-' + pull, pull), _extends3), sizeClassObj);\n var divProps = {\n on: getListeners(this),\n 'class': classes,\n style: {}\n };\n if (rowContext) {\n var gutter = rowContext.getGutter();\n if (gutter) {\n divProps.style = _extends({}, gutter[0] > 0 ? {\n paddingLeft: gutter[0] / 2 + 'px',\n paddingRight: gutter[0] / 2 + 'px'\n } : {}, gutter[1] > 0 ? {\n paddingTop: gutter[1] / 2 + 'px',\n paddingBottom: gutter[1] / 2 + 'px'\n } : {});\n }\n }\n\n if (flex) {\n divProps.style.flex = this.parseFlex(flex);\n }\n\n return h(\n 'div',\n divProps,\n [$slots['default']]\n );\n }\n};","import PropTypes from '../vue-types';\n\nexport var storeShape = PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n setState: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n});","import { storeShape } from './PropTypes';\nexport default {\n name: 'StoreProvider',\n props: {\n store: storeShape.isRequired\n },\n provide: function provide() {\n return {\n storeContext: this.$props\n };\n },\n render: function render() {\n return this.$slots['default'][0];\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport { Provider, create } from '../_util/store';\nimport { default as SubPopupMenu, getActiveKey } from './SubPopupMenu';\nimport BaseMixin from '../_util/BaseMixin';\nimport hasProp, { getOptionProps, getComponentFromProp, filterEmpty, getListeners } from '../_util/props-util';\nimport commonPropsType from './commonPropsType';\n\nvar Menu = {\n name: 'Menu',\n props: _extends({}, commonPropsType, {\n selectable: PropTypes.bool.def(true)\n }),\n mixins: [BaseMixin],\n\n data: function data() {\n var props = getOptionProps(this);\n var selectedKeys = props.defaultSelectedKeys;\n var openKeys = props.defaultOpenKeys;\n if ('selectedKeys' in props) {\n selectedKeys = props.selectedKeys || [];\n }\n if ('openKeys' in props) {\n openKeys = props.openKeys || [];\n }\n\n this.store = create({\n selectedKeys: selectedKeys,\n openKeys: openKeys,\n activeKey: {\n '0-menu-': getActiveKey(_extends({}, props, { children: this.$slots['default'] || [] }), props.activeKey)\n }\n });\n\n // this.isRootMenu = true // 声明在props上\n return {};\n },\n mounted: function mounted() {\n this.updateMiniStore();\n },\n updated: function updated() {\n this.updateMiniStore();\n },\n\n methods: {\n onSelect: function onSelect(selectInfo) {\n var props = this.$props;\n if (props.selectable) {\n // root menu\n var selectedKeys = this.store.getState().selectedKeys;\n var selectedKey = selectInfo.key;\n if (props.multiple) {\n selectedKeys = selectedKeys.concat([selectedKey]);\n } else {\n selectedKeys = [selectedKey];\n }\n if (!hasProp(this, 'selectedKeys')) {\n this.store.setState({\n selectedKeys: selectedKeys\n });\n }\n this.__emit('select', _extends({}, selectInfo, {\n selectedKeys: selectedKeys\n }));\n }\n },\n onClick: function onClick(e) {\n this.__emit('click', e);\n },\n\n // onKeyDown needs to be exposed as a instance method\n // e.g., in rc-select, we need to navigate menu item while\n // current active item is rc-select input box rather than the menu itself\n onKeyDown: function onKeyDown(e, callback) {\n this.$refs.innerMenu.getWrappedInstance().onKeyDown(e, callback);\n },\n onOpenChange: function onOpenChange(event) {\n var openKeys = this.store.getState().openKeys.concat();\n var changed = false;\n var processSingle = function processSingle(e) {\n var oneChanged = false;\n if (e.open) {\n oneChanged = openKeys.indexOf(e.key) === -1;\n if (oneChanged) {\n openKeys.push(e.key);\n }\n } else {\n var index = openKeys.indexOf(e.key);\n oneChanged = index !== -1;\n if (oneChanged) {\n openKeys.splice(index, 1);\n }\n }\n changed = changed || oneChanged;\n };\n if (Array.isArray(event)) {\n // batch change call\n event.forEach(processSingle);\n } else {\n processSingle(event);\n }\n if (changed) {\n if (!hasProp(this, 'openKeys')) {\n this.store.setState({ openKeys: openKeys });\n }\n this.__emit('openChange', openKeys);\n }\n },\n onDeselect: function onDeselect(selectInfo) {\n var props = this.$props;\n if (props.selectable) {\n var selectedKeys = this.store.getState().selectedKeys.concat();\n var selectedKey = selectInfo.key;\n var index = selectedKeys.indexOf(selectedKey);\n if (index !== -1) {\n selectedKeys.splice(index, 1);\n }\n if (!hasProp(this, 'selectedKeys')) {\n this.store.setState({\n selectedKeys: selectedKeys\n });\n }\n this.__emit('deselect', _extends({}, selectInfo, {\n selectedKeys: selectedKeys\n }));\n }\n },\n getOpenTransitionName: function getOpenTransitionName() {\n var props = this.$props;\n var transitionName = props.openTransitionName;\n var animationName = props.openAnimation;\n if (!transitionName && typeof animationName === 'string') {\n transitionName = props.prefixCls + '-open-' + animationName;\n }\n return transitionName;\n },\n updateMiniStore: function updateMiniStore() {\n var props = getOptionProps(this);\n if ('selectedKeys' in props) {\n this.store.setState({\n selectedKeys: props.selectedKeys || []\n });\n }\n if ('openKeys' in props) {\n this.store.setState({\n openKeys: props.openKeys || []\n });\n }\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var subPopupMenuProps = {\n props: _extends({}, props, {\n itemIcon: getComponentFromProp(this, 'itemIcon', props),\n expandIcon: getComponentFromProp(this, 'expandIcon', props),\n overflowedIndicator: getComponentFromProp(this, 'overflowedIndicator', props) || h('span', ['\\xB7\\xB7\\xB7']),\n openTransitionName: this.getOpenTransitionName(),\n parentMenu: this,\n children: filterEmpty(this.$slots['default'] || [])\n }),\n 'class': props.prefixCls + '-root',\n on: _extends({}, getListeners(this), {\n click: this.onClick,\n openChange: this.onOpenChange,\n deselect: this.onDeselect,\n select: this.onSelect\n }),\n ref: 'innerMenu'\n };\n return h(\n Provider,\n {\n attrs: { store: this.store }\n },\n [h(SubPopupMenu, subPopupMenuProps)]\n );\n }\n};\nexport default Menu;","import _extends from \"babel-runtime/helpers/extends\";\nexport default function create(initialState) {\n var state = initialState;\n var listeners = [];\n\n function setState(partial) {\n state = _extends({}, state, partial);\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n }\n\n function getState() {\n return state;\n }\n\n function subscribe(listener) {\n listeners.push(listener);\n\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n }\n\n return {\n setState: setState,\n getState: getState,\n subscribe: subscribe\n };\n}","// 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 _typeof from 'babel-runtime/helpers/typeof';\nimport _slicedToArray from 'babel-runtime/helpers/slicedToArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport isPlainObject from 'lodash/isPlainObject';\nimport classNames from 'classnames';\nfunction getType(fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : '';\n}\n\nvar camelizeRE = /-(\\w)/g;\nvar camelize = function camelize(str) {\n return str.replace(camelizeRE, function (_, c) {\n return c ? c.toUpperCase() : '';\n });\n};\nvar parseStyleText = function parseStyleText() {\n var cssText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var camel = arguments[1];\n\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n if (tmp.length > 1) {\n var k = camel ? camelize(tmp[0].trim()) : tmp[0].trim();\n res[k] = tmp[1].trim();\n }\n }\n });\n return res;\n};\n\nvar hasProp = function hasProp(instance, prop) {\n var $options = instance.$options || {};\n var propsData = $options.propsData || {};\n return prop in propsData;\n};\nvar slotHasProp = function slotHasProp(slot, prop) {\n var $options = slot.componentOptions || {};\n var propsData = $options.propsData || {};\n return prop in propsData;\n};\nvar filterProps = function filterProps(props) {\n var propsData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var res = {};\n Object.keys(props).forEach(function (k) {\n if (k in propsData || props[k] !== undefined) {\n res[k] = props[k];\n }\n });\n return res;\n};\n\nvar getScopedSlots = function getScopedSlots(ele) {\n return ele.data && ele.data.scopedSlots || {};\n};\n\nvar getSlots = function getSlots(ele) {\n var componentOptions = ele.componentOptions || {};\n if (ele.$vnode) {\n componentOptions = ele.$vnode.componentOptions || {};\n }\n var children = ele.children || componentOptions.children || [];\n var slots = {};\n children.forEach(function (child) {\n if (!isEmptyElement(child)) {\n var name = child.data && child.data.slot || 'default';\n slots[name] = slots[name] || [];\n slots[name].push(child);\n }\n });\n return _extends({}, slots, getScopedSlots(ele));\n};\nvar getSlot = function getSlot(self) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return self.$scopedSlots && self.$scopedSlots[name] && self.$scopedSlots[name](options) || self.$slots[name] || [];\n};\n\nvar getAllChildren = function getAllChildren(ele) {\n var componentOptions = ele.componentOptions || {};\n if (ele.$vnode) {\n componentOptions = ele.$vnode.componentOptions || {};\n }\n return ele.children || componentOptions.children || [];\n};\nvar getSlotOptions = function getSlotOptions(ele) {\n if (ele.fnOptions) {\n // 函数式组件\n return ele.fnOptions;\n }\n var componentOptions = ele.componentOptions;\n if (ele.$vnode) {\n componentOptions = ele.$vnode.componentOptions;\n }\n return componentOptions ? componentOptions.Ctor.options || {} : {};\n};\nvar getOptionProps = function getOptionProps(instance) {\n if (instance.componentOptions) {\n var componentOptions = instance.componentOptions;\n var _componentOptions$pro = componentOptions.propsData,\n propsData = _componentOptions$pro === undefined ? {} : _componentOptions$pro,\n _componentOptions$Cto = componentOptions.Ctor,\n Ctor = _componentOptions$Cto === undefined ? {} : _componentOptions$Cto;\n\n var props = (Ctor.options || {}).props || {};\n var res = {};\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = Object.entries(props)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref = _step.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var k = _ref2[0];\n var v = _ref2[1];\n\n var def = v['default'];\n if (def !== undefined) {\n res[k] = typeof def === 'function' && getType(v.type) !== 'Function' ? def.call(instance) : def;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return _extends({}, res, propsData);\n }\n var _instance$$options = instance.$options,\n $options = _instance$$options === undefined ? {} : _instance$$options,\n _instance$$props = instance.$props,\n $props = _instance$$props === undefined ? {} : _instance$$props;\n\n return filterProps($props, $options.propsData);\n};\n\nvar getComponentFromProp = function getComponentFromProp(instance, prop) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : instance;\n var execute = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (instance.$createElement) {\n var h = instance.$createElement;\n var temp = instance[prop];\n if (temp !== undefined) {\n return typeof temp === 'function' && execute ? temp(h, options) : temp;\n }\n return instance.$scopedSlots[prop] && execute && instance.$scopedSlots[prop](options) || instance.$scopedSlots[prop] || instance.$slots[prop] || undefined;\n } else {\n var _h = instance.context.$createElement;\n var _temp = getPropsData(instance)[prop];\n if (_temp !== undefined) {\n return typeof _temp === 'function' && execute ? _temp(_h, options) : _temp;\n }\n var slotScope = getScopedSlots(instance)[prop];\n if (slotScope !== undefined) {\n return typeof slotScope === 'function' && execute ? slotScope(_h, options) : slotScope;\n }\n var slotsProp = [];\n var componentOptions = instance.componentOptions || {};\n (componentOptions.children || []).forEach(function (child) {\n if (child.data && child.data.slot === prop) {\n if (child.data.attrs) {\n delete child.data.attrs.slot;\n }\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\nvar getAllProps = function getAllProps(ele) {\n var data = ele.data || {};\n var componentOptions = ele.componentOptions || {};\n if (ele.$vnode) {\n data = ele.$vnode.data || {};\n componentOptions = ele.$vnode.componentOptions || {};\n }\n return _extends({}, data.props, data.attrs, componentOptions.propsData);\n};\n\nvar getPropsData = function getPropsData(ele) {\n var componentOptions = ele.componentOptions;\n if (ele.$vnode) {\n componentOptions = ele.$vnode.componentOptions;\n }\n return componentOptions ? componentOptions.propsData || {} : {};\n};\nvar getValueByProp = function getValueByProp(ele, prop) {\n return getPropsData(ele)[prop];\n};\n\nvar getAttrs = function getAttrs(ele) {\n var data = ele.data;\n if (ele.$vnode) {\n data = ele.$vnode.data;\n }\n return data ? data.attrs || {} : {};\n};\n\nvar getKey = function getKey(ele) {\n var key = ele.key;\n if (ele.$vnode) {\n key = ele.$vnode.key;\n }\n return key;\n};\n\nexport function getEvents(child) {\n var events = {};\n if (child.componentOptions && child.componentOptions.listeners) {\n events = child.componentOptions.listeners;\n } else if (child.data && child.data.on) {\n events = child.data.on;\n }\n return _extends({}, events);\n}\n\n// 获取 xxx.native 或者 原生标签 事件\nexport function getDataEvents(child) {\n var events = {};\n if (child.data && child.data.on) {\n events = child.data.on;\n }\n return _extends({}, events);\n}\n\n// use getListeners instead this.$listeners\n// https://github.com/vueComponent/ant-design-vue/issues/1705\nexport function getListeners(context) {\n return (context.$vnode ? context.$vnode.componentOptions.listeners : context.$listeners) || {};\n}\nexport function getClass(ele) {\n var data = {};\n if (ele.data) {\n data = ele.data;\n } else if (ele.$vnode && ele.$vnode.data) {\n data = ele.$vnode.data;\n }\n var tempCls = data['class'] || {};\n var staticClass = data.staticClass;\n var cls = {};\n staticClass && staticClass.split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n if (typeof tempCls === 'string') {\n tempCls.split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n } else if (Array.isArray(tempCls)) {\n classNames(tempCls).split(' ').forEach(function (c) {\n cls[c.trim()] = true;\n });\n } else {\n cls = _extends({}, cls, tempCls);\n }\n return cls;\n}\nexport function getStyle(ele, camel) {\n var data = {};\n if (ele.data) {\n data = ele.data;\n } else if (ele.$vnode && ele.$vnode.data) {\n data = ele.$vnode.data;\n }\n var style = data.style || data.staticStyle;\n if (typeof style === 'string') {\n style = parseStyleText(style, camel);\n } else if (camel && style) {\n // 驼峰化\n var res = {};\n Object.keys(style).forEach(function (k) {\n return res[camelize(k)] = style[k];\n });\n return res;\n }\n return style;\n}\n\nexport function getComponentName(opts) {\n return opts && (opts.Ctor.options.name || opts.tag);\n}\n\nexport function isEmptyElement(c) {\n return !(c.tag || c.text && c.text.trim() !== '');\n}\n\nexport function isStringElement(c) {\n return !c.tag;\n}\n\nexport function filterEmpty() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n return children.filter(function (c) {\n return !isEmptyElement(c);\n });\n}\nvar initDefaultProps = function initDefaultProps(propTypes, defaultProps) {\n Object.keys(defaultProps).forEach(function (k) {\n if (propTypes[k]) {\n propTypes[k].def && (propTypes[k] = propTypes[k].def(defaultProps[k]));\n } else {\n throw new Error('not have ' + k + ' prop');\n }\n });\n return propTypes;\n};\n\nexport function mergeProps() {\n var args = [].slice.call(arguments, 0);\n var props = {};\n args.forEach(function () {\n var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.entries(p)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref3 = _step2.value;\n\n var _ref4 = _slicedToArray(_ref3, 2);\n\n var k = _ref4[0];\n var v = _ref4[1];\n\n props[k] = props[k] || {};\n if (isPlainObject(v)) {\n _extends(props[k], v);\n } else {\n props[k] = v;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2['return']) {\n _iterator2['return']();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n });\n return props;\n}\n\nfunction isValidElement(element) {\n return element && (typeof element === 'undefined' ? 'undefined' : _typeof(element)) === 'object' && 'componentOptions' in element && 'context' in element && element.tag !== undefined; // remove text node\n}\n\nexport { hasProp, filterProps, getOptionProps, getComponentFromProp, getSlotOptions, slotHasProp, getPropsData, getKey, getAttrs, getValueByProp, parseStyleText, initDefaultProps, isValidElement, camelize, getSlots, getSlot, getAllProps, getAllChildren };\nexport default hasProp;","export function antDecorator(Vue) {\n return Vue.directive('decorator', {});\n}\n\nexport default {\n // just for tag\n install: function install(Vue) {\n antDecorator(Vue);\n }\n};","export function antPortal(Vue) {\n return Vue.directive('ant-portal', {\n inserted: function inserted(el, binding) {\n var value = binding.value;\n\n var parentNode = typeof value === 'function' ? value(el) : value;\n if (parentNode !== el.parentNode) {\n parentNode.appendChild(el);\n }\n },\n componentUpdated: function componentUpdated(el, binding) {\n var value = binding.value;\n\n var parentNode = typeof value === 'function' ? value(el) : value;\n if (parentNode !== el.parentNode) {\n parentNode.appendChild(el);\n }\n }\n });\n}\n\nexport default {\n install: function install(Vue) {\n antPortal(Vue);\n }\n};","import ref from 'vue-ref';\nimport { antInput } from './antInputDirective';\nimport { antDecorator } from './FormDecoratorDirective';\nimport { antPortal } from './portalDirective';\n\nexport default {\n install: function install(Vue) {\n Vue.use(ref, { name: 'ant-ref' });\n antInput(Vue);\n antDecorator(Vue);\n antPortal(Vue);\n }\n};","import antDirective from '../_util/antDirective';\nvar base = {};\nvar install = function install(Vue) {\n base.Vue = Vue;\n Vue.use(antDirective);\n};\nbase.install = install;\n\nexport default base;","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport defaultLocaleData from './default';\n\nexport default {\n name: 'LocaleReceiver',\n props: {\n componentName: PropTypes.string.def('global'),\n defaultLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n children: PropTypes.func\n },\n inject: {\n localeData: { 'default': function _default() {\n return {};\n } }\n },\n methods: {\n getLocale: function getLocale() {\n var componentName = this.componentName,\n defaultLocale = this.defaultLocale;\n\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var antLocale = this.localeData.antLocale;\n\n\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends({}, typeof locale === 'function' ? locale() : locale, localeFromContext || {});\n },\n getLocaleCode: function getLocaleCode() {\n var antLocale = this.localeData.antLocale;\n\n var localeCode = antLocale && antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }\n },\n render: function render() {\n var $scopedSlots = this.$scopedSlots;\n\n var children = this.children || $scopedSlots['default'];\n var antLocale = this.localeData.antLocale;\n\n return children(this.getLocale(), this.getLocaleCode(), antLocale);\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport shallowEqual from 'shallowequal';\nimport omit from 'omit.js';\nimport { getOptionProps, getListeners } from '../props-util';\nimport PropTypes from '../vue-types';\nimport proxyComponent from '../proxyComponent';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.name || 'Component';\n}\n\nvar defaultMapStateToProps = function defaultMapStateToProps() {\n return {};\n};\nexport default function connect(mapStateToProps) {\n var shouldSubscribe = !!mapStateToProps;\n var finalMapStateToProps = mapStateToProps || defaultMapStateToProps;\n return function wrapWithConnect(WrappedComponent) {\n var tempProps = omit(WrappedComponent.props || {}, ['store']);\n var props = {\n __propsSymbol__: PropTypes.any\n };\n Object.keys(tempProps).forEach(function (k) {\n props[k] = _extends({}, tempProps[k], { required: false });\n });\n var Connect = {\n name: 'Connect_' + getDisplayName(WrappedComponent),\n props: props,\n inject: {\n storeContext: { 'default': function _default() {\n return {};\n } }\n },\n data: function data() {\n this.store = this.storeContext.store;\n this.preProps = omit(getOptionProps(this), ['__propsSymbol__']);\n return {\n subscribed: finalMapStateToProps(this.store.getState(), this.$props)\n };\n },\n\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n if (mapStateToProps && mapStateToProps.length === 2) {\n this.subscribed = finalMapStateToProps(this.store.getState(), this.$props);\n }\n }\n },\n mounted: function mounted() {\n this.trySubscribe();\n },\n beforeDestroy: function beforeDestroy() {\n this.tryUnsubscribe();\n },\n\n methods: {\n handleChange: function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n var props = omit(getOptionProps(this), ['__propsSymbol__']);\n var nextSubscribed = finalMapStateToProps(this.store.getState(), props);\n if (!shallowEqual(this.preProps, props) || !shallowEqual(this.subscribed, nextSubscribed)) {\n this.subscribed = nextSubscribed;\n }\n },\n trySubscribe: function trySubscribe() {\n if (shouldSubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange);\n this.handleChange();\n }\n },\n tryUnsubscribe: function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n },\n getWrappedInstance: function getWrappedInstance() {\n return this.$refs.wrappedInstance;\n }\n },\n render: function render() {\n var h = arguments[0];\n var _$slots = this.$slots,\n $slots = _$slots === undefined ? {} : _$slots,\n $scopedSlots = this.$scopedSlots,\n subscribed = this.subscribed,\n store = this.store;\n\n var props = getOptionProps(this);\n this.preProps = _extends({}, omit(props, ['__propsSymbol__']));\n var wrapProps = {\n props: _extends({}, props, subscribed, {\n store: store\n }),\n on: getListeners(this),\n scopedSlots: $scopedSlots\n };\n return h(\n WrappedComponent,\n _mergeJSXProps([wrapProps, { ref: 'wrappedInstance' }]),\n [Object.keys($slots).map(function (name) {\n return h(\n 'template',\n { slot: name },\n [$slots[name]]\n );\n })]\n );\n }\n };\n return proxyComponent(Connect);\n };\n}","import warning from '../_util/warning';\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\n\nvar fillTester = /-fill$/;\nvar outlineTester = /-o$/;\nvar twoToneTester = /-twotone$/;\n\nexport function getThemeFromTypeName(type) {\n var result = null;\n if (fillTester.test(type)) {\n result = 'filled';\n } else if (outlineTester.test(type)) {\n result = 'outlined';\n } else if (twoToneTester.test(type)) {\n result = 'twoTone';\n }\n return result;\n}\n\nexport function removeTypeTheme(type) {\n return type.replace(fillTester, '').replace(outlineTester, '').replace(twoToneTester, '');\n}\n\nexport function withThemeSuffix(type, theme) {\n var result = type;\n if (theme === 'filled') {\n result += '-fill';\n } else if (theme === 'outlined') {\n result += '-o';\n } else if (theme === 'twoTone') {\n result += '-twotone';\n } else {\n warning(false, 'Icon', 'This icon \\'' + type + '\\' has unknown theme \\'' + theme + '\\'');\n }\n return result;\n}\n\n// For alias or compatibility\nexport function alias(type) {\n var newType = type;\n switch (type) {\n case 'cross':\n newType = 'close';\n break;\n // https://github.com/ant-design/ant-design/issues/13007\n case 'interation':\n newType = 'interaction';\n break;\n // https://github.com/ant-design/ant-design/issues/16810\n case 'canlendar':\n newType = 'calendar';\n break;\n // https://github.com/ant-design/ant-design/issues/17448\n case 'colum-height':\n newType = 'column-height';\n break;\n default:\n }\n warning(newType === type, 'Icon', 'Icon \\'' + type + '\\' was a typo and is now deprecated, please use \\'' + newType + '\\' instead.');\n return newType;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport Notification from '../vc-notification';\nimport Icon from '../icon';\n\nvar defaultDuration = 3;\nvar defaultTop = void 0;\nvar messageInstance = void 0;\nvar key = 1;\nvar prefixCls = 'ant-message';\nvar transitionName = 'move-up';\nvar getContainer = function getContainer() {\n return document.body;\n};\nvar maxCount = void 0;\n\nfunction getMessageInstance(callback) {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n Notification.newInstance({\n prefixCls: prefixCls,\n transitionName: transitionName,\n style: { top: defaultTop }, // 覆盖原来的样式\n getContainer: getContainer,\n maxCount: maxCount\n }, function (instance) {\n if (messageInstance) {\n callback(messageInstance);\n return;\n }\n messageInstance = instance;\n callback(instance);\n });\n}\n\n// type NoticeType = 'info' | 'success' | 'error' | 'warning' | 'loading';\n\nfunction notice(args) {\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var iconType = {\n info: 'info-circle',\n success: 'check-circle',\n error: 'close-circle',\n warning: 'exclamation-circle',\n loading: 'loading'\n }[args.type];\n\n var target = args.key || key++;\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getMessageInstance(function (instance) {\n instance.notice({\n key: target,\n duration: duration,\n style: {},\n content: function content(h) {\n var iconNode = h(Icon, {\n attrs: { type: iconType, theme: iconType === 'loading' ? 'outlined' : 'filled' }\n });\n var switchIconNode = iconType ? iconNode : '';\n return h(\n 'div',\n {\n 'class': prefixCls + '-custom-content' + (args.type ? ' ' + prefixCls + '-' + args.type : '')\n },\n [args.icon ? typeof args.icon === 'function' ? args.icon(h) : args.icon : switchIconNode, h('span', [typeof args.content === 'function' ? args.content(h) : args.content])]\n );\n },\n onClose: callback\n });\n });\n });\n var result = function result() {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n}\n\n// type ConfigContent = React.ReactNode | string;\n// type ConfigDuration = number | (() => void);\n// export type ConfigOnClose = () => void;\n\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\n\n// export interface ConfigOptions {\n// top?: number;\n// duration?: number;\n// prefixCls?: string;\n// getContainer?: () => HTMLElement;\n// transitionName?: string;\n// }\n\nvar api = {\n open: notice,\n config: function config(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n prefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n }\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n },\n destroy: function destroy() {\n if (messageInstance) {\n messageInstance.destroy();\n messageInstance = null;\n }\n }\n};\n\n['success', 'info', 'warning', 'error', 'loading'].forEach(function (type) {\n api[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return api.open(_extends({}, content, { type: type }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return api.open({ content: content, duration: duration, type: type, onClose: onClose });\n };\n});\n\napi.warn = api.warning;\n\nexport default api;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","import PropTypes from '../_util/vue-types';\n\nexport default {\n props: {\n prefixCls: PropTypes.string,\n overlay: PropTypes.any,\n trigger: PropTypes.any\n },\n updated: function updated() {\n var trigger = this.trigger;\n\n if (trigger) {\n trigger.forcePopupAlign();\n }\n },\n render: function render() {\n var h = arguments[0];\n var overlay = this.overlay,\n prefixCls = this.prefixCls;\n\n return h(\n 'div',\n { 'class': prefixCls + '-inner', attrs: { role: 'tooltip' }\n },\n [typeof overlay === 'function' ? overlay() : overlay]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport PropTypes from '../_util/vue-types';\nimport Trigger from '../vc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\nimport { hasProp, getComponentFromProp, getOptionProps, getListeners } from '../_util/props-util';\nfunction noop() {}\nexport default {\n props: {\n trigger: PropTypes.any.def(['hover']),\n defaultVisible: PropTypes.bool,\n visible: PropTypes.bool,\n placement: PropTypes.string.def('right'),\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animation: PropTypes.any,\n afterVisibleChange: PropTypes.func.def(function () {}),\n overlay: PropTypes.any,\n overlayStyle: PropTypes.object,\n overlayClassName: PropTypes.string,\n prefixCls: PropTypes.string.def('rc-tooltip'),\n mouseEnterDelay: PropTypes.number.def(0),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n getTooltipContainer: PropTypes.func,\n destroyTooltipOnHide: PropTypes.bool.def(false),\n align: PropTypes.object.def(function () {\n return {};\n }),\n arrowContent: PropTypes.any.def(null),\n tipId: PropTypes.string,\n builtinPlacements: PropTypes.object\n },\n methods: {\n getPopupElement: function getPopupElement() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n tipId = _$props.tipId;\n\n return [h(\n 'div',\n { 'class': prefixCls + '-arrow', key: 'arrow' },\n [getComponentFromProp(this, 'arrowContent')]\n ), h(Content, {\n key: 'content',\n attrs: { trigger: this.$refs.trigger,\n prefixCls: prefixCls,\n id: tipId,\n overlay: getComponentFromProp(this, 'overlay')\n }\n })];\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.trigger.getPopupDomNode();\n }\n },\n render: function render(h) {\n var _getOptionProps = getOptionProps(this),\n overlayClassName = _getOptionProps.overlayClassName,\n trigger = _getOptionProps.trigger,\n mouseEnterDelay = _getOptionProps.mouseEnterDelay,\n mouseLeaveDelay = _getOptionProps.mouseLeaveDelay,\n overlayStyle = _getOptionProps.overlayStyle,\n prefixCls = _getOptionProps.prefixCls,\n afterVisibleChange = _getOptionProps.afterVisibleChange,\n transitionName = _getOptionProps.transitionName,\n animation = _getOptionProps.animation,\n placement = _getOptionProps.placement,\n align = _getOptionProps.align,\n destroyTooltipOnHide = _getOptionProps.destroyTooltipOnHide,\n defaultVisible = _getOptionProps.defaultVisible,\n getTooltipContainer = _getOptionProps.getTooltipContainer,\n restProps = _objectWithoutProperties(_getOptionProps, ['overlayClassName', 'trigger', 'mouseEnterDelay', 'mouseLeaveDelay', 'overlayStyle', 'prefixCls', 'afterVisibleChange', 'transitionName', 'animation', 'placement', 'align', 'destroyTooltipOnHide', 'defaultVisible', 'getTooltipContainer']);\n\n var extraProps = _extends({}, restProps);\n if (hasProp(this, 'visible')) {\n extraProps.popupVisible = this.$props.visible;\n }\n var listeners = getListeners(this);\n var triggerProps = {\n props: _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps),\n on: _extends({}, listeners, {\n popupVisibleChange: listeners.visibleChange || noop,\n popupAlign: listeners.popupAlign || noop\n }),\n ref: 'trigger'\n };\n return h(\n Trigger,\n triggerProps,\n [h(\n 'template',\n { slot: 'popup' },\n [this.getPopupElement(h)]\n ), this.$slots['default']]\n );\n }\n};","// based on rc-tooltip 3.7.3\nimport Tooltip from './Tooltip';\n\nexport default Tooltip;","import _extends from 'babel-runtime/helpers/extends';\nimport { placements as rcPlacements } from '../vc-tooltip/placements';\n\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\n\nvar targetOffset = [0, 0];\n\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return _extends({}, autoAdjustOverflowDisabled, autoAdjustOverflow);\n}\n\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === undefined ? 5 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === undefined ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === undefined ? 12 : _config$verticalArrow,\n _config$autoAdjustOve = config.autoAdjustOverflow,\n autoAdjustOverflow = _config$autoAdjustOve === undefined ? true : _config$autoAdjustOve;\n\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = config.arrowPointAtCenter ? _extends({}, placementMap[key], {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends({}, rcPlacements[key], {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import PropTypes from '../_util/vue-types';\nvar triggerType = PropTypes.oneOf(['hover', 'focus', 'click', 'contextmenu']);\nexport default (function () {\n return {\n trigger: PropTypes.oneOfType([triggerType, PropTypes.arrayOf(triggerType)]).def('hover'),\n visible: PropTypes.bool,\n defaultVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['top', 'left', 'right', 'bottom', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']).def('top'),\n transitionName: PropTypes.string.def('zoom-big-fast'),\n // onVisibleChange: PropTypes.func,\n overlayStyle: PropTypes.object.def(function () {\n return {};\n }),\n overlayClassName: PropTypes.string,\n prefixCls: PropTypes.string,\n mouseEnterDelay: PropTypes.number.def(0.1),\n mouseLeaveDelay: PropTypes.number.def(0.1),\n getPopupContainer: PropTypes.func,\n arrowPointAtCenter: PropTypes.bool.def(false),\n autoAdjustOverflow: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]).def(true),\n destroyTooltipOnHide: PropTypes.bool.def(false),\n align: PropTypes.object.def(function () {\n return {};\n }),\n builtinPlacements: PropTypes.object\n };\n});","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport { cloneElement } from '../_util/vnode';\nimport VcTooltip from '../vc-tooltip';\nimport _getPlacements from './placements';\nimport PropTypes from '../_util/vue-types';\nimport { hasProp, getComponentFromProp, getClass, getStyle, isValidElement, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport abstractTooltipProps from './abstractTooltipProps';\n\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n var omitted = _extends({}, obj);\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return { picked: picked, omitted: omitted };\n};\nvar props = abstractTooltipProps();\nexport default {\n name: 'ATooltip',\n model: {\n prop: 'visible',\n event: 'visibleChange'\n },\n props: _extends({}, props, {\n title: PropTypes.any\n }),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n return {\n sVisible: !!this.$props.visible || !!this.$props.defaultVisible\n };\n },\n\n watch: {\n visible: function visible(val) {\n this.sVisible = val;\n }\n },\n methods: {\n onVisibleChange: function onVisibleChange(visible) {\n if (!hasProp(this, 'visible')) {\n this.sVisible = this.isNoTitle() ? false : visible;\n }\n if (!this.isNoTitle()) {\n this.$emit('visibleChange', visible);\n }\n },\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.tooltip.getPopupDomNode();\n },\n getPlacements: function getPlacements() {\n var _$props = this.$props,\n builtinPlacements = _$props.builtinPlacements,\n arrowPointAtCenter = _$props.arrowPointAtCenter,\n autoAdjustOverflow = _$props.autoAdjustOverflow;\n\n return builtinPlacements || _getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n verticalArrowShift: 8,\n autoAdjustOverflow: autoAdjustOverflow\n });\n },\n\n\n // Fix Tooltip won't hide at disabled button\n // mouse events don't trigger at disabled button in Chrome\n // https://github.com/react-component/tooltip/issues/18\n getDisabledCompatibleChildren: function getDisabledCompatibleChildren(ele) {\n var h = this.$createElement;\n\n var options = ele.componentOptions && ele.componentOptions.Ctor.options || {};\n\n if ((options.__ANT_BUTTON === true || options.__ANT_SWITCH === true || options.__ANT_CHECKBOX === true) && (ele.componentOptions.propsData.disabled || ele.componentOptions.propsData.disabled === '') || ele.tag === 'button' && ele.data && ele.data.attrs && ele.data.attrs.disabled !== undefined) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(getStyle(ele), ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n\n var spanStyle = _extends({\n display: 'inline-block' }, picked, {\n cursor: 'not-allowed',\n width: ele.componentOptions.propsData.block ? '100%' : null\n });\n var buttonStyle = _extends({}, omitted, {\n pointerEvents: 'none'\n });\n var spanCls = getClass(ele);\n var child = cloneElement(ele, {\n style: buttonStyle,\n 'class': null\n });\n return h(\n 'span',\n { style: spanStyle, 'class': spanCls },\n [child]\n );\n }\n return ele;\n },\n isNoTitle: function isNoTitle() {\n var title = getComponentFromProp(this, 'title');\n return !title && title !== 0;\n },\n getOverlay: function getOverlay() {\n var title = getComponentFromProp(this, 'title');\n if (title === 0) {\n return title;\n }\n return title || '';\n },\n\n\n // 动态设置动画点\n onPopupAlign: function onPopupAlign(domNode, align) {\n var placements = this.getPlacements();\n // 当前返回的位置\n var placement = Object.keys(placements).filter(function (key) {\n return placements[key].points[0] === align.points[0] && placements[key].points[1] === align.points[1];\n })[0];\n if (!placement) {\n return;\n }\n // 根据当前坐标设置动画点\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = rect.height - align.offset[1] + 'px';\n } else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = -align.offset[1] + 'px';\n }\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = rect.width - align.offset[0] + 'px';\n } else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = -align.offset[0] + 'px';\n }\n domNode.style.transformOrigin = transformOrigin.left + ' ' + transformOrigin.top;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $props = this.$props,\n $data = this.$data,\n $slots = this.$slots;\n var customizePrefixCls = $props.prefixCls,\n openClassName = $props.openClassName,\n getPopupContainer = $props.getPopupContainer;\n var getContextPopupContainer = this.configProvider.getPopupContainer;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var children = ($slots['default'] || []).filter(function (c) {\n return c.tag || c.text.trim() !== '';\n });\n children = children.length === 1 ? children[0] : children;\n var sVisible = $data.sVisible;\n // Hide tooltip when there is no title\n if (!hasProp(this, 'visible') && this.isNoTitle()) {\n sVisible = false;\n }\n if (!children) {\n return null;\n }\n var child = this.getDisabledCompatibleChildren(isValidElement(children) ? children : h('span', [children]));\n var childCls = _defineProperty({}, openClassName || prefixCls + '-open', true);\n var tooltipProps = {\n props: _extends({}, $props, {\n prefixCls: prefixCls,\n getTooltipContainer: getPopupContainer || getContextPopupContainer,\n builtinPlacements: this.getPlacements(),\n overlay: this.getOverlay(),\n visible: sVisible\n }),\n ref: 'tooltip',\n on: _extends({}, getListeners(this), {\n visibleChange: this.onVisibleChange,\n popupAlign: this.onPopupAlign\n })\n };\n return h(\n VcTooltip,\n tooltipProps,\n [sVisible ? cloneElement(child, { 'class': childCls }) : child]\n );\n }\n};","import ToolTip from './Tooltip';\nimport Base from '../base';\n\n/* istanbul ignore next */\nToolTip.install = function (Vue) {\n Vue.use(Base);\n Vue.component(ToolTip.name, ToolTip);\n};\n\nexport default ToolTip;"],"sourceRoot":""}