{"version":3,"sources":["webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/string-convert/camel2hyphen.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/mutationobserver-shim/dist/mutationobserver.min.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./src/components/TopBackGround.vue?3320","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/add-dom-event-listener/lib/EventObject.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/enquire.js/src/Util.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/add-dom-event-listener/lib/index.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./src/Main.vue?3ba9","webpack:///./src/components/TopBackGround.vue?7290","webpack:///./node_modules/ant-design-vue/es/carousel/index.js","webpack:///./src/components/DownloadArea.vue?2b60","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/ant-design-vue/es/badge/ScrollNumber.js","webpack:///./node_modules/ant-design-vue/es/_util/type.js","webpack:///./node_modules/ant-design-vue/es/_util/colors.js","webpack:///./node_modules/ant-design-vue/es/_util/getTransitionProps.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-table/src/utils.js","webpack:///./node_modules/ant-design-vue/es/vc-util/Dom/addEventListener.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/src/Column.js","webpack:///./node_modules/ant-design-vue/es/vc-table/src/ColumnGroup.js","webpack:///./node_modules/ant-design-vue/es/vc-table/index.js","webpack:///./node_modules/ant-design-vue/es/vc-util/Dom/contains.js","webpack:///./node_modules/dom-align/dist-web/index.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/_util/proxyComponent.js","webpack:///./node_modules/ant-design-vue/es/_util/store/connect.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-menu/DOMWrap.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/SubPopupMenu.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/dom-scroll-into-view/dist-web/index.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/MenuItem.js","webpack:///./node_modules/ant-design-vue/es/_util/store/create.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/commonPropsType.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/Menu.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/index.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/placements.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/Dropdown.js","webpack:///./node_modules/ant-design-vue/es/vc-dropdown/src/index.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/Checkbox.js","webpack:///./node_modules/ant-design-vue/es/vc-checkbox/src/index.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/vc-select/Option.js","webpack:///./node_modules/ant-design-vue/es/vc-select/OptGroup.js","webpack:///./node_modules/ant-design-vue/es/vc-menu/MenuItemGroup.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/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/locale/zh_CN.js","webpack:///./node_modules/ant-design-vue/es/vc-pagination/Pagination.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/vc-menu/Divider.js","webpack:///./node_modules/ant-design-vue/es/menu/SubMenu.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","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/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/scrollTo.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/table/index.js","webpack:///./node_modules/ant-design-vue/es/popover/index.js","webpack:///./node_modules/ant-design-vue/es/_util/getScrollBarSize.js","webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/IDrawerPropTypes.js","webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/utils.js","webpack:///./node_modules/ant-design-vue/es/_util/Portal.js","webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/Drawer.js","webpack:///./node_modules/ant-design-vue/es/vc-drawer/src/index.js","webpack:///./node_modules/ant-design-vue/es/drawer/index.js","webpack:///./node_modules/ant-design-vue/es/divider/index.js","webpack:///src/components/DownloadArea.vue","webpack:///./src/components/DownloadArea.vue?f61e","webpack:///./src/components/DownloadArea.vue?b390","webpack:///src/components/TopBackGround.vue","webpack:///./src/components/TopBackGround.vue?8e80","webpack:///./src/components/TopBackGround.vue?f48f","webpack:///./src/components/Reason.vue?6dc7","webpack:///./node_modules/ant-design-vue/es/grid/Col.js","webpack:///./node_modules/ant-design-vue/es/col/index.js","webpack:///./node_modules/ant-design-vue/es/_util/responsiveObserve.js","webpack:///./node_modules/ant-design-vue/es/grid/Row.js","webpack:///./node_modules/ant-design-vue/es/row/index.js","webpack:///src/components/Reason.vue","webpack:///./src/components/Reason.vue?2fe4","webpack:///./src/components/Reason.vue?089e","webpack:///src/Main.vue","webpack:///./src/Main.vue?1d0e","webpack:///./src/Main.vue?698b","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./src/assets/img_s sync ^\\.\\/s.*\\.jpg$","webpack:///./node_modules/add-dom-event-listener/lib/EventBaseObject.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./src/assets/img_s/s1.jpg","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./src/components/DownloadArea.vue?622b","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./src/assets/img_s/s2.jpg","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/dom-matches/index.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/dom-closest/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/enquire.js/src/index.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./src/assets/img_s/s3.jpg","webpack:///./node_modules/enquire.js/src/QueryHandler.js","webpack:///./src/components/DownloadArea.vue?3b57","webpack:///./src/assets/img_s/s4.jpg","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/json2mq/index.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./src/components/Reason.vue?fd81","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./src/Main.vue?a855","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/enquire.js/src/MediaQuery.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/default-props.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/initial-state.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/utils/innerSliderUtils.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/track.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/dots.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/arrows.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/inner-slider.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/slider.js","webpack:///./node_modules/ant-design-vue/es/vc-slick/src/index.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./src/components/DownloadArea.vue?2e9a","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/lodash/_listCacheHas.js"],"names":["isPrototype","nativeKeys","objectProto","Object","prototype","hasOwnProperty","baseKeys","object","result","key","call","push","module","exports","camel2hyphen","str","replace","match","toLowerCase","baseClone","CLONE_DEEP_FLAG","CLONE_SYMBOLS_FLAG","cloneDeep","value","stubFalse","arrayPush","array","values","index","length","offset","baseIsNative","getValue","getNative","undefined","window","MutationObserver","y","z","a","this","i","m","K","c","d","takeRecords","h","setTimeout","_period","r","b","type","target","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","L","E","f","nodeType","nodeValue","C","g","M","N","O","name","style","cssText","k","attributes","p","F","namespaceURI","t","q","x","l","e","A","pop","j","Math","abs","n","v","childNodes","B","w","u","node","G","H","I","P","id","mo_id","J","observe","attributeFilter","attributeOldValue","childList","subtree","characterData","characterDataOldValue","s","splice","o","disconnect","clearTimeout","D","document","createElement","top","freeExports","freeModule","moduleExports","Buffer","root","nativeIsBuffer","isBuffer","copyObject","keysIn","baseAssignIn","source","identity","overRest","setToString","baseRest","func","start","getSymbolsIn","copySymbolsIn","isKeyable","_interopRequireDefault","obj","__esModule","defineProperty","_EventBaseObject","_EventBaseObject2","_objectAssign","_objectAssign2","TRUE","FALSE","commonProps","isNullOrUndefined","eventNormalizers","reg","props","fix","event","nativeEvent","which","charCode","keyCode","metaKey","ctrlKey","deltaX","deltaY","delta","wheelDelta","axis","wheelDeltaY","wheelDeltaX","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","eventDoc","doc","body","button","pageX","clientX","ownerDocument","documentElement","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","fromElement","toElement","retTrue","retFalse","DomEventObject","isNative","stopPropagation","cancelBubble","isDefaultPrevented","defaultPrevented","getPreventDefault","returnValue","fixFns","fixFn","prop","concat","forEach","normalizer","srcElement","parentNode","timeStamp","Date","now","EventBaseObjectProto","constructor","preventDefault","coreJsData","maskSrcKey","uid","exec","keys","IE_PROTO","isMasked","memoizeCapped","rePropName","reEscapeChar","stringToPath","string","charCodeAt","number","quote","subString","getTag","isObjectLike","mapTag","baseIsMap","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","bind","idx","valueA","valueB","baseGetAllKeys","getAllKeysIn","Promise","hashDelete","has","__data__","size","getMapData","mapCacheSet","data","set","each","collection","fn","cont","isArray","toString","apply","isFunction","nativeMax","max","transform","args","arguments","Array","otherArgs","memoize","MAX_MEMOIZE_SIZE","cache","clear","Uint8Array","mapCacheGet","get","nativeCreate","HASH_UNDEFINED","hashSet","baseGetTag","argsTag","baseIsArguments","listCacheClear","addEventListener","_EventObject","_EventObject2","eventType","callback","option","wrapCallback","ne","_ret","useCapture","capture","remove","removeEventListener","attachEvent","detachEvent","arrayFilter","predicate","resIndex","isIterateeCall","createAssigner","assigner","sources","customizer","guard","stackDelete","isLength","isArrayLike","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","val","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","map","join","test3","split","letter","err","from","symbols","to","baseAssignValue","eq","assignValue","objValue","stubArray","nativeGetSymbols","getSymbols","symbol","isObject","toSource","reRegExpChar","reIsHostCtor","funcProto","Function","funcToString","reIsNative","RegExp","pattern","test","Stack","arrayEach","baseAssign","cloneBuffer","copyArray","copySymbols","getAllKeys","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","CLONE_FLAT_FLAG","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","cloneableTags","bitmask","stack","isDeep","isFlat","isFull","isArr","tag","isFunc","stacked","subValue","add","keysFunc","WeakMap","_vm","_h","$createElement","_c","_self","staticRenderFns","staticClass","attrs","_l","matchMediaPolyfill","mediaQuery","media","matches","addListener","removeListener","matchMedia","SlickCarousel","CarouselEffect","oneOf","CarouselProps","effect","dots","bool","vertical","autoplay","easing","beforeChange","afterChange","prefixCls","accessibility","nextArrow","any","prevArrow","pauseOnHover","adaptiveHeight","arrows","autoplaySpeed","centerMode","centerPadding","cssEase","dotsClass","draggable","fade","focusOnSelect","infinite","initialSlide","lazyLoad","rtl","slide","slidesToShow","slidesToScroll","speed","swipe","swipeToSlide","touchMove","touchThreshold","variableWidth","useCSS","slickGoTo","responsive","dotPosition","Carousel","inject","configProvider","beforeMount","onWindowResized","leading","mounted","warning","innerSlider","$refs","slick","beforeDestroy","cancel","methods","getDotPosition","autoPlay","next","slickNext","prev","slickPrev","goTo","dontAnimate","render","$props","$slots","getPrefixCls","className","SlickCarouselProps","on","scopedSlots","$scopedSlots","children","ref","Vue","use","component","version_info","staticStyle","width","slot","model","$$v","selectPlatform","expression","platform","_e","_v","_s","columns","record","_u","text","x86Hash","padStart","link","devicePlatform","isX64","recommend","getPlatform","gotoQA","version","history_pop_visable","showDrawer","date","includes","hidesystem","drawer_title","drawer_visible","padding","onDrawerClose","drawer_selected","info","desction","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","error","done","then","_asyncToGenerator","self","getNumberArray","num","reverse","current","Number","isNaN","ScrollNumberProps","count","title","oneOfType","displayComponent","mixins","BaseMixin","animateStarted","sCount","watch","lastCount","setState","updated","_this","timeout","onAnimated","_clearTimeout","getPositionByNum","currentCount","currentDigit","lastDigit","$emit","renderNumberList","position","childrenToReturn","renderCurrentNumber","removeTransition","transition","msTransform","WebkitTransform","renderNumberElement","_this2","customizePrefixCls","_component","Tag","restProps","newProps","borderColor","boxShadow","tuple","_len","_key","PresetColorTypes","noop","transitionName","opt","beforeEnter","enter","afterEnter","leave","afterLeave","_opt$appear","appear","nativeOn","transitionProps","css","el","isNumeric","parseFloat","isFinite","BadgeProps","showZero","overflowCount","dot","scrollNumberPrefixCls","status","color","numberStyle","def","isPresetColor","indexOf","getNumberedDispayCount","badgeCount","displayCount","getDispayCount","isDot","getScrollNumberTitle","getStyleWithOffset","_$props","right","parseInt","marginTop","getBadgeClassName","_classNames","hasStatus","isZero","_$props2","numberedDispayCount","isHidden","isEmpty","renderStatusText","hidden","renderDispayComponent","customNode","renderBadgeNumber","_scrollNumberCls","_$props3","scrollNumberCls","statusStyle","background","ScrollNumber","directives","_classNames2","customizeScrollNumberPrefixCls","scrollNumber","statusText","statusCls","styleWithOffset","statusTextColor","Badge","scrollbarVerticalSize","scrollbarHorizontalSize","scrollbarMeasure","height","INTERNAL_COL_DEFINE","measureScrollbar","_ref","_ref$direction","direction","isVertical","scrollDiv","scrollProp","overflowY","overflowX","appendChild","offsetWidth","clientWidth","offsetHeight","clientHeight","removeChild","wait","immediate","debounceFunc","context","persist","later","callNow","item","front","slice","last","addEventListenerWrap","cb","ColumnManager","_cached","_cache","some","column","fixed","_this3","_this4","groupedColumns","filter","_this5","_this6","_leafColumns","_this7","leftColumns","_this8","rightColumns","_this9","_groupColumns","currentRow","parentColumn","rows","grouped","setRowSpan","rowSpan","newColumn","colSpan","_this10","leafColumns","table","expandIconAsCell","columnManager","cols","leftLeafColumns","rightLeafColumns","dataIndex","additionalProps","mergedKey","minWidth","TableHeaderRow","store","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","indent","indentSize","expandIcon","handleClick","onCellClick","BodyCell","customRender","_column$className","transformCellText","tdProps","click","customCell","indentText","paddingLeft","cellClassName","TableRow","customRow","rowKey","hasExpandIcon","renderExpandIcon","renderExpandIconCell","expandedRow","isAnyColumnsFixed","ancestorKeys","expandIconColumnIndex","expandRowByClick","visible","expandedRowKeys","every","_store","expandedRowsHeight","fixedColumnsBodyRowsHeight","hovered","currentHoverKey","shouldRender","$nextTick","saveRowRef","handler","rowRef","onRowClick","rowPropFunc","__emit","onRowDoubleClick","onContextMenu","onMouseEnter","onMouseLeave","setExpandedRowHeight","getBoundingClientRect","setRowHeight","getStyle","display","$el","_customRow","BodyRow","cells","TableCell","customClass","customClassName","rowClassName","rowPropEvents","bodyRowProps","dblclick","mouseenter","mouseleave","contextmenu","expandable","expanded","needIndentSpaced","onExpand","expandClassName","ExpandableRow","childrenColumnName","expandedRowRender","handleDestroy","columnIndex","tempExpandIconAsCell","tempExpandIconColumnIndex","handleExpandChange","handleRowClick","ExpandIcon","childrenData","expandableRowProps","rowClick","BaseTable","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","hover","rowPrefixCls","expandedChange","expandableRow","tableRowProps","_table2","scroll","getBodyWrapper","tableStyle","tableWidthScrollX","reduce","sum","Table","BodyWrapper","ColGroup","TableHeader","handleBodyScrollLeft","saveRef","useFixedHeader","headStyle","scrollbarWidth","scrollbarWidthOfHeader","marginBottom","paddingBottom","handleBodyScroll","handleWheel","bodyStyle","innerBodyStyle","maxHeight","baseTable","refName","useTabIndex","tabIndex","expandedRowClassName","defaultExpandAllRows","defaultExpandedRowKeys","ExpandableTable","finalExpandedRowKeys","handleUpdated","latestExpandedRows","destroy","expandedRowIndex","iconColumn","unshift","renderExpandedRow","parentKey","colCount","_renderRows","nextAncestorKeys","nextIndent","provide","footer","emptyText","shape","tableLayout","preData","$root","observable","_components","reset","hasScrollX","resetScrollX","created","setScrollPosition","debouncedWindowResize","handleWindowResize","resizeEvent","ref_headTable","ref_bodyTable","scrollPosition","tableNode","setScrollPositionClassName","scrollToLeft","scrollToRight","isTableLayoutFixed","_$props$scroll","syncFixedTableRowHeight","tableRect","headRows","querySelectorAll","bodyRows","state","acc","getAttribute","_scroll","currentTarget","_scroll2","lastScrollLeft","handleBodyScrollTop","_scroll3","ref_fixedColumnsBodyLeft","ref_fixedColumnsBodyRight","lastScrollTop","_$props$scroll2","navigator","userAgent","wd","bodyTable","fixedColumnsBodyLeft","fixedColumnsBodyRight","saveTableNodeRef","renderMainTable","scrollable","renderTable","renderEmptyText","renderFooter","renderLeftFixedTable","renderRightFixedTable","options","_scroll4","headTable","HeadTable","BodyTable","renderTitle","emptyClassName","hasLeftFixed","isAnyColumnsLeftFixed","hasRightFixed","isAnyColumnsRightFixed","expandableTableProps","isTableColumnGroup","Column","ColumnGroup","getTableNode","getBodyTable","normalize","elements","element","cls","events","listeners","_getSlots","tProps","contains","vendorPrefix","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","_typeof","Symbol","iterator","configurable","writable","jsCssMap","Webkit","Moz","ms","getVendorPrefix","testProp","getTransformName","setTransitionProperty","transitionProperty","setTransform","getTransitionProperty","getTransformXY","getComputedStyle","getPropertyValue","matrix","matrix2d","matrix3d","setTransformXY","xy","arr","match2d","match3d","getComputedStyleX","RE_NUM","forceRelayout","elem","originalStyle","getClientPosition","box","docElem","left","getScroll","method","getScrollLeft","getScrollTop","getOffset","pos","defaultView","parentWindow","isWindow","getDocument","_getComputedStyle","cs","computedStyle","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","PX","_getComputedStyleIE","rsLeft","pixelLeft","getOffsetDirection","dir","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_dir","_off","setTransform$1","originalXY","resultXY","setOffset","ignoreShake","oriOffset","oLeft","toFixed","oTop","tLeft","tTop","useCssTransform","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","getPBMWidth","cssProp","domUtils","getParent","parent","host","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","win","documentElementProp","compatMode","cssShow","visibility","getWHIgnoreDisplay","_key2","mix","first","charAt","toUpperCase","includeMargin","utils","getWindow","clone","overflow","getWindowScrollLeft","getWindowScrollTop","merge","getOffsetParent","positionStyle","skipStatic","nodeName","getParent$1","isAncestorFixed","getVisibleRectForElement","alwaysByViewport","visibleRect","Infinity","bottom","min","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","innerWidth","innerHeight","maxVisibleWidth","maxVisibleHeight","adjustForViewport","elFuturePos","elRegion","adjustX","resizeWidth","adjustY","resizeHeight","getRegion","outerWidth","outerHeight","getAlignOffset","region","V","getElFuturePos","refNodeRegion","points","targetOffset","p1","p2","diff","round","isFailX","isFailY","isCompleteFailX","isCompleteFailY","flip","flipOffset","convertOffset","offsetLen","substring","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","newElFuturePos","_newPoints","_newOffset","_newTargetOffset","_newElFuturePos","isStillFailX","isStillFailY","_newPoints2","isOutOfVisibleRect","targetRegion","alignElement","refNode","isTargetNotOutOfVisible","tgtPoint","pointInView","__getOffsetParent","__getVisibleRectForElement","buffer","timer","bufferFn","isSamePoint","isSimilarValue","val1","val2","int1","floor","int2","restoreFocus","activeElement","container","focus","getElement","getPoint","point","childrenProps","monitorBufferTime","monitorWindowResize","disabled","aligned","prevProps","forceAlign","startMonitorWindowResize","reAlign","sourceRect","lastElement","currentElement","lastPoint","currentPoint","preRect","stopMonitorWindowResize","resizeHandler","bufferMonitor","child","hiddenClassName","divProps","LazyRenderBox","getClassNameFromAlign","getRootDomNode","destroyPopupOnHide","getContainer","animation","maskAnimation","maskTransitionName","mask","zIndex","popupClassName","popupStyle","stretch","domEl","stretchChecked","targetWidth","targetHeight","rootNode","getPopupDomNode","setStretchSize","onAlign","popupDomNode","currentAlignClassName","getClassName","_$data","$data","$ele","popupInstance","getTargetElement","getAlignTarget","getMaskTransitionName","getTransitionName","getPopupElement","_$data2","sizeStyle","minHeight","alignInstance","popupInnerProps","getZIndexStyle","useTransition","transitionEvent","beforeLeave","_animation$on","_animation$props","_props","PopupInner","getMaskElement","maskElement","maskTransition","isPointsEq","a1","a2","isAlignPoint","getAlignFromPlacement","builtinPlacements","placementStr","baseAlign","getAlignPopupClassName","placement","autoMount","autoDestroy","forceRender","getComponent","renderComponent","removeContainer","$destroy","ready","componentEl","com","setComponent","_com","returnEmptyString","returnDocument","ALL_HANDLERS","action","arrayOf","showAction","hideAction","getPopupClassNameFromAlign","afterPopupVisibleChange","popup","popupPlacement","popupTransitionName","popupAnimation","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","getPopupContainer","maskClosable","popupAlign","popupVisible","defaultPopupVisible","alignPoint","vcTriggerContext","savePopupRef","dialogContext","fireEvents","prevPopupVisible","sPopupVisible","deactivated","setPopupVisible","updatedCal","triggerAfterPopupVisibleChange","clearDelayTimer","clearOutsideHandler","mouseDownTimeout","currentDocument","clickOutsideHandler","isClickToHide","isContextmenuToShow","onDocumentClick","touchOutsideHandler","contextmenuOutsideHandler1","onContextmenuClose","contextmenuOutsideHandler2","onMouseenter","delaySetPopupVisible","onMouseMove","setPoint","onMouseleave","onPopupMouseenter","onPopupMouseleave","onFocus","isFocusToShow","focusTime","onMousedown","preClickTime","onTouchstart","preTouchTime","onBlur","isBlurToHide","onContextmenu","close","onClick","preTime","isClickToShow","domEvent","nextVisible","onPopupMouseDown","_vcTriggerContext","hasPopupMouseDown","handleGetPopupClassFromAlign","getPopupAlign","savePopup","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","mousedown","touchstart","_self$$props","popupProps","Popup","popupContainer","mountNode","popupVisibleChange","delayS","delay","delayTimer","requestAnimationTimeout","createTwoChains","childOriginEvents","_$props4","_$props5","_$props6","_$props7","forcePopupAlign","_$props8","newChildProps","mousemove","blur","trigger","ContainerRender","getDisplayName","WrappedComponent","tempProps","required","__propsSymbol__","ProxyWrappedComponent","getProxyWrappedInstance","wrappedInstance","_$slots","wrapProps","componentWillReceiveProps","slotsKey","_getProxyWrappedInsta","defaultMapStateToProps","connect","mapStateToProps","shouldSubscribe","finalMapStateToProps","Connect","storeContext","preProps","subscribed","getState","trySubscribe","tryUnsubscribe","handleChange","unsubscribe","nextSubscribed","subscribe","getWrappedInstance","applePhone","appleIpod","appleTablet","androidPhone","androidTablet","amazonPhone","amazonTablet","windowsPhone","windowsTablet","otherBlackberry","otherBlackberry10","otherOpera","otherChrome","otherFirefox","regex","isMobile","ua","tmp","_tmp","_tmp2","_tmp3","_tmp4","apple","phone","ipod","tablet","device","amazon","android","windows","other","blackberry","blackberry10","opera","firefox","chrome","defaultResult","getKeyFromChildrenIndex","menuEventKey","prefix","getMenuIdFromSubMenuEventKey","eventKey","loopMenuItem","isMenuItemGroup","c2","componentOptions","loopMenuItemRecursively","find","Ctor","isSubMenu","isMenuItem","menuAllProps","getWidth","styleProperty","canUseDOM","MENUITEM_OVERFLOWED_CLASSNAME","FLOAT_PRECISION_ADJUST","DOMWrap","resizeObserver","mutationObserver","originalTotalWidth","overflowedItems","menuItemSizes","lastVisibleIndex","setChildrenWidthAndResize","level","mode","menuUl","entries","subTree","getMenuItemNodes","ul","getOverflowedSubMenuItem","keyPrefix","renderPlaceholder","overflowedIndicator","theme","copy","_getPropsData","rest","subMenuProps","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","menuItemNodes","overflowedIndicatorWidth","cur","handleResize","currentSumWidth","liWidth","renderChildren","childNode","overflowed","tagProps","allDisabled","updateActiveKey","menuId","activeKey","getEventKey","instanceArrayKeyIndexMap","instanceArray","getActiveKey","originalActiveKey","defaultActiveFirst","found","propsData","noActiveKey","SubPopupMenu","openTransitionName","openAnimation","openKeys","parentMenu","forceSubMenuRender","focusable","multiple","selectedKeys","defaultSelectedKeys","defaultOpenKeys","triggerSubMenuAction","inlineIndent","manualRef","itemIcon","prevActiveKey","onKeyDown","handled","getFlatInstanceArray","active","activeItem","KeyCode","UP","DOWN","step","onItemHover","onDeselect","selectInfo","onSelect","onOpenChange","onDestroy","getOpenTransitionName","len","activeIndex","ci","getIcon","instance","temp","_temp","slotsProp","renderCommonMenuItem","extraProps","childProps","isActive","childListeners","renderMenuItem","rootPrefixCls","subMenuOpenDelay","subMenuCloseDelay","itemHover","openChange","deselect","select","subMenuKey","isRootMenu","domWrapProps","role","keydown","placements","topLeft","bottomLeft","leftTop","rightTop","guid","popupPlacementMap","horizontal","SubMenu","popupOffset","isOpen","minWidthTimeout","mouseenterTimeout","adjustWidth","menu","menuInstance","ENTER","onTitleClick","RIGHT","triggerOpenChange","onPopupVisibleChange","subMenuInstance","onTitleMouseEnter","onTitleMouseLeave","onSubMenuClick","addKeyPath","getActiveClassName","getDisabledClassName","getSelectedClassName","getOpenClassName","saveMenuInstance","keyPath","open","isChildrenSelected","subMenuTitle","popupMenu","subPopupMenuProps","internalMenuId","baseProps","haveRendered","haveOpened","transitionAppear","animProps","_className","_attrs","isInlineMode","mouseEvents","titleClickEvents","titleMouseEvents","ariaOwns","titleProps","icon","triggerNode","liProps","connected","_ref2","computedStyle_","util","_i","scrollTo","scrollIntoView","config","allowHorizontalScroll","onlyScrollIfNeeded","alignWithTop","alignWithLeft","offsetTop","offsetLeft","offsetBottom","offsetRight","containerOffset","ch","cw","containerScroll","diffTop","diffBottom","winScroll","ww","wh","isWin","elemOffset","eh","ew","attribute","isSelected","MenuItem","prevActive","callRef","mouseEvent","create","initialState","partial","listener","storeShape","selectable","Menu","commonPropsType","updateMiniStore","selectedKey","innerMenu","changed","processSingle","oneChanged","animationName","Provider","topCenter","topRight","bottomCenter","bottomRight","minOverlayWidthMatchTrigger","overlayClassName","openClassName","overlayStyle","overlay","defaultVisible","sVisible","onVisibleChange","getMinOverlayWidthMatchTrigger","getOverlayElement","overlayElement","getMenuElement","extraOverlayProps","getMenuElementOrLambda","afterVisibleChange","overlayNode","otherProps","triggerHideAction","triggerProps","ButtonTypesProps","buttonTypes","DropdownProps","getDropdownProps","ButtonGroup","Group","DropdownButtonProps","htmlType","href","popupRef","getContextPopupContainer","dropdownProps","visibleChange","buttonGroupProps","_$props$placement","renderOverlay","overlayProps","_ref$selectable","_ref$focusable","fixedModeOverlay","dropdownTrigger","triggerActions","Button","install","inheritAttrs","defaultChecked","checked","readOnly","autoFocus","sChecked","input","$forceUpdate","shiftKey","eventShiftKey","_getOptionProps","others","globalProps","substr","classString","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","optionIndex","sort","indexA","findIndex","indexB","groupPrefixCls","onChange","Boolean","radioGroupContext","onRadioChange","radioGroup","radioProps","stateValue","wrapperClassString","validator","buttonStyle","updatingValue","radioOptions","classes","ev","lastValue","Radio","handelClick","isSelectOption","isSelectOptGroup","MenuItemGroup","renderInnerMenuItem","titleClassName","listClassName","toTitle","trim","getValuePropValue","Error","getPropValue","newChild","isMultiple","isCombobox","combobox","isMultipleOrTags","tags","isMultipleOrTagsOrCombobox","isSingleMode","toArray","getMapKey","preventDefaultEvent","findIndexInValueBySingleValue","singleValue","getLabelFromPropsValue","getSelectKeys","menuItems","itemValue","itemKey","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","unselectable","findFirstMenuItem","includesSeparators","separators","lastIndexOf","splitBySeparators","token","defaultFilterFn","optionFilterProp","validateOptionValue","generateUUID","getTime","uuid","random","ariaId","defaultActiveFirstOption","dropdownMenuStyle","inputValue","backfillValue","firstActiveValue","menuItemSelectedIcon","scrollActiveItemToView","lastVisible","rafInstance","lastInputValue","prevVisible","itemComponent","firstActiveItem","scrollIntoViewOpts","menuRef","renderMenu","menuDeselect","menuSelect","popupScroll","menuProps","activeKeyProps","clonedMenuItems","foundFirst","_getListeners2","popupFocus","BUILT_IN_PLACEMENTS","dropdownMatchSelectWidth","dropdownAlign","showSearch","dropdownClassName","dropdownStyle","filterOption","empty","dropdownRender","dropdownWidth","saveDropdownMenuRef","saveTriggerRef","setDropdownWidth","cancelRafInstance","getInnerMenu","dropdownMenuRef","getPopupDOMNode","triggerRef","getDropdownElement","getDropdownPrefixCls","dropdownMenuProps","menuNode","DropdownMenu","getDropdownTransitionName","_popupClassName","dropdownVisibleChange","dropdownPrefixCls","popupElement","widthProp","SelectPropTypes","allowClear","showArrow","optionLabelProp","choiceTransitionName","defaultOpen","placeholder","labelInValue","loading","maxTagTextLength","maxTagCount","maxTagPlaceholder","tokenSeparators","getInputElement","clearIcon","inputIcon","removeIcon","backfill","notFoundContent","inBrowser","inWeex","WXEnvironment","weexPlatform","UA","isIE","isEdge","SELECT_EMPTY_VALUE_KEY","offsetParent","chaining","fns","_len2","Option","OptGroup","autoClearSearchValue","saveInputRef","saveInputMirrorRef","saveTopCtrlRef","saveSelectTriggerRef","saveRootRef","saveSelectionRef","_focused","_mouseDown","_options","_empty","optionsInfo","getOptionsInfoFromProps","isDisabledExist","getValueFromProps","_inputValue","getInputValueForCombobox","_open","_optionsInfo","_backfillValue","_skipBuildOptionsInfo","_ariaId","_mirrorInputValue","getDerivedState","inputNode","getInputDOMNode","mirrorNode","getInputMirrorDOMNode","clearFocusTime","clearBlurTime","clearComboboxTime","dropdownContainer","nextProps","prevState","newState","getOptionsFromChildren","useDefaultValue","getLabelFromOption","preState","oldOptionsInfo","onInputChange","_e$target","composing","_$data$_inputValue","isComposing","nextValue","getValueByInput","fireChange","setOpenState","needFocus","setInputValue","onDropdownVisibleChange","timeoutFocus","updateFocusClassName","onInputKeydown","maybeFocus","SPACE","isRealOpen","getRealOpenState","BACKSPACE","openIfHasChildren","comboboxTimer","ESC","selectTriggerRef","handleBackfill","removeSelected","onMenuSelect","selectedValue","skipTrigger","fireSearch","fireSelect","onMenuDeselect","menuItemDomNode","onArrowClick","onPlaceholderClick","onPopupFocus","onClearSelection","onChoiceAnimationLeave","getOptionInfoBySingleValue","defaultLabel","valueLabel","defaultValueLabel","defaultInfo","getOptionBySingleValue","_getOptionInfoBySingl","getOptionsBySingleValue","getValueByLabel","oldLable","getVLBySingleValue","getLabelBySingleValue","getVLForOnChange","vlsS","vls","vl","_getOptionInfoBySingl2","getDropdownContainer","getPlaceholderElement","inputClick","inputBlur","arrow","blurTimer","firstOption","tmpValue","inputFocus","rootRef","_getInputElement","defaultInput","autoComplete","inputElement","inputCls","inputEvents","inputKeydown","topCtrlRef","querySelector","inputRef","inputMirrorRef","getPopupMenuComponent","nextState","_this11","hasNewValue","selectionRef","markMouseDown","markMouseLeave","_filterOption","defaultFilter","filterFn","_this12","focusTimer","_document","isChildDisabled","canMultiple","_valueOptions","childValue","renderFilterOptions","childrenKeys","renderFilterOptionsFromChildren","menuItem","_p","_this13","sel","childChildren","innerItems","subChild","childValueSub","_innerItems","renderTopControlNode","_this14","_$data3","innerNode","showSelectedValue","opacity","_getOptionInfoBySingl3","selectedValueNodes","limitedCountValue","maxTagPlaceholderEl","omittedValues","content","choiceClassName","topCtrlContainerClick","renderArrow","_$props4$showArrow","defaultIcon","renderClear","_$data4","selectionRefClick","selectionRefFocus","selectionRefBlur","_rootCls","_props$showArrow","ctrlNode","_$data5","filterOptions","realOpen","_getListeners$popupSc","selectionProps","extraSelectionProps","rootCls","SelectTrigger","Value","loose","SelectValue","SelectProps","boolean","suffixIcon","SECRET_COMBOBOX_MODE_DO_NOT_USE","propTypes","getNotFoundContent","renderEmpty","vcSelect","renderSuffixIcon","_cls","modeConfig","finalRemoveIcon","finalClearIcon","finalMenuItemSelectedIcon","selectProps","_option$label","restOption","selectOptionsProps","selelctProps","page","locale","showTitle","itemRender","handleKeyPress","ZERO","NINE","NUMPAD_ZERO","NUMPAD_NINE","DELETE","ARROW_UP","ARROW_DOWN","changeSize","quickGo","selectComponentClass","pageSizeOptions","pageSize","buildOptionText","selectPrefixCls","goButton","goInputText","getValidValue","defaultBuildOptionText","items_per_page","handleBlur","go","Select","changeSelect","goInput","gotoButton","jump_to_confirm","jump_to","prev_page","next_page","prev_5","next_5","prev_3","next_3","isInteger","defaultItemRender","calculatePage","statePageSize","total","defaultCurrent","defaultPageSize","hideOnSinglePage","showSizeChanger","showLessItems","showPrevNextJumpers","showQuickJumper","showTotal","simple","prevIcon","nextIcon","jumpPrevIcon","jumpNextIcon","hasOnChange","hasCurrent","console","warn","stateCurrent","stateCurrentInputValue","newCurrent","paginationNode","lastCurrentNode","_current","getJumpPrevPage","getJumpNextPage","getItemIcon","iconNode","allPages","isValid","shouldDisplayQuickJumper","handleKeyDown","handleKeyUp","changePageSize","preCurrent","currentPage","hasPrev","hasNext","jumpPrev","jumpNext","runIfEnter","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","pagerList","firstPager","lastPager","pageBufferSize","prevPage","nextPage","pagerProps","keypress","Pager","prevItemTitle","nextItemTitle","jumpPrevClassString","jumpNextClassString","_active","totalText","prevDisabled","nextDisabled","Options","showSizeChange","getIconsProps","renderPagination","contextLocale","customizeSelectPrefixCls","customLocale","isSmall","paginationProps","MiniSelect","mini","LocaleReceiver","componentName","defaultLocale","SpinSize","spinning","wrapperClassName","tip","indicator","defaultIndicator","shouldDelay","setDefaultIndicator","Content","shouldBeDelayed","originalUpdateSpinning","updateSpinning","debouncifyUpdateSpinning","sSpinning","cancelExistingSpin","getChildren","renderIndicator","dotClassName","_spinClassName","spinClassName","spinElement","_containerClassName","containerClassName","ColumnFilterItem","ColumnProps","filters","filterMultiple","filterDropdown","filterDropdownVisible","sorter","defaultSortOrder","filterIcon","filteredValue","filtered","defaultFilteredValue","sortOrder","sortDirections","TableLocale","filterTitle","filterConfirm","filterReset","selectAll","selectInvert","sortTitle","expand","collapse","RowSelectionType","TableRowSelection","selectedRowKeys","getCheckboxProps","selections","hideDefaultSelections","columnWidth","selectWay","columnTitle","TableProps","rowSelection","pagination","dataSource","bordered","SelectionCheckboxAllProps","getCheckboxPropsByItem","getRecordKey","SelectionBoxProps","defaultSelection","rowIndex","FilterMenuProps","_propsSymbol","confirmFilter","handleFilter","flatArray","childrenName","loop","newItem","treeMap","tree","mapper","flatFilter","generateValueMaps","items","maps","sSelectedKeys","sKeyPathOfSelectedItem","sValueKeys","setNeverShown","getDropdownVisible","neverShown","filterBelongToScrollBody","setSelectedKeys","setVisible","onFilterDropdownVisibleChange","handleClearFilters","handleConfirm","confirmFilter2","handleMenuItemClick","keyPathOfSelectedItem","hasSubMenu","_column$filters","propSelectedKeys","valueKeys","renderMenus","containSelected","subMenuCls","renderFilterIcon","dropdownIconClass","originSelectedKeys","dropdownMenuClass","confirm","clearFilters","menus","FilterDropdownMenuWrapper","selectionDirty","menuPropsContext","subMenu","antdMenuTheme","rightBottom","leftBottom","getTooltipContainer","destroyTooltipOnHide","arrowContent","tipId","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","autoAdjustOverflow","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","_config$autoAdjustOve","placementMap","arrowPointAtCenter","triggerType","picked","omitted","abstractTooltipProps","isNoTitle","tooltip","getPlacements","getDisabledCompatibleChildren","ele","__ANT_BUTTON","__ANT_SWITCH","_splitObject","spanStyle","cursor","block","pointerEvents","spanCls","getOverlay","onPopupAlign","domNode","rect","transformOrigin","childCls","tooltipProps","getInlineCollapsed","layoutSiderContext","$attrs","inlineCollapsed","tooltipTitle","siderCollapsed","sCollapsed","itemProps","toolTipProps","MenuMode","Divider","Item","ItemGroup","propsUpdating","oldVal","switchingModeFromInline","sOpenKeys","collapsedChange","leaveAnimationExecutedWhenInlineCollapsed","inlineOpenKeys","restoreModeVerticalFromInline","handleMouseEnter","handleTransitionEnd","widthCollapsed","propertyName","classNameValue","animVal","iconScaled","handleOpenChange","handleSelect","handleDeselect","setOpenKeys","getRealMenuMode","getMenuOpenAnimation","menuMode","menuOpenAnimation","_menuClassName","collapsedWidth","menuClassName","transitionend","hideMenu","checkSelection","byDefaultChecked","getIndeterminateState","someCheckedNotByDefaultChecked","someCheckedByDefaultChecked","getCheckState","defaultSelections","setCheckState","deep","handleSelectAllChange","selection","selectionPrefixCls","customSelections","newSelections","__ANT_TABLE_COLUMN_GROUP","BodyRowProps","createBodyRow","Component","selected","Spin","easeInOutCubic","cc","_options$getContainer","_options$duration","duration","startTime","frameFunc","timestamp","time","nextScrollTop","pageXOffset","inlineStyle","border","lineHeight","TransButton","noStyle","onKeyUp","setRef","btn","div","$listeners","keyup","getRowSelection","getColumnKey","defaultPagination","onShowSizeChange","emptyObject","bodyRow","isTheSameComponents","components1","components2","getFilteredValueColumns","getFiltersFromColumns","col","colKey","isFiltersChanged","columnKey","CheckboxPropsCache","getDefaultSortOrder","sFilters","getDefaultFilters","sPagination","getDefaultPagination","pivot","filterDataCnt","previousState","newPagination","filteredValueColumns","filtersFromColumns","newFilters","sortColumn","sSortColumn","sSortOrder","getSortOrderColumns","sortState","getSortStateFromColumns","getDefaultSelection","getFlatData","hasPagination","definedFilters","defaultFilteredValueColumns","defaultFilters","soFar","definedSortState","defaultSortedColumn","sortedColumn","getMaxCurrent","_sPagination","recordKey","getSorterFn","getCurrentPageData","getLocalData","MAX_VALUE","getFlatCurrentPageData","currentState","sorterFn","recursiveSort","findColumn","onFilter","onRow","custom","setSelectedRowKeys","selectionInfo","changeRowKeys","selectedRows","onSelectMultiple","changeRows","onSelectAll","_changeRows","onSelectInvert","generatePopupContainerFunc","vcTable","scrollToFirstRow","scrollToFirstRowOnChange","isSameColumn","nextFilters","currentColumnKeys","filtersToSetState","prepareParamsArguments","sSelectionDirty","realIndex","sign","dist","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","_classNames3","sortButton","colFilters","isAscend","isDescend","ascend","descend","colProps","onHeaderCellClick","renderColumnTitle","_ref5","_classNames4","contextGetPopupContainer","realGetPopupContainer","mergedLocale","columnsWithRowSelection","vcTableProps","customizeDropdownPrefixCls","customizeTransformCellText","_configProvider","tct","paginationPatchClass","spinProps","startsWith","restSlots","updateColumns","_col$slots","slots","_col$scopedSlots","slotTitle","slotFooter","_$scopedSlots$expande","Popover","cached","getScrollBarSize","fresh","inner","outer","outerStyle","widthContained","widthScroll","IProps","firstEnter","levelMove","ease","showMask","maskStyle","wrapStyle","keyboard","IDrawerProps","getOpenCount","switchScrollingEffect","dataToArray","vars","transitionEndObject","WebkitTransition","MozTransition","OTransition","transitionStr","html","getElementsByTagName","transitionEnd","transformArguments","didUpdate","createContainer","_container","currentDrawer","Drawer","levelDom","contentDom","maskDom","handlerdom","mousePos","sFirstEnter","drawerId","orignalOpen","sOpen","passiveSupported","passive","getOpen","getDefault","isOpenChange","domFocus","_x","getParentAndLevelDom","setLevelDomTransform","dom","onMaskTouchEnd","onTouchEnd","onIconTouchEnd","onWrapperTransitionEnd","contentWrapper","_open2","getCurrentDrawerSome","defaultGetContainer","getSelfContainer","HTMLElement","openTransition","placementName","trnasitionEnd","levelValue","$levelMove","$value","placementPos","eventArray","domArray","widthTransition","trannsformTransition","removeMoveHandler","removeStartHandler","heightTransition","getChildToRender","_classnames","wrapperClassname","isHorizontal","contentValue","handlerChildren","handlerDefalut","handlerSlot","handlerSlotVnode","_getEvents","handleIconClick","domContProps","directivesMaskDom","directivesContentWrapper","directivesContentDom","getTouchParentScroll","differX","differY","isY","isX","currentT","currentL","touches","startPos","changedTouches","portal","$forceRender","Portal","closable","destroyOnClose","headerStyle","drawerStyle","wrapClassName","handle","destroyClose","preVisible","_push","parentDrawer","pull","vcDrawer","onDestroyTransitionEnd","isDestroyOnClose","getDestroyOnClose","getPushTransform","getRcDrawerStyle","renderHeader","headerClassName","renderCloseIcon","renderBody","containerStyle","haveMask","offsetStyle","vcDrawerProps","dashed","orientation","_classString","_orientation","orientationPrefix","Windows","columnsAll","MacOS","columnsX64","Linux","log","version_pop_visable","history_info","drawer_content","$router","devType","devArch","getHistoryInfo","DownloadArea","carouselNum","span","class","stringOrNumber","ColSize","objectOrNumber","ColProps","xs","sm","md","lg","xl","xxl","flex","rowContext","parseFlex","_extends3","sizeClassObj","_extends2","sizeProps","propSize","gutter","getGutter","paddingRight","paddingTop","Col","enquire","responsiveMap","subscribers","subUid","responsiveObserve","dispatch","pointMap","register","unregister","screen","unmatch","RowProps","justify","screens","results","normalizedGutter","breakpoint","_classes","rowStyle","marginLeft","marginRight","Row","reason","TopBackGround","Reason","webpackContext","req","webpackContextResolve","__webpack_require__","code","returnFalse","returnTrue","EventBaseObject","isEventObject","isPropagationStopped","isImmediatePropagationStopped","stopImmediatePropagation","halt","nativeKeysIn","baseKeysIn","isProto","baseMerge","srcIndex","DataView","Map","Set","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","hashClear","assignMergeValue","cloneTypedArray","isArguments","isArrayLikeObject","isPlainObject","isTypedArray","safeGet","toPlainObject","baseMergeDeep","mergeFunc","srcValue","newValue","isCommon","isBuff","isTyped","baseTimes","iteratee","stackHas","overArg","selector","proto","Element","nativeMatches","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentElem","nodes","cloneArrayBuffer","cloneDataView","dataView","byteOffset","byteLength","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entry","webpackPolyfill","deprecate","paths","castPath","toKey","baseGet","path","assocIndexOf","arrayProto","lastIndex","reFlags","cloneRegExp","regexp","isIndex","arrayLikeKeys","inherited","isArg","isType","skipIndexes","createBaseFor","baseFor","constant","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","objectCreate","baseCreate","baseToString","arrayMap","hashHas","mapCacheClear","mapCacheDelete","mapCacheHas","MapCache","Hash","symbolsFunc","stackClear","stackGet","stackSet","thisArg","MediaQueryDispatch","isNew","QueryHandler","deferSetup","setup","initialised","equals","asyncTag","proxyTag","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","skipTempReset","stop","rootEntry","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","$","fails","toLength","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","wellKnownSymbol","V8_VERSION","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","FORCED","forced","fromRight","freeProcess","freeGlobal","process","types","require","binding","getPrototype","symbolProto","symbolValueOf","valueOf","cloneSymbol","baseSetToString","isDimension","feature","re","obj2mq","mq","features","json2mq","query","hashGet","MediaQuery","isUnconditional","handlers","mql","assess","constuctor","addHandler","qh","removeHandler","reIsUint","Util","queries","browserIsIncapable","shouldDegrade","shortOut","defaultProps","unslick","edgeFriction","verticalSwiping","asNavFor","pauseOnDotsHover","pauseOnFocus","slidesPerRow","swipeEvent","useTransform","waitForAnimate","animating","autoplaying","currentDirection","currentLeft","currentSlide","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","getOnDemandLazySlides","spec","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","getHeight","getSwipeDirection","swipeAngle","xDist","yDist","atan2","PI","canGoNext","canGo","extractObject","newObject","initializedState","ceil","listRef","trackRef","centerPaddingAdj","slidesToLoad","animationSlide","finalSlide","animationLeft","finalLeft","getTrackLeft","getTrackAnimateCSS","previousInt","slideOffset","targetSlide","unevenOffset","indexOffset","message","siblingDirection","tagName","onEdge","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","onSwipe","minSwipe","newSlide","getSlideCount","checkNavigable","getNavigableIndexes","counter","indexes","navigables","prevNavigable","centerOffset","swipedSlide","slickList","slides","currentIndex","slidesTraversed","dataset","checkSpecKeys","keysArray","trackHeight","trackChildren","getTotalSlides","targetLeft","verticalOffset","slidesToOffset","getPreClones","targetSlideIndex","trackElem","getPostClones","slidesOnRight","slidesOnLeft","getSlideClasses","slickActive","slickCenter","slickCloned","slickCurrent","getSlideStyle","getKey","fallbackKey","preCloneSlides","postCloneSlides","childrenCount","childOnClickOptions","childStyle","slideClass","slideClasses","outline","preCloneNo","functional","mouseover","trackProps","getDotCount","appendDots","customPaging","clickHandler","leftBound","rightBound","dotOptions","PrevArrow","prevClasses","prevHandler","prevArrowProps","NextArrow","nextClasses","nextHandler","nextArrowProps","list","track","callbackTimers","clickable","debouncedResize","listRefHandler","trackRefHandler","adaptHeight","setTrackStyle","resizeWindow","updateState","handleAutoPlay","pause","animationEndCallback","updatedState","ssrInit","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","childWidth","_i2","_trackStyle","currentWidth","trackLeft","checkImagesLoad","images","imagesCount","loadedCount","image","onclick","prevClickHandler","onload","onerror","progressiveLazyLoad","_index","lazyLoadTimer","clearInterval","slideHandler","_slideHandler2","firstBatch","changeSlide","keyHandler","selectHandler","disableBodyScroll","ontouchmove","enableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","play","nextIndex","playType","autoplayTimer","setInterval","pauseType","onDotsOver","onDotsLeave","onTrackOver","onTrackLeave","onSlideFocus","onSlideBlur","ro","onfocus","onblur","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","dotProps","_$scopedSlots","arrowProps","_$scopedSlots2","prevArrowCustom","nextArrowCustom","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","mouseup","touchmove","touchend","touchcancel","innerSliderProps","_responsiveMediaHandlers","innerSliderRefHandler","slickPause","slickPlay","breakpoints","breakpt","bQuery","maxWidth","settings","resp","newChildren","sliderProps","baseIsSet","typedArray","nodeIsMap","isSymbol","INFINITY","symbolToString","LARGE_ARRAY_SIZE","pairs","nodeIsSet","isKey","FUNC_ERROR_TEXT","resolver","memoized","Cache","allocUnsafe","HOT_COUNT","HOT_SPAN","nativeNow","lastCalled","stamp","remaining","reIsDeepProp","reIsPlainProp","arrayBuffer"],"mappings":"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","file":"js/chunk-bab97606.be028252.js","sourcesContent":["var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","// mutationobserver-shim v0.3.3 (github.com/megawac/MutationObserver.js)\n// Authors: Graeme Yeates (github.com/megawac) \n/*\n Shim for MutationObserver interface\n Author: Graeme Yeates (github.com/megawac)\n Repository: https://github.com/megawac/MutationObserver.js\n License: WTFPL V2, 2004 (wtfpl.net).\n Though credit and staring the repo will make me feel pretty, you can modify and redistribute as you please.\n Attempts to follow spec (https://www.w3.org/TR/dom/#mutation-observers) as closely as possible for native javascript\n See https://github.com/WebKit/webkit/blob/master/Source/WebCore/dom/MutationObserver.cpp for current webkit source c++ implementation\n*/\nwindow.MutationObserver||(window.MutationObserver=function(y){function z(a){this.i=[];this.m=a}function K(a){(function c(){var d=a.takeRecords();d.length&&a.m(d,a);a.h=setTimeout(c,z._period)})()}function r(a){var b={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null},c;for(c in a)b[c]!==y&&a[c]!==y&&(b[c]=a[c]);return b}function L(a,b){var c=E(a,b);return function(d){var f=d.length;b.a&&3===a.nodeType&&\na.nodeValue!==c.a&&d.push(new r({type:\"characterData\",target:a,oldValue:c.a}));b.b&&c.b&&C(d,a,c.b,b.f);if(b.c||b.g)var m=M(d,a,c,b);if(m||d.length!==f)c=E(a,b)}}function N(a,b){return b.value}function O(a,b){return\"style\"!==b.name?b.value:a.style.cssText}function C(a,b,c,d){for(var f={},m=b.attributes,k,g,p=m.length;p--;)k=m[p],g=k.name,d&&d[g]===y||(F(b,k)!==c[g]&&a.push(r({type:\"attributes\",target:b,attributeName:g,oldValue:c[g],attributeNamespace:k.namespaceURI})),f[g]=!0);for(g in c)f[g]||a.push(r({target:b,\ntype:\"attributes\",attributeName:g,oldValue:c[g]}))}function M(a,b,c,d){function f(g,p,t,q,x){var A=g.length-1;x=-~((A-x)/2);for(var h,l,e;e=g.pop();)h=t[e.j],l=q[e.l],d.c&&x&&Math.abs(e.j-e.l)>=A&&(a.push(r({type:\"childList\",target:p,addedNodes:[h],removedNodes:[h],nextSibling:h.nextSibling,previousSibling:h.previousSibling})),x--),d.b&&l.b&&C(a,h,l.b,d.f),d.a&&3===h.nodeType&&h.nodeValue!==l.a&&a.push(r({type:\"characterData\",target:h,oldValue:l.a})),d.g&&m(h,l)}function m(g,p){for(var t=g.childNodes,\nq=p.c,x=t.length,A=q?q.length:0,h,l,e,n,v,B=0,w=0,u=0;w true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBackGround.vue?vue&type=style&index=0&id=ea202a76&scoped=true&lang=css&\"","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('TopBackGround'),_c('Reason')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"topbg\"},[_c('div',{staticClass:\"mainWrapper\"},[_c('div',{staticClass:\"shield\"}),_c('div',{staticClass:\"slider sliderwimg\"},[_c('a-carousel',{attrs:{\"autoplay\":\"\"}},_vm._l((_vm.carouselNum),function(i){return _c('img',{key:i,attrs:{\"src\":require((\"../assets/img_s/s\" + i + \".jpg\"))}})}),0)],1),_c('DownloadArea',{staticClass:\"downloads\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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 debounce from 'lodash/debounce';\nimport hasProp, { initDefaultProps, getComponentFromProp, filterEmpty, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Base from '../base';\nimport warning from '../_util/warning';\nimport classNames from 'classnames';\n\n// matchMedia polyfill for\n// https://github.com/WickyNilliams/enquire.js/issues/82\nif (typeof window !== 'undefined') {\n var matchMediaPolyfill = function matchMediaPolyfill(mediaQuery) {\n return {\n media: mediaQuery,\n matches: false,\n addListener: function addListener() {},\n removeListener: function removeListener() {}\n };\n };\n // ref: https://github.com/ant-design/ant-design/issues/18774\n if (!window.matchMedia) window.matchMedia = matchMediaPolyfill;\n}\n// Use require over import (will be lifted up)\n// make sure matchMedia polyfill run before require('vc-slick')\n// Fix https://github.com/ant-design/ant-design/issues/6560\n// Fix https://github.com/ant-design/ant-design/issues/3308\nvar SlickCarousel = require('../vc-slick/src')['default'];\n\nexport var CarouselEffect = PropTypes.oneOf(['scrollx', 'fade']);\n// Carousel\nexport var CarouselProps = {\n effect: CarouselEffect,\n dots: PropTypes.bool,\n vertical: PropTypes.bool,\n autoplay: PropTypes.bool,\n easing: PropTypes.string,\n beforeChange: PropTypes.func,\n afterChange: PropTypes.func,\n // style: PropTypes.React.CSSProperties,\n prefixCls: PropTypes.string,\n accessibility: PropTypes.bool,\n nextArrow: PropTypes.any,\n prevArrow: PropTypes.any,\n pauseOnHover: PropTypes.bool,\n // className: PropTypes.string,\n adaptiveHeight: PropTypes.bool,\n arrows: PropTypes.bool,\n autoplaySpeed: PropTypes.number,\n centerMode: PropTypes.bool,\n centerPadding: PropTypes.string,\n cssEase: PropTypes.string,\n dotsClass: PropTypes.string,\n draggable: PropTypes.bool,\n fade: PropTypes.bool,\n focusOnSelect: PropTypes.bool,\n infinite: PropTypes.bool,\n initialSlide: PropTypes.number,\n lazyLoad: PropTypes.bool,\n rtl: PropTypes.bool,\n slide: PropTypes.string,\n slidesToShow: PropTypes.number,\n slidesToScroll: PropTypes.number,\n speed: PropTypes.number,\n swipe: PropTypes.bool,\n swipeToSlide: PropTypes.bool,\n touchMove: PropTypes.bool,\n touchThreshold: PropTypes.number,\n variableWidth: PropTypes.bool,\n useCSS: PropTypes.bool,\n slickGoTo: PropTypes.number,\n responsive: PropTypes.array,\n dotPosition: PropTypes.oneOf(['top', 'bottom', 'left', 'right'])\n};\n\nvar Carousel = {\n name: 'ACarousel',\n props: initDefaultProps(CarouselProps, {\n dots: true,\n arrows: false,\n draggable: false\n }),\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n\n beforeMount: function beforeMount() {\n this.onWindowResized = debounce(this.onWindowResized, 500, {\n leading: false\n });\n },\n mounted: function mounted() {\n if (hasProp(this, 'vertical')) {\n warning(!this.vertical, 'Carousel', '`vertical` is deprecated, please use `dotPosition` instead.');\n }\n var autoplay = this.autoplay;\n\n if (autoplay) {\n window.addEventListener('resize', this.onWindowResized);\n }\n // https://github.com/ant-design/ant-design/issues/7191\n this.innerSlider = this.$refs.slick && this.$refs.slick.innerSlider;\n },\n beforeDestroy: function beforeDestroy() {\n var autoplay = this.autoplay;\n\n if (autoplay) {\n window.removeEventListener('resize', this.onWindowResized);\n this.onWindowResized.cancel();\n }\n },\n\n methods: {\n getDotPosition: function getDotPosition() {\n if (this.dotPosition) {\n return this.dotPosition;\n }\n if (hasProp(this, 'vertical')) {\n return this.vertical ? 'right' : 'bottom';\n }\n return 'bottom';\n },\n onWindowResized: function onWindowResized() {\n // Fix https://github.com/ant-design/ant-design/issues/2550\n var autoplay = this.autoplay;\n\n if (autoplay && this.$refs.slick && this.$refs.slick.innerSlider && this.$refs.slick.innerSlider.autoPlay) {\n this.$refs.slick.innerSlider.autoPlay();\n }\n },\n next: function next() {\n this.$refs.slick.slickNext();\n },\n prev: function prev() {\n this.$refs.slick.slickPrev();\n },\n goTo: function goTo(slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n this.$refs.slick.slickGoTo(slide, dontAnimate);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = _extends({}, this.$props);\n var $slots = this.$slots;\n\n\n if (props.effect === 'fade') {\n props.fade = true;\n }\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var className = getPrefixCls('carousel', props.prefixCls);\n var dotsClass = 'slick-dots';\n var dotPosition = this.getDotPosition();\n props.vertical = dotPosition === 'left' || dotPosition === 'right';\n props.dotsClass = classNames('' + dotsClass, dotsClass + '-' + (dotPosition || 'bottom'), _defineProperty({}, '' + props.dotsClass, !!props.dotsClass));\n if (props.vertical) {\n className = className + ' ' + className + '-vertical';\n }\n var SlickCarouselProps = {\n props: _extends({}, props, {\n nextArrow: getComponentFromProp(this, 'nextArrow'),\n prevArrow: getComponentFromProp(this, 'prevArrow')\n }),\n on: getListeners(this),\n scopedSlots: this.$scopedSlots\n };\n var children = filterEmpty($slots['default']);\n return h(\n 'div',\n { 'class': className },\n [h(\n SlickCarousel,\n _mergeJSXProps([{ ref: 'slick' }, SlickCarouselProps]),\n [children]\n )]\n );\n }\n};\n\n/* istanbul ignore next */\nCarousel.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Carousel.name, Carousel);\n};\n\nexport default Carousel;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.version_info != null)?_c('div',[_c('a-popover',{attrs:{\"trigger\":\"click\",\"placement\":\"bottom\",\"overlayClassName\":\"pop-download\"}},[_c('a-tabs',{staticStyle:{\"text-align\":\"center\"},style:({ width: '29rem' }),attrs:{\"slot\":\"content\",\"size\":\"small\"},slot:\"content\",model:{value:(_vm.selectPlatform),callback:function ($$v) {_vm.selectPlatform=$$v},expression:\"selectPlatform\"}},_vm._l((_vm.version_info.platforms),function(platform){return _c('a-tab-pane',{key:platform.type},[_c('span',{attrs:{\"slot\":\"tab\"},slot:\"tab\"},[(platform.type == 'Windows')?_c('a-icon',{attrs:{\"type\":\"windows\"}}):(platform.type == 'MacOS')?_c('a-icon',{attrs:{\"type\":\"apple\"}}):_vm._e(),_vm._v(\" \"+_vm._s(platform.type)+\" \")],1),_c('a-table',{staticClass:\"table\",attrs:{\"columns\":_vm.columns[platform.type],\"data-source\":_vm.data[platform.type],\"size\":\"small\",\"pagination\":false,\"bordered\":false,\"tableLayout\":\"auto\",\"rowClassName\":function (record, index) { return 'real-download'; }},scopedSlots:_vm._u([{key:\"system\",fn:function(text){return _c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(_vm._s(text))])}},{key:\"type\",fn:function(text, record){return _c('div',{staticStyle:{\"text-align\":\"right\"}},[_vm._v(_vm._s(text)+\"  \"),_c('a-popover',{attrs:{\"trigger\":\"click\"}},[_c('template',{slot:\"content\"},[(record.x86Hash && record.x86Hash.length > 0)?[_c('h4',[_vm._v(\"X86校验信息\")]),_vm._l((record.x86Hash),function(ref){\nvar name = ref.name;\nvar value = ref.value;\nreturn [(value)?_c('pre',{key:name,staticStyle:{\"margin\":\"0\"}},[_vm._v(_vm._s(name.padStart(6,' '))+\": \"+_vm._s(value))]):_vm._e()]}),_c('a-divider',{staticStyle:{\"margin\":\"8px 0 0 0\"}}),_c('h4',[_vm._v(\"X64校验信息\")])]:_c('h4',[_vm._v(\"校验信息\")]),_vm._l((record.x64Hash),function(ref){\nvar name = ref.name;\nvar value = ref.value;\nreturn [(value)?_c('pre',{key:name,staticStyle:{\"margin\":\"0\"}},[_vm._v(_vm._s(name.padStart(6,' '))+\": \"+_vm._s(value))]):_vm._e()]})],2),_c('a-icon',{attrs:{\"type\":\"info-circle\"}})],2)],1)}},{key:\"x86-download\",fn:function(link, record){return (_vm.isWin)?_c('a-badge',{},[(platform.type == _vm.devicePlatform && !_vm.isX64 && record.recommend)?_c('span',{staticClass:\"tuijian\",attrs:{\"slot\":\"count\"},slot:\"count\"},[_vm._v(\"推荐\")]):_vm._e(),(link)?_c('a',{attrs:{\"href\":link,\"target\":\"_blank\"}},[_c('a-button',{attrs:{\"icon\":\"download\",\"type\":\"link\"}})],1):_c('a',[_c('a-button',{staticStyle:{\"color\":\"#999\",\"cursor\":\"not-allowed\"},attrs:{\"icon\":\"frown\",\"type\":\"link\"}})],1)]):_vm._e()}},{key:\"x64-download\",fn:function(link, record){return _c('a-badge',{},[(platform.type == _vm.devicePlatform && _vm.isX64 && record.recommend)?_c('span',{staticClass:\"tuijian\",attrs:{\"slot\":\"count\"},slot:\"count\"},[_vm._v(\"推荐\")]):_vm._e(),(link)?_c('a',{attrs:{\"href\":link,\"target\":\"_blank\"}},[_c('a-button',{attrs:{\"icon\":\"download\",\"type\":\"link\"}})],1):_c('a',[_c('a-button',{staticStyle:{\"color\":\"#999\",\"cursor\":\"not-allowed\"},attrs:{\"icon\":\"frown\",\"type\":\"link\"}})],1)])}}],null,true)})],1)}),1),_c('a-button',{staticClass:\"download-btn\",on:{\"click\":function () { return _vm.getPlatform(); }}},[_vm._v(\"立即下载\"),_c('a-icon',{attrs:{\"type\":\"cloud-download\"}})],1)],1),_c('a-button',{staticClass:\"question-btn\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.gotoQA}},[_c('a-icon',{attrs:{\"type\":\"question\"}}),_c('br'),_vm._v(\"常见问题\")],1),_c('p',{staticClass:\"info\"},[_vm._v(\" 软件版本: \"+_vm._s(_vm.version_info.version)+\" \"),_c('a-divider',{attrs:{\"type\":\"vertical\"}}),_c('a-popover',{attrs:{\"trigger\":\"click\",\"placement\":\"bottom\",\"overlayClassName\":\"pop-history\"},model:{value:(_vm.history_pop_visable),callback:function ($$v) {_vm.history_pop_visable=$$v},expression:\"history_pop_visable\"}},[_c('a-tabs',{staticStyle:{\"text-align\":\"center\"},style:({ width: '23rem' }),attrs:{\"slot\":\"content\",\"size\":\"small\"},slot:\"content\",model:{value:(_vm.selectPlatform),callback:function ($$v) {_vm.selectPlatform=$$v},expression:\"selectPlatform\"}},_vm._l((_vm.version_info.platforms),function(platform){return _c('a-tab-pane',{key:platform.type},[_c('span',{attrs:{\"slot\":\"tab\"},slot:\"tab\"},[(platform.type == 'Windows')?_c('a-icon',{attrs:{\"type\":\"windows\"}}):(platform.type == 'MacOS')?_c('a-icon',{attrs:{\"type\":\"apple\"}}):_vm._e(),_vm._v(\" \"+_vm._s(platform.type)+\" \")],1),(platform.type != 'MacOS')?[_c('a-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function () { return _vm.showDrawer(platform.type, 'X86 (32位)'); }}},[_vm._v(\"X86 (32位)\")]),_c('a-divider',{attrs:{\"type\":\"vertical\"}}),_c('a-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function () { return _vm.showDrawer(platform.type, 'X64 (64位)'); }}},[_vm._v(\"X64 (64位)\")])]:_c('a-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function () { return _vm.showDrawer(platform.type, 'X64 (64位)'); }}},[_vm._v(\"X64 (64位)\")])],2)}),1),_c('a-button',{staticClass:\"updateHistory\",attrs:{\"type\":\"link\"},on:{\"click\":function () { return _vm.getPlatform(); }}},[_vm._v(\"更新历史\")])],1)],1),_c('p',{staticClass:\"info\"},[_vm._v(\"更新日期: \"+_vm._s(_vm.version_info.date))]),_vm._l((_vm.version_info.platforms),function(platform,index){return [_vm._l((platform.releases),function(r){return [(index == 0)?_c('p',{key:(index + \"-\" + (r.name) + \"-\" + (r.type)),staticClass:\"info\"},[(r.type.includes('安装包') && r.hidesystem != true)?_c('span',[_vm._v(\"支持系统: \"+_vm._s(platform.type)+\" \"+_vm._s(r.name))]):_vm._e()]):_c('p',{key:(index + \"-\" + (r.name) + \"-\" + (r.type)),staticClass:\"info info-notitle\"},[(r.type.includes('安装包') && r.hidesystem != true)?_c('span',[_vm._v(_vm._s(platform.type)+\" \"+_vm._s(r.name))]):_vm._e()])]})]}),_c('a-drawer',{attrs:{\"title\":_vm.drawer_title,\"placement\":\"right\",\"closable\":false,\"visible\":_vm.drawer_visible,\"width\":\"34rem\",\"bodyStyle\":{ padding: '0 0 0 2rem' }},on:{\"close\":_vm.onDrawerClose}},[_c('a-tabs',{staticClass:\"history_version\",style:({ width: '32rem' }),attrs:{\"size\":\"small\"},model:{value:(_vm.drawer_selected),callback:function ($$v) {_vm.drawer_selected=$$v},expression:\"drawer_selected\"}},_vm._l((_vm.drawer_content),function(info){return _c('a-tab-pane',{key:info.version},[(_vm.version_info.version === info.version)?_c('span',{attrs:{\"slot\":\"tab\"},slot:\"tab\"},[_vm._v(\" v\"+_vm._s(info.version)+\" (当前版本) \")]):_c('span',{attrs:{\"slot\":\"tab\"},slot:\"tab\"},[_vm._v(\" v\"+_vm._s(info.version)+\" \")]),_c('pre',[_vm._v(_vm._s(info.desction))])])}),1)],1)],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\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};","// 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};","import { tuple } from './type';\n\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","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;","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 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 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 _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 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};","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 };","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}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\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 _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 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 _extends from 'babel-runtime/helpers/extends';\nimport _slicedToArray from 'babel-runtime/helpers/slicedToArray';\n// MIT License from https://github.com/kaimallea/isMobile\n\nvar applePhone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i; // Match 'Android' AND 'Mobile'\nvar androidTablet = /Android/i;\nvar amazonPhone = /\\bAndroid(?:.+)SD4930UR\\b/i;\nvar amazonTablet = /\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i; // Match 'Windows' AND 'ARM'\nvar otherBlackberry = /BlackBerry/i;\nvar otherBlackberry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i; // Match 'Mobile' AND 'Firefox'\n\nfunction match(regex, userAgent) {\n return regex.test(userAgent);\n}\n\nfunction isMobile(userAgent) {\n var ua = userAgent || (typeof navigator !== 'undefined' ? navigator.userAgent : '');\n\n // Facebook mobile app's integrated browser adds a bunch of strings that\n // match everything. Strip it out if it exists.\n var tmp = ua.split('[FBAN');\n if (typeof tmp[1] !== 'undefined') {\n var _tmp = tmp;\n\n var _tmp2 = _slicedToArray(_tmp, 1);\n\n ua = _tmp2[0];\n }\n\n // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n // iPhone\" string. Same probably happens on other tablet platforms.\n // This will confuse detection so strip it out if it exists.\n tmp = ua.split('Twitter');\n if (typeof tmp[1] !== 'undefined') {\n var _tmp3 = tmp;\n\n var _tmp4 = _slicedToArray(_tmp3, 1);\n\n ua = _tmp4[0];\n }\n\n var result = {\n apple: {\n phone: match(applePhone, ua) && !match(windowsPhone, ua),\n ipod: match(appleIpod, ua),\n tablet: !match(applePhone, ua) && match(appleTablet, ua) && !match(windowsPhone, ua),\n device: (match(applePhone, ua) || match(appleIpod, ua) || match(appleTablet, ua)) && !match(windowsPhone, ua)\n },\n amazon: {\n phone: match(amazonPhone, ua),\n tablet: !match(amazonPhone, ua) && match(amazonTablet, ua),\n device: match(amazonPhone, ua) || match(amazonTablet, ua)\n },\n android: {\n phone: !match(windowsPhone, ua) && match(amazonPhone, ua) || !match(windowsPhone, ua) && match(androidPhone, ua),\n tablet: !match(windowsPhone, ua) && !match(amazonPhone, ua) && !match(androidPhone, ua) && (match(amazonTablet, ua) || match(androidTablet, ua)),\n device: !match(windowsPhone, ua) && (match(amazonPhone, ua) || match(amazonTablet, ua) || match(androidPhone, ua) || match(androidTablet, ua)) || match(/\\bokhttp\\b/i, ua)\n },\n windows: {\n phone: match(windowsPhone, ua),\n tablet: match(windowsTablet, ua),\n device: match(windowsPhone, ua) || match(windowsTablet, ua)\n },\n other: {\n blackberry: match(otherBlackberry, ua),\n blackberry10: match(otherBlackberry10, ua),\n opera: match(otherOpera, ua),\n firefox: match(otherFirefox, ua),\n chrome: match(otherChrome, ua),\n device: match(otherBlackberry, ua) || match(otherBlackberry10, ua) || match(otherOpera, ua) || match(otherFirefox, ua) || match(otherChrome, ua)\n },\n\n // Additional\n any: null,\n phone: null,\n tablet: null\n };\n result.any = result.apple.device || result.android.device || result.windows.device || result.other.device;\n\n // excludes 'other' devices and ipods, targeting touchscreen phones\n result.phone = result.apple.phone || result.android.phone || result.windows.phone;\n result.tablet = result.apple.tablet || result.android.tablet || result.windows.tablet;\n\n return result;\n}\n\nvar defaultResult = _extends({}, isMobile(), {\n isMobile: isMobile\n});\n\nexport default defaultResult;","import _typeof from 'babel-runtime/helpers/typeof';\nimport isMobile from './utils/isMobile';\n\nexport function noop() {}\n\nexport function getKeyFromChildrenIndex(child, menuEventKey, index) {\n var prefix = menuEventKey || '';\n return child.key === undefined ? prefix + 'item_' + index : child.key;\n}\n\nexport function getMenuIdFromSubMenuEventKey(eventKey) {\n return eventKey + '-menu-';\n}\n\nexport function loopMenuItem(children, cb) {\n var index = -1;\n children.forEach(function (c) {\n index++;\n if (c && c.type && c.type.isMenuItemGroup) {\n c.$slots['default'].forEach(function (c2) {\n index++;\n c.componentOptions && cb(c2, index);\n });\n } else {\n c.componentOptions && cb(c, index);\n }\n });\n}\n\nexport function loopMenuItemRecursively(children, keys, ret) {\n if (!children || ret.find) {\n return;\n }\n children.forEach(function (c) {\n if (ret.find) {\n return;\n }\n if (c.data && c.data.slot && c.data.slot !== 'default') {\n return;\n }\n if (c && c.componentOptions) {\n var options = c.componentOptions.Ctor.options;\n if (!options || !(options.isSubMenu || options.isMenuItem || options.isMenuItemGroup)) {\n return;\n }\n if (keys.indexOf(c.key) !== -1) {\n ret.find = true;\n } else if (c.componentOptions.children) {\n loopMenuItemRecursively(c.componentOptions.children, keys, ret);\n }\n }\n });\n}\n\nexport var menuAllProps = {\n props: ['defaultSelectedKeys', 'selectedKeys', 'defaultOpenKeys', 'openKeys', 'mode', 'getPopupContainer', 'openTransitionName', 'openAnimation', 'subMenuOpenDelay', 'subMenuCloseDelay', 'forceSubMenuRender', 'triggerSubMenuAction', 'level', 'selectable', 'multiple', 'visible', 'focusable', 'defaultActiveFirst', 'prefixCls', 'inlineIndent', 'parentMenu', 'title', 'rootPrefixCls', 'eventKey', 'active', 'popupAlign', 'popupOffset', 'isOpen', 'renderMenuItem', 'manualRef', 'subMenuKey', 'disabled', 'index', 'isSelected', 'store', 'activeKey', 'builtinPlacements', 'overflowedIndicator',\n\n // the following keys found need to be removed from test regression\n 'attribute', 'value', 'popupClassName', 'inlineCollapsed', 'menu', 'theme', 'itemIcon', 'expandIcon'],\n on: ['select', 'deselect', 'destroy', 'openChange', 'itemHover', 'titleMouseenter', 'titleMouseleave', 'titleClick']\n};\n\n// ref: https://github.com/ant-design/ant-design/issues/14007\n// ref: https://bugs.chromium.org/p/chromium/issues/detail?id=360889\n// getBoundingClientRect return the full precision value, which is\n// not the same behavior as on chrome. Set the precision to 6 to\n// unify their behavior\nexport var getWidth = function getWidth(elem) {\n var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;\n if (width) {\n width = +width.toFixed(6);\n }\n return width || 0;\n};\n\nexport var setStyle = function setStyle(elem, styleProperty, value) {\n if (elem && _typeof(elem.style) === 'object') {\n elem.style[styleProperty] = value;\n }\n};\n\nexport var isMobileDevice = function isMobileDevice() {\n return isMobile.any;\n};","import _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);","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;","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\nfunction _getComputedStyle(elem, name, computedStyle_) {\n var val = '';\n var d = elem.ownerDocument;\n var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX;\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop + which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, extra) {\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue == null || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n }\n\n if (borderBoxValueOrIsBorderBox) {\n var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which);\n return val + (extra === BORDER_INDEX ? 0 : padding);\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay(elem) {\n var val;\n var args = arguments; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value += 'px';\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, val) {\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n}); // 设置 elem 相对 elem.ownerDocument 的坐标\n\nfunction setOffset(elem, offset) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var old = getOffset(elem);\n var ret = {};\n var current;\n var key;\n\n for (key in offset) {\n if (offset.hasOwnProperty(key)) {\n current = parseFloat(css(elem, key)) || 0;\n ret[key] = current + offset[key] - old[key];\n }\n }\n\n css(elem, ret);\n}\n\nvar util = _objectSpread2({\n getWindow: function getWindow(node) {\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n offset: function offset(el, value) {\n if (typeof value !== 'undefined') {\n setOffset(el, value);\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var ret = {};\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (var _i in obj) {\n if (obj.hasOwnProperty(_i)) {\n ret.overflow[_i] = obj.overflow[_i];\n }\n }\n }\n\n return ret;\n },\n scrollLeft: function scrollLeft(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollLeft(w);\n }\n\n window.scrollTo(v, getScrollTop(w));\n } else {\n if (v === undefined) {\n return w.scrollLeft;\n }\n\n w.scrollLeft = v;\n }\n },\n scrollTop: function scrollTop(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollTop(w);\n }\n\n window.scrollTo(getScrollLeft(w), v);\n } else {\n if (v === undefined) {\n return w.scrollTop;\n }\n\n w.scrollTop = v;\n }\n },\n viewportWidth: 0,\n viewportHeight: 0\n}, domUtils);\n\nfunction scrollIntoView(elem, container, config) {\n config = config || {}; // document 归一化到 window\n\n if (container.nodeType === 9) {\n container = util.getWindow(container);\n }\n\n var allowHorizontalScroll = config.allowHorizontalScroll;\n var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n var alignWithTop = config.alignWithTop;\n var alignWithLeft = config.alignWithLeft;\n var offsetTop = config.offsetTop || 0;\n var offsetLeft = config.offsetLeft || 0;\n var offsetBottom = config.offsetBottom || 0;\n var offsetRight = config.offsetRight || 0;\n allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n var isWin = util.isWindow(container);\n var elemOffset = util.offset(elem);\n var eh = util.outerHeight(elem);\n var ew = util.outerWidth(elem);\n var containerOffset;\n var ch;\n var cw;\n var containerScroll;\n var diffTop;\n var diffBottom;\n var win;\n var winScroll;\n var ww;\n var wh;\n\n if (isWin) {\n win = container;\n wh = util.height(win);\n ww = util.width(win);\n winScroll = {\n left: util.scrollLeft(win),\n top: util.scrollTop(win)\n }; // elem 相对 container 可视视窗的距离\n\n diffTop = {\n left: elemOffset.left - winScroll.left - offsetLeft,\n top: elemOffset.top - winScroll.top - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n };\n containerScroll = winScroll;\n } else {\n containerOffset = util.offset(container);\n ch = container.clientHeight;\n cw = container.clientWidth;\n containerScroll = {\n left: container.scrollLeft,\n top: container.scrollTop\n }; // elem 相对 container 可视视窗的距离\n // 注意边框, offset 是边框到根节点\n\n diffTop = {\n left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n };\n }\n\n if (diffTop.top < 0 || diffBottom.top > 0) {\n // 强制向上\n if (alignWithTop === true) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else if (alignWithTop === false) {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n } else {\n // 自动调整\n if (diffTop.top < 0) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n\n if (alignWithTop) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n }\n\n if (allowHorizontalScroll) {\n if (diffTop.left < 0 || diffBottom.left > 0) {\n // 强制向上\n if (alignWithLeft === true) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else if (alignWithLeft === false) {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n } else {\n // 自动调整\n if (diffTop.left < 0) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n\n if (alignWithLeft) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n }\n }\n}\n\nexport default scrollIntoView;\n//# sourceMappingURL=index.js.map\n","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport KeyCode from '../_util/KeyCode';\nimport BaseMixin from '../_util/BaseMixin';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport { connect } from '../_util/store';\nimport { noop, menuAllProps } from './util';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\n\nvar props = {\n attribute: PropTypes.object,\n rootPrefixCls: PropTypes.string,\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n active: PropTypes.bool,\n selectedKeys: PropTypes.array,\n disabled: PropTypes.bool,\n title: PropTypes.any,\n index: PropTypes.number,\n inlineIndent: PropTypes.number.def(24),\n level: PropTypes.number.def(1),\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']).def('vertical'),\n parentMenu: PropTypes.object,\n multiple: PropTypes.bool,\n value: PropTypes.any,\n isSelected: PropTypes.bool,\n manualRef: PropTypes.func.def(noop),\n role: PropTypes.any,\n subMenuKey: PropTypes.string,\n itemIcon: PropTypes.any\n // clearSubMenuTimers: PropTypes.func.def(noop),\n};\nvar MenuItem = {\n name: 'MenuItem',\n props: props,\n mixins: [BaseMixin],\n isMenuItem: true,\n created: function created() {\n this.prevActive = this.active;\n // invoke customized ref to expose component to mixin\n this.callRef();\n },\n updated: function updated() {\n var _this = this;\n\n this.$nextTick(function () {\n var _$props = _this.$props,\n active = _$props.active,\n parentMenu = _$props.parentMenu,\n eventKey = _$props.eventKey;\n\n if (!_this.prevActive && active && (!parentMenu || !parentMenu['scrolled-' + eventKey])) {\n scrollIntoView(_this.$el, _this.parentMenu.$el, {\n onlyScrollIfNeeded: true\n });\n parentMenu['scrolled-' + eventKey] = true;\n } else if (parentMenu && parentMenu['scrolled-' + eventKey]) {\n delete parentMenu['scrolled-' + eventKey];\n }\n _this.prevActive = active;\n });\n this.callRef();\n },\n beforeDestroy: function beforeDestroy() {\n var props = this.$props;\n this.__emit('destroy', props.eventKey);\n },\n\n methods: {\n onKeyDown: function onKeyDown(e) {\n var keyCode = e.keyCode;\n if (keyCode === KeyCode.ENTER) {\n this.onClick(e);\n return true;\n }\n },\n onMouseLeave: function onMouseLeave(e) {\n var eventKey = this.$props.eventKey;\n\n this.__emit('itemHover', {\n key: eventKey,\n hover: false\n });\n this.__emit('mouseleave', {\n key: eventKey,\n domEvent: e\n });\n },\n onMouseEnter: function onMouseEnter(e) {\n var eventKey = this.eventKey;\n\n this.__emit('itemHover', {\n key: eventKey,\n hover: true\n });\n this.__emit('mouseenter', {\n key: eventKey,\n domEvent: e\n });\n },\n onClick: function onClick(e) {\n var _$props2 = this.$props,\n eventKey = _$props2.eventKey,\n multiple = _$props2.multiple,\n isSelected = _$props2.isSelected;\n\n var info = {\n key: eventKey,\n keyPath: [eventKey],\n item: this,\n domEvent: e\n };\n\n this.__emit('click', info);\n if (multiple) {\n if (isSelected) {\n this.__emit('deselect', info);\n } else {\n this.__emit('select', info);\n }\n } else if (!isSelected) {\n this.__emit('select', info);\n }\n },\n getPrefixCls: function getPrefixCls() {\n return this.$props.rootPrefixCls + '-item';\n },\n getActiveClassName: function getActiveClassName() {\n return this.getPrefixCls() + '-active';\n },\n getSelectedClassName: function getSelectedClassName() {\n return this.getPrefixCls() + '-selected';\n },\n getDisabledClassName: function getDisabledClassName() {\n return this.getPrefixCls() + '-disabled';\n },\n callRef: function callRef() {\n if (this.manualRef) {\n this.manualRef(this);\n }\n }\n },\n\n render: function render() {\n var _className;\n\n var h = arguments[0];\n\n var props = _extends({}, this.$props);\n var className = (_className = {}, _defineProperty(_className, this.getPrefixCls(), true), _defineProperty(_className, this.getActiveClassName(), !props.disabled && props.active), _defineProperty(_className, this.getSelectedClassName(), props.isSelected), _defineProperty(_className, this.getDisabledClassName(), props.disabled), _className);\n var attrs = _extends({}, props.attribute, {\n title: props.title,\n role: props.role || 'menuitem',\n 'aria-disabled': props.disabled\n });\n if (props.role === 'option') {\n // overwrite to option\n attrs = _extends({}, attrs, {\n role: 'option',\n 'aria-selected': props.isSelected\n });\n } else if (props.role === null || props.role === 'none') {\n // sometimes we want to specify role inside
  • element\n //
  • Link
  • would be a good example\n // in this case the role on
  • should be \"none\" to\n // remove the implied listitem role.\n // https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html\n attrs.role = 'none';\n }\n // In case that onClick/onMouseLeave/onMouseEnter is passed down from owner\n var mouseEvent = {\n click: props.disabled ? noop : this.onClick,\n mouseleave: props.disabled ? noop : this.onMouseLeave,\n mouseenter: props.disabled ? noop : this.onMouseEnter\n };\n\n var style = {};\n if (props.mode === 'inline') {\n style.paddingLeft = props.inlineIndent * props.level + 'px';\n }\n var listeners = _extends({}, getListeners(this));\n menuAllProps.props.forEach(function (key) {\n return delete props[key];\n });\n menuAllProps.on.forEach(function (key) {\n return delete listeners[key];\n });\n var liProps = {\n attrs: _extends({}, props, attrs),\n on: _extends({}, listeners, mouseEvent)\n };\n return h(\n 'li',\n _mergeJSXProps([liProps, { style: style, 'class': className }]),\n [this.$slots['default'], getComponentFromProp(this, 'itemIcon', props)]\n );\n }\n};\n\nvar connected = connect(function (_ref, _ref2) {\n var activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n active: activeKey[subMenuKey] === eventKey,\n isSelected: selectedKeys.indexOf(eventKey) !== -1\n };\n})(MenuItem);\n\nexport default connected;\nexport { props as menuItemProps };","import _extends from \"babel-runtime/helpers/extends\";\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}","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 PropTypes from '../_util/vue-types';\nexport default {\n prefixCls: PropTypes.string.def('rc-menu'),\n focusable: PropTypes.bool.def(true),\n multiple: PropTypes.bool,\n defaultActiveFirst: PropTypes.bool,\n visible: PropTypes.bool.def(true),\n activeKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).def([]),\n defaultOpenKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).def([]),\n openKeys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n mode: PropTypes.oneOf(['horizontal', 'vertical', 'vertical-left', 'vertical-right', 'inline']).def('vertical'),\n triggerSubMenuAction: PropTypes.string.def('hover'),\n subMenuOpenDelay: PropTypes.number.def(0.1),\n subMenuCloseDelay: PropTypes.number.def(0.1),\n level: PropTypes.number.def(1),\n inlineIndent: PropTypes.number.def(24),\n theme: PropTypes.oneOf(['light', 'dark']).def('light'),\n getPopupContainer: PropTypes.func,\n openTransitionName: PropTypes.string,\n forceSubMenuRender: PropTypes.bool,\n selectable: PropTypes.bool,\n isRootMenu: PropTypes.bool.def(true),\n builtinPlacements: PropTypes.object.def(function () {\n return {};\n }),\n itemIcon: PropTypes.any,\n expandIcon: PropTypes.any,\n overflowedIndicator: PropTypes.any\n};","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../_util/vue-types';\nimport { Provider, create } from '../_util/store';\nimport { default as SubPopupMenu, getActiveKey } from './SubPopupMenu';\nimport BaseMixin from '../_util/BaseMixin';\nimport hasProp, { getOptionProps, getComponentFromProp, filterEmpty, getListeners } from '../_util/props-util';\nimport commonPropsType from './commonPropsType';\n\nvar Menu = {\n name: 'Menu',\n props: _extends({}, commonPropsType, {\n selectable: PropTypes.bool.def(true)\n }),\n mixins: [BaseMixin],\n\n data: function data() {\n var props = getOptionProps(this);\n var selectedKeys = props.defaultSelectedKeys;\n var openKeys = props.defaultOpenKeys;\n if ('selectedKeys' in props) {\n selectedKeys = props.selectedKeys || [];\n }\n if ('openKeys' in props) {\n openKeys = props.openKeys || [];\n }\n\n this.store = create({\n selectedKeys: selectedKeys,\n openKeys: openKeys,\n activeKey: {\n '0-menu-': getActiveKey(_extends({}, props, { children: this.$slots['default'] || [] }), props.activeKey)\n }\n });\n\n // this.isRootMenu = true // 声明在props上\n return {};\n },\n mounted: function mounted() {\n this.updateMiniStore();\n },\n updated: function updated() {\n this.updateMiniStore();\n },\n\n methods: {\n onSelect: function onSelect(selectInfo) {\n var props = this.$props;\n if (props.selectable) {\n // root menu\n var selectedKeys = this.store.getState().selectedKeys;\n var selectedKey = selectInfo.key;\n if (props.multiple) {\n selectedKeys = selectedKeys.concat([selectedKey]);\n } else {\n selectedKeys = [selectedKey];\n }\n if (!hasProp(this, 'selectedKeys')) {\n this.store.setState({\n selectedKeys: selectedKeys\n });\n }\n this.__emit('select', _extends({}, selectInfo, {\n selectedKeys: selectedKeys\n }));\n }\n },\n onClick: function onClick(e) {\n this.__emit('click', e);\n },\n\n // onKeyDown needs to be exposed as a instance method\n // e.g., in rc-select, we need to navigate menu item while\n // current active item is rc-select input box rather than the menu itself\n onKeyDown: function onKeyDown(e, callback) {\n this.$refs.innerMenu.getWrappedInstance().onKeyDown(e, callback);\n },\n onOpenChange: function onOpenChange(event) {\n var openKeys = this.store.getState().openKeys.concat();\n var changed = false;\n var processSingle = function processSingle(e) {\n var oneChanged = false;\n if (e.open) {\n oneChanged = openKeys.indexOf(e.key) === -1;\n if (oneChanged) {\n openKeys.push(e.key);\n }\n } else {\n var index = openKeys.indexOf(e.key);\n oneChanged = index !== -1;\n if (oneChanged) {\n openKeys.splice(index, 1);\n }\n }\n changed = changed || oneChanged;\n };\n if (Array.isArray(event)) {\n // batch change call\n event.forEach(processSingle);\n } else {\n processSingle(event);\n }\n if (changed) {\n if (!hasProp(this, 'openKeys')) {\n this.store.setState({ openKeys: openKeys });\n }\n this.__emit('openChange', openKeys);\n }\n },\n onDeselect: function onDeselect(selectInfo) {\n var props = this.$props;\n if (props.selectable) {\n var selectedKeys = this.store.getState().selectedKeys.concat();\n var selectedKey = selectInfo.key;\n var index = selectedKeys.indexOf(selectedKey);\n if (index !== -1) {\n selectedKeys.splice(index, 1);\n }\n if (!hasProp(this, 'selectedKeys')) {\n this.store.setState({\n selectedKeys: selectedKeys\n });\n }\n this.__emit('deselect', _extends({}, selectInfo, {\n selectedKeys: selectedKeys\n }));\n }\n },\n getOpenTransitionName: function getOpenTransitionName() {\n var props = this.$props;\n var transitionName = props.openTransitionName;\n var animationName = props.openAnimation;\n if (!transitionName && typeof animationName === 'string') {\n transitionName = props.prefixCls + '-open-' + animationName;\n }\n return transitionName;\n },\n updateMiniStore: function updateMiniStore() {\n var props = getOptionProps(this);\n if ('selectedKeys' in props) {\n this.store.setState({\n selectedKeys: props.selectedKeys || []\n });\n }\n if ('openKeys' in props) {\n this.store.setState({\n openKeys: props.openKeys || []\n });\n }\n }\n },\n\n render: function render() {\n var h = arguments[0];\n\n var props = getOptionProps(this);\n var subPopupMenuProps = {\n props: _extends({}, props, {\n itemIcon: getComponentFromProp(this, 'itemIcon', props),\n expandIcon: getComponentFromProp(this, 'expandIcon', props),\n overflowedIndicator: getComponentFromProp(this, 'overflowedIndicator', props) || h('span', ['\\xB7\\xB7\\xB7']),\n openTransitionName: this.getOpenTransitionName(),\n parentMenu: this,\n children: filterEmpty(this.$slots['default'] || [])\n }),\n 'class': props.prefixCls + '-root',\n on: _extends({}, getListeners(this), {\n click: this.onClick,\n openChange: this.onOpenChange,\n deselect: this.onDeselect,\n select: this.onSelect\n }),\n ref: 'innerMenu'\n };\n return h(\n Provider,\n {\n attrs: { store: this.store }\n },\n [h(SubPopupMenu, subPopupMenuProps)]\n );\n }\n};\nexport default Menu;","// based on rc-menu 7.5.5\nimport Menu from './Menu';\nimport SubMenu from './SubMenu';\nimport MenuItem, { menuItemProps } from './MenuItem';\nimport MenuItemGroup from './MenuItemGroup';\nimport Divider from './Divider';\n\nexport { SubMenu, MenuItem as Item, menuItemProps as itemProps, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider };\n\nexport default Menu;","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;","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};","// base in 2.4.1\nimport Dropdown from './Dropdown';\nexport default Dropdown;","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 _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 Checkbox from './Checkbox';\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 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 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 _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;","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;","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};","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页'\n};","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { hasProp, getComponentFromProp, getOptionProps } from '../_util/props-util';\nimport Pager from './Pager';\nimport Options from './Options';\nimport LOCALE from './locale/zh_CN';\nimport KEYCODE from './KeyCode';\n\nfunction noop() {}\n\n// 是否是正整数\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n\nfunction defaultItemRender(page, type, element) {\n return element;\n}\n\nfunction calculatePage(p, state, props) {\n var pageSize = p;\n if (typeof pageSize === 'undefined') {\n pageSize = state.statePageSize;\n }\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\n\nexport default {\n name: 'Pagination',\n mixins: [BaseMixin],\n model: {\n prop: 'current',\n event: 'change.current'\n },\n props: {\n disabled: PropTypes.bool,\n prefixCls: PropTypes.string.def('rc-pagination'),\n selectPrefixCls: PropTypes.string.def('rc-select'),\n current: PropTypes.number,\n defaultCurrent: PropTypes.number.def(1),\n total: PropTypes.number.def(0),\n pageSize: PropTypes.number,\n defaultPageSize: PropTypes.number.def(10),\n hideOnSinglePage: PropTypes.bool.def(false),\n showSizeChanger: PropTypes.bool.def(false),\n showLessItems: PropTypes.bool.def(false),\n // showSizeChange: PropTypes.func.def(noop),\n selectComponentClass: PropTypes.any,\n showPrevNextJumpers: PropTypes.bool.def(true),\n showQuickJumper: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]).def(false),\n showTitle: PropTypes.bool.def(true),\n pageSizeOptions: PropTypes.arrayOf(PropTypes.string),\n buildOptionText: PropTypes.func,\n showTotal: PropTypes.func,\n simple: PropTypes.bool,\n locale: PropTypes.object.def(LOCALE),\n itemRender: PropTypes.func.def(defaultItemRender),\n prevIcon: PropTypes.any,\n nextIcon: PropTypes.any,\n jumpPrevIcon: PropTypes.any,\n jumpNextIcon: PropTypes.any\n },\n data: function data() {\n var props = getOptionProps(this);\n var hasOnChange = this.onChange !== noop;\n var hasCurrent = 'current' in props;\n if (hasCurrent && !hasOnChange) {\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.'); // eslint-disable-line\n }\n var current = this.defaultCurrent;\n if ('current' in props) {\n current = this.current;\n }\n\n var pageSize = this.defaultPageSize;\n if ('pageSize' in props) {\n pageSize = this.pageSize;\n }\n\n current = Math.min(current, calculatePage(pageSize, undefined, props));\n\n return {\n stateCurrent: current,\n stateCurrentInputValue: current,\n statePageSize: pageSize\n };\n },\n\n watch: {\n current: function current(val) {\n this.setState({\n stateCurrent: val,\n stateCurrentInputValue: val\n });\n },\n pageSize: function pageSize(val) {\n var newState = {};\n var current = this.stateCurrent;\n var newCurrent = calculatePage(val, this.$data, this.$props);\n current = current > newCurrent ? newCurrent : current;\n if (!hasProp(this, 'current')) {\n newState.stateCurrent = current;\n newState.stateCurrentInputValue = current;\n }\n newState.statePageSize = val;\n this.setState(newState);\n },\n stateCurrent: function stateCurrent(val, oldValue) {\n var _this = this;\n\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n this.$nextTick(function () {\n if (_this.$refs.paginationNode) {\n var lastCurrentNode = _this.$refs.paginationNode.querySelector('.' + _this.prefixCls + '-item-' + oldValue);\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n });\n },\n total: function total() {\n var newState = {};\n var newCurrent = calculatePage(this.pageSize, this.$data, this.$props);\n if (hasProp(this, 'current')) {\n var current = Math.min(this.current, newCurrent);\n newState.stateCurrent = current;\n newState.stateCurrentInputValue = current;\n } else {\n var _current = this.stateCurrent;\n if (_current === 0 && newCurrent > 0) {\n _current = 1;\n } else {\n _current = Math.min(this.stateCurrent, newCurrent);\n }\n newState.stateCurrent = _current;\n }\n this.setState(newState);\n }\n },\n methods: {\n getJumpPrevPage: function getJumpPrevPage() {\n return Math.max(1, this.stateCurrent - (this.showLessItems ? 3 : 5));\n },\n getJumpNextPage: function getJumpNextPage() {\n return Math.min(calculatePage(undefined, this.$data, this.$props), this.stateCurrent + (this.showLessItems ? 3 : 5));\n },\n getItemIcon: function getItemIcon(icon) {\n var h = this.$createElement;\n var prefixCls = this.$props.prefixCls;\n\n var iconNode = getComponentFromProp(this, icon, this.$props) || h('a', { 'class': prefixCls + '-item-link' });\n return iconNode;\n },\n getValidValue: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.$data, this.$props);\n var stateCurrentInputValue = this.$data.stateCurrentInputValue;\n\n var value = void 0;\n if (inputValue === '') {\n value = inputValue;\n } else if (isNaN(Number(inputValue))) {\n value = stateCurrentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n return value;\n },\n isValid: function isValid(page) {\n return isInteger(page) && page !== this.stateCurrent;\n },\n shouldDisplayQuickJumper: function shouldDisplayQuickJumper() {\n var _$props = this.$props,\n showQuickJumper = _$props.showQuickJumper,\n pageSize = _$props.pageSize,\n total = _$props.total;\n\n if (total <= pageSize) {\n return false;\n }\n return showQuickJumper;\n },\n\n // calculatePage (p) {\n // let pageSize = p\n // if (typeof pageSize === 'undefined') {\n // pageSize = this.statePageSize\n // }\n // return Math.floor((this.total - 1) / pageSize) + 1\n // },\n handleKeyDown: function handleKeyDown(event) {\n if (event.keyCode === KEYCODE.ARROW_UP || event.keyCode === KEYCODE.ARROW_DOWN) {\n event.preventDefault();\n }\n },\n handleKeyUp: function handleKeyUp(e) {\n if (e.isComposing || e.target.composing) return;\n var value = this.getValidValue(e);\n var stateCurrentInputValue = this.stateCurrentInputValue;\n\n if (value !== stateCurrentInputValue) {\n this.setState({\n stateCurrentInputValue: value\n });\n }\n\n if (e.keyCode === KEYCODE.ENTER) {\n this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n this.handleChange(value + 1);\n }\n },\n changePageSize: function changePageSize(size) {\n var current = this.stateCurrent;\n var preCurrent = current;\n var newCurrent = calculatePage(size, this.$data, this.$props);\n current = current > newCurrent ? newCurrent : current;\n // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n if (newCurrent === 0) {\n current = this.stateCurrent;\n }\n if (typeof size === 'number') {\n if (!hasProp(this, 'pageSize')) {\n this.setState({\n statePageSize: size\n });\n }\n if (!hasProp(this, 'current')) {\n this.setState({\n stateCurrent: current,\n stateCurrentInputValue: current\n });\n }\n }\n this.$emit('update:pageSize', size);\n this.$emit('showSizeChange', current, size);\n if (current !== preCurrent) {\n this.$emit('change.current', current, size);\n }\n },\n handleChange: function handleChange(p) {\n var disabled = this.$props.disabled;\n\n var page = p;\n if (this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, this.$data, this.$props);\n if (page > currentPage) {\n page = currentPage;\n } else if (page < 1) {\n page = 1;\n }\n if (!hasProp(this, 'current')) {\n this.setState({\n stateCurrent: page,\n stateCurrentInputValue: page\n });\n }\n // this.$emit('input', page)\n this.$emit('change.current', page, this.statePageSize);\n this.$emit('change', page, this.statePageSize);\n return page;\n }\n return this.stateCurrent;\n },\n prev: function prev() {\n if (this.hasPrev()) {\n this.handleChange(this.stateCurrent - 1);\n }\n },\n next: function next() {\n if (this.hasNext()) {\n this.handleChange(this.stateCurrent + 1);\n }\n },\n jumpPrev: function jumpPrev() {\n this.handleChange(this.getJumpPrevPage());\n },\n jumpNext: function jumpNext() {\n this.handleChange(this.getJumpNextPage());\n },\n hasPrev: function hasPrev() {\n return this.stateCurrent > 1;\n },\n hasNext: function hasNext() {\n return this.stateCurrent < calculatePage(undefined, this.$data, this.$props);\n },\n runIfEnter: function runIfEnter(event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n\n callback.apply(undefined, _toConsumableArray(restParams));\n }\n },\n runIfEnterPrev: function runIfEnterPrev(event) {\n this.runIfEnter(event, this.prev);\n },\n runIfEnterNext: function runIfEnterNext(event) {\n this.runIfEnter(event, this.next);\n },\n runIfEnterJumpPrev: function runIfEnterJumpPrev(event) {\n this.runIfEnter(event, this.jumpPrev);\n },\n runIfEnterJumpNext: function runIfEnterJumpNext(event) {\n this.runIfEnter(event, this.jumpNext);\n },\n handleGoTO: function handleGoTO(event) {\n if (event.keyCode === KEYCODE.ENTER || event.type === 'click') {\n this.handleChange(this.stateCurrentInputValue);\n }\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n disabled = _$props2.disabled;\n\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n\n if (this.hideOnSinglePage === true && this.total <= this.statePageSize) {\n return null;\n }\n var props = this.$props;\n var locale = this.locale;\n\n var allPages = calculatePage(undefined, this.$data, this.$props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = this.showQuickJumper && this.showQuickJumper.goButton;\n var pageBufferSize = this.showLessItems ? 1 : 2;\n var stateCurrent = this.stateCurrent,\n statePageSize = this.statePageSize;\n\n var prevPage = stateCurrent - 1 > 0 ? stateCurrent - 1 : 0;\n var nextPage = stateCurrent + 1 < allPages ? stateCurrent + 1 : allPages;\n\n if (this.simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = h(\n 'button',\n {\n attrs: { type: 'button' },\n on: {\n 'click': this.handleGoTO,\n 'keyup': this.handleGoTO\n }\n },\n [locale.jump_to_confirm]\n );\n } else {\n gotoButton = h(\n 'span',\n {\n on: {\n 'click': this.handleGoTO,\n 'keyup': this.handleGoTO\n }\n },\n [goButton]\n );\n }\n gotoButton = h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? '' + locale.jump_to + this.stateCurrent + '/' + allPages : null\n },\n 'class': prefixCls + '-simple-pager'\n },\n [gotoButton]\n );\n }\n var hasPrev = this.hasPrev();\n var hasNext = this.hasNext();\n return h(\n 'ul',\n { 'class': prefixCls + ' ' + prefixCls + '-simple' },\n [h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.prev_page : null,\n\n tabIndex: hasPrev ? 0 : null,\n\n 'aria-disabled': !this.hasPrev()\n },\n on: {\n 'click': this.prev,\n 'keypress': this.runIfEnterPrev\n },\n\n 'class': (hasPrev ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-prev' },\n [this.itemRender(prevPage, 'prev', this.getItemIcon('prevIcon'))]\n ), h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? stateCurrent + '/' + allPages : null\n },\n 'class': prefixCls + '-simple-pager'\n },\n [h('input', _mergeJSXProps([{\n attrs: {\n type: 'text',\n\n size: '3'\n },\n domProps: {\n 'value': this.stateCurrentInputValue\n },\n on: {\n 'keydown': this.handleKeyDown,\n 'keyup': this.handleKeyUp,\n 'input': this.handleKeyUp\n }\n }, {\n directives: [{\n name: 'ant-input'\n }]\n }])), h(\n 'span',\n { 'class': prefixCls + '-slash' },\n ['\\uFF0F']\n ), allPages]\n ), h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.next_page : null,\n\n tabIndex: this.hasNext ? 0 : null,\n\n 'aria-disabled': !this.hasNext()\n },\n on: {\n 'click': this.next,\n 'keypress': this.runIfEnterNext\n },\n\n 'class': (hasNext ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-next' },\n [this.itemRender(nextPage, 'next', this.getItemIcon('nextIcon'))]\n ), gotoButton]\n );\n }\n if (allPages <= 5 + pageBufferSize * 2) {\n var pagerProps = {\n props: {\n locale: locale,\n rootPrefixCls: prefixCls,\n showTitle: props.showTitle,\n itemRender: props.itemRender\n },\n on: {\n click: this.handleChange,\n keypress: this.runIfEnter\n }\n };\n if (!allPages) {\n pagerList.push(h(Pager, _mergeJSXProps([pagerProps, { key: 'noPager', attrs: { page: allPages },\n 'class': prefixCls + '-disabled' }])));\n }\n for (var i = 1; i <= allPages; i++) {\n var active = stateCurrent === i;\n pagerList.push(h(Pager, _mergeJSXProps([pagerProps, { key: i, attrs: { page: i, active: active }\n }])));\n }\n } else {\n var prevItemTitle = this.showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = this.showLessItems ? locale.next_3 : locale.next_5;\n if (this.showPrevNextJumpers) {\n var jumpPrevClassString = prefixCls + '-jump-prev';\n if (props.jumpPrevIcon) {\n jumpPrevClassString += ' ' + prefixCls + '-jump-prev-custom-icon';\n }\n jumpPrev = h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? prevItemTitle : null,\n\n tabIndex: '0'\n },\n key: 'prev',\n on: {\n 'click': this.jumpPrev,\n 'keypress': this.runIfEnterJumpPrev\n },\n\n 'class': jumpPrevClassString\n },\n [this.itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon('jumpPrevIcon'))]\n );\n var jumpNextClassString = prefixCls + '-jump-next';\n if (props.jumpNextIcon) {\n jumpNextClassString += ' ' + prefixCls + '-jump-next-custom-icon';\n }\n jumpNext = h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? nextItemTitle : null,\n\n tabIndex: '0'\n },\n key: 'next', on: {\n 'click': this.jumpNext,\n 'keypress': this.runIfEnterJumpNext\n },\n\n 'class': jumpNextClassString\n },\n [this.itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon('jumpNextIcon'))]\n );\n }\n\n lastPager = h(Pager, {\n attrs: {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n\n page: allPages,\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: allPages });\n firstPager = h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: 1,\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: 1 });\n\n var left = Math.max(1, stateCurrent - pageBufferSize);\n var right = Math.min(stateCurrent + pageBufferSize, allPages);\n\n if (stateCurrent - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n\n if (allPages - stateCurrent <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n\n for (var _i = left; _i <= right; _i++) {\n var _active = stateCurrent === _i;\n pagerList.push(h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: _i,\n active: _active,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: _i }));\n }\n\n if (stateCurrent - 1 >= pageBufferSize * 2 && stateCurrent !== 1 + 2) {\n pagerList[0] = h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: left,\n\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: left, 'class': prefixCls + '-item-after-jump-prev' });\n pagerList.unshift(jumpPrev);\n }\n if (allPages - stateCurrent >= pageBufferSize * 2 && stateCurrent !== allPages - 2) {\n pagerList[pagerList.length - 1] = h(Pager, {\n attrs: {\n locale: locale,\n rootPrefixCls: prefixCls,\n\n page: right,\n\n active: false,\n showTitle: this.showTitle,\n itemRender: this.itemRender\n },\n on: {\n 'click': this.handleChange,\n 'keypress': this.runIfEnter\n },\n\n key: right, 'class': prefixCls + '-item-before-jump-next' });\n pagerList.push(jumpNext);\n }\n\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n\n var totalText = null;\n\n if (this.showTotal) {\n totalText = h(\n 'li',\n { 'class': prefixCls + '-total-text' },\n [this.showTotal(this.total, [this.total === 0 ? 0 : (stateCurrent - 1) * statePageSize + 1, stateCurrent * statePageSize > this.total ? this.total : stateCurrent * statePageSize])]\n );\n }\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n var buildOptionText = this.buildOptionText || this.$scopedSlots.buildOptionText;\n return h(\n 'ul',\n {\n 'class': (_ref = {}, _defineProperty(_ref, '' + prefixCls, true), _defineProperty(_ref, prefixCls + '-disabled', disabled), _ref),\n attrs: { unselectable: 'unselectable'\n },\n ref: 'paginationNode'\n },\n [totalText, h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.prev_page : null,\n\n tabIndex: prevDisabled ? null : 0,\n\n 'aria-disabled': prevDisabled\n },\n on: {\n 'click': this.prev,\n 'keypress': this.runIfEnterPrev\n },\n\n 'class': (!prevDisabled ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-prev' },\n [this.itemRender(prevPage, 'prev', this.getItemIcon('prevIcon'))]\n ), pagerList, h(\n 'li',\n {\n attrs: {\n title: this.showTitle ? locale.next_page : null,\n\n tabIndex: nextDisabled ? null : 0,\n\n 'aria-disabled': nextDisabled\n },\n on: {\n 'click': this.next,\n 'keypress': this.runIfEnterNext\n },\n\n 'class': (!nextDisabled ? '' : prefixCls + '-disabled') + ' ' + prefixCls + '-next' },\n [this.itemRender(nextPage, 'next', this.getItemIcon('nextIcon'))]\n ), h(Options, {\n attrs: {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: this.selectComponentClass,\n selectPrefixCls: this.selectPrefixCls,\n changeSize: this.showSizeChanger ? this.changePageSize : null,\n current: stateCurrent,\n pageSize: statePageSize,\n pageSizeOptions: this.pageSizeOptions,\n buildOptionText: buildOptionText || null,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }\n })]\n );\n }\n};","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};","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 _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};","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;","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 _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 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 _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 _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport T from './Table';\nimport ref from 'vue-ref';\nimport Vue from 'vue';\nimport { getOptionProps, getKey, getClass, getStyle, getEvents, getSlotOptions, camelize, getSlots, getListeners } from '../_util/props-util';\nimport Base from '../base';\n\nVue.use(ref, { name: 'ant-ref' });\n\nvar Table = {\n name: 'ATable',\n Column: T.Column,\n ColumnGroup: T.ColumnGroup,\n props: T.props,\n methods: {\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 /*\n Convert events on template Column to function props onPropAbcChange in Table.columns prop.\n If you write template code like below:\n \n You will get these events:\n {\n 'prop-abc-change': this.f1,\n 'update:prop-abc': [this.f2, e => this.dataAbc = e],\n 'update:propAbc': e => this.dataAbc = e,\n }\n All of these events would be treat as column.onPropAbcChange,\n but only one of them will be valid, which can not be determined.\n */\n var k = void 0;\n if (e.startsWith('update:')) {\n k = 'on-' + e.substr('update:'.length) + '-change';\n } else {\n k = 'on-' + e;\n }\n listeners[camelize(k)] = events[e];\n });\n\n var _getSlots = getSlots(element),\n children = _getSlots['default'],\n restSlots = _objectWithoutProperties(_getSlots, ['default']);\n\n var column = _extends({}, restSlots, props, { style: style, 'class': cls }, listeners);\n if (key) {\n column.key = key;\n }\n if (getSlotOptions(element).__ANT_TABLE_COLUMN_GROUP) {\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 updateColumns: function updateColumns() {\n var _this2 = this;\n\n var cols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var columns = [];\n var $slots = this.$slots,\n $scopedSlots = this.$scopedSlots;\n\n cols.forEach(function (col) {\n var _col$slots = col.slots,\n slots = _col$slots === undefined ? {} : _col$slots,\n _col$scopedSlots = col.scopedSlots,\n scopedSlots = _col$scopedSlots === undefined ? {} : _col$scopedSlots,\n restProps = _objectWithoutProperties(col, ['slots', 'scopedSlots']);\n\n var column = _extends({}, restProps);\n Object.keys(slots).forEach(function (key) {\n var name = slots[key];\n if (column[key] === undefined && $slots[name]) {\n column[key] = $slots[name].length === 1 ? $slots[name][0] : $slots[name];\n }\n });\n Object.keys(scopedSlots).forEach(function (key) {\n var name = scopedSlots[key];\n if (column[key] === undefined && $scopedSlots[name]) {\n column[key] = $scopedSlots[name];\n }\n });\n // if (slotScopeName && $scopedSlots[slotScopeName]) {\n // column.customRender = column.customRender || $scopedSlots[slotScopeName]\n // }\n if (col.children) {\n column.children = _this2.updateColumns(column.children);\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 $scopedSlots = this.$scopedSlots;\n\n var props = getOptionProps(this);\n var columns = props.columns ? this.updateColumns(props.columns) : normalize($slots['default']);\n var title = props.title,\n footer = props.footer;\n var slotTitle = $scopedSlots.title,\n slotFooter = $scopedSlots.footer,\n _$scopedSlots$expande = $scopedSlots.expandedRowRender,\n expandedRowRender = _$scopedSlots$expande === undefined ? props.expandedRowRender : _$scopedSlots$expande,\n expandIcon = $scopedSlots.expandIcon;\n\n title = title || slotTitle;\n footer = footer || slotFooter;\n var tProps = {\n props: _extends({}, props, {\n columns: columns,\n title: title,\n footer: footer,\n expandedRowRender: expandedRowRender,\n expandIcon: this.$props.expandIcon || expandIcon\n }),\n on: getListeners(this)\n };\n return h(T, tProps);\n }\n};\n/* istanbul ignore next */\nTable.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Table.name, Table);\n Vue.component(Table.Column.name, Table.Column);\n Vue.component(Table.ColumnGroup.name, Table.ColumnGroup);\n};\n\nexport default Table;","import _extends from 'babel-runtime/helpers/extends';\nimport Tooltip from '../tooltip';\nimport abstractTooltipProps from '../tooltip/abstractTooltipProps';\nimport PropTypes from '../_util/vue-types';\nimport { getOptionProps, getComponentFromProp, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Base from '../base';\n\nvar props = abstractTooltipProps();\nvar Popover = {\n name: 'APopover',\n props: _extends({}, props, {\n prefixCls: PropTypes.string,\n transitionName: PropTypes.string.def('zoom-big'),\n content: PropTypes.any,\n title: PropTypes.any\n }),\n model: {\n prop: 'visible',\n event: 'visibleChange'\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n methods: {\n getPopupDomNode: function getPopupDomNode() {\n return this.$refs.tooltip.getPopupDomNode();\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var title = this.title,\n customizePrefixCls = this.prefixCls,\n $slots = this.$slots;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n\n var props = getOptionProps(this);\n delete props.title;\n delete props.content;\n var tooltipProps = {\n props: _extends({}, props, {\n prefixCls: prefixCls\n }),\n ref: 'tooltip',\n on: getListeners(this)\n };\n return h(\n Tooltip,\n tooltipProps,\n [h(\n 'template',\n { slot: 'title' },\n [h('div', [(title || $slots.title) && h(\n 'div',\n { 'class': prefixCls + '-title' },\n [getComponentFromProp(this, 'title')]\n ), h(\n 'div',\n { 'class': prefixCls + '-inner-content' },\n [getComponentFromProp(this, 'content')]\n )])]\n ), this.$slots['default']]\n );\n }\n};\n\n/* istanbul ignore next */\nPopover.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Popover.name, Popover);\n};\n\nexport default Popover;","var cached = void 0;\n\nexport default function getScrollBarSize(fresh) {\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n\n outerStyle.position = 'absolute';\n outerStyle.top = 0;\n outerStyle.left = 0;\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n\n outer.appendChild(inner);\n\n document.body.appendChild(outer);\n\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n\n cached = widthContained - widthScroll;\n }\n return cached;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\n\nvar IProps = {\n width: PropTypes.any,\n height: PropTypes.any,\n defaultOpen: PropTypes.bool,\n firstEnter: PropTypes.bool,\n open: PropTypes.bool,\n prefixCls: PropTypes.string,\n placement: PropTypes.string,\n level: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n levelMove: PropTypes.oneOfType([PropTypes.number, PropTypes.func, PropTypes.array]),\n ease: PropTypes.string,\n duration: PropTypes.string,\n handler: PropTypes.any,\n showMask: PropTypes.bool,\n maskStyle: PropTypes.object,\n className: PropTypes.string,\n wrapStyle: PropTypes.object,\n maskClosable: PropTypes.bool,\n afterVisibleChange: PropTypes.func,\n keyboard: PropTypes.bool\n};\n\nvar IDrawerProps = _extends({}, IProps, {\n wrapperClassName: PropTypes.string,\n forceRender: PropTypes.bool,\n getContainer: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object, PropTypes.bool])\n});\n\nvar IDrawerChildProps = _extends({}, IProps, {\n getContainer: PropTypes.func,\n getOpenCount: PropTypes.func,\n switchScrollingEffect: PropTypes.func\n});\n\nexport { IDrawerProps, IDrawerChildProps };","export function dataToArray(vars) {\n if (Array.isArray(vars)) {\n return vars;\n }\n return [vars];\n}\nvar transitionEndObject = {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend'\n};\nexport var transitionStr = Object.keys(transitionEndObject).filter(function (key) {\n if (typeof document === 'undefined') {\n return false;\n }\n var html = document.getElementsByTagName('html')[0];\n return key in (html ? html.style : {});\n})[0];\nexport var transitionEnd = transitionEndObject[transitionStr];\n\nexport function addEventListener(target, eventType, callback, options) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, options);\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n }\n}\n\nexport function removeEventListener(target, eventType, callback, options) {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback, options);\n } else if (target.attachEvent) {\n target.detachEvent('on' + eventType, callback);\n }\n}\n\nexport function transformArguments(arg, cb) {\n var result = void 0;\n if (typeof arg === 'function') {\n result = arg(cb);\n } else {\n result = arg;\n }\n if (Array.isArray(result)) {\n if (result.length === 2) {\n return result;\n }\n return [result[0], result[1]];\n }\n return [result];\n}\n\nexport var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value); // eslint-disable-line\n};\n\nexport var windowIsUndefined = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var getTouchParentScroll = function getTouchParentScroll(root, currentTarget, differX, differY) {\n if (!currentTarget || currentTarget === document || currentTarget instanceof Document) {\n return false;\n }\n // root 为 drawer-content 设定了 overflow, 判断为 root 的 parent 时结束滚动;\n if (currentTarget === root.parentNode) {\n return true;\n }\n\n var isY = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differY);\n var isX = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differX);\n\n var scrollY = currentTarget.scrollHeight - currentTarget.clientHeight;\n var scrollX = currentTarget.scrollWidth - currentTarget.clientWidth;\n\n var style = document.defaultView.getComputedStyle(currentTarget);\n var overflowY = style.overflowY === 'auto' || style.overflowY === 'scroll';\n var overflowX = style.overflowX === 'auto' || style.overflowX === 'scroll';\n\n var y = scrollY && overflowY;\n var x = scrollX && overflowX;\n\n if (isY && (!y || y && (currentTarget.scrollTop >= scrollY && differY < 0 || currentTarget.scrollTop <= 0 && differY > 0)) || isX && (!x || x && (currentTarget.scrollLeft >= scrollX && scrollX < 0 || currentTarget.scrollLeft <= 0 && scrollX > 0))) {\n return getTouchParentScroll(root, currentTarget.parentNode, differX, differY);\n }\n return false;\n};","import PropTypes from './vue-types';\nimport { cloneElement } from './vnode';\n\nexport default {\n name: 'Portal',\n props: {\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.any.isRequired,\n didUpdate: PropTypes.func\n },\n mounted: function mounted() {\n this.createContainer();\n },\n updated: function updated() {\n var _this = this;\n\n var didUpdate = this.$props.didUpdate;\n\n if (didUpdate) {\n this.$nextTick(function () {\n didUpdate(_this.$props);\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeContainer();\n },\n\n methods: {\n createContainer: function createContainer() {\n this._container = this.$props.getContainer();\n this.$forceUpdate();\n },\n removeContainer: function removeContainer() {\n if (this._container && this._container.parentNode) {\n this._container.parentNode.removeChild(this._container);\n }\n }\n },\n\n render: function render() {\n if (this._container) {\n return cloneElement(this.$props.children, {\n directives: [{\n name: 'ant-portal',\n value: this._container\n }]\n });\n }\n return null;\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { initDefaultProps, getEvents, getListeners } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport getScrollBarSize from '../../_util/getScrollBarSize';\nimport { IDrawerProps } from './IDrawerPropTypes';\nimport KeyCode from '../../_util/KeyCode';\nimport { dataToArray, transitionEnd, transitionStr, addEventListener, removeEventListener, transformArguments, isNumeric } from './utils';\nimport Portal from '../../_util/Portal';\n\nfunction noop() {}\n\nvar currentDrawer = {};\nvar windowIsUndefined = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nVue.use(ref, { name: 'ant-ref' });\nvar Drawer = {\n mixins: [BaseMixin],\n props: initDefaultProps(IDrawerProps, {\n prefixCls: 'drawer',\n placement: 'left',\n getContainer: 'body',\n level: 'all',\n duration: '.3s',\n ease: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n firstEnter: false, // 记录首次进入.\n showMask: true,\n handler: true,\n maskStyle: {},\n wrapperClassName: '',\n className: ''\n }),\n data: function data() {\n this.levelDom = [];\n this.contentDom = null;\n this.maskDom = null;\n this.handlerdom = null;\n this.mousePos = null;\n this.sFirstEnter = this.firstEnter;\n this.timeout = null;\n this.children = null;\n this.drawerId = Number((Date.now() + Math.random()).toString().replace('.', Math.round(Math.random() * 9))).toString(16);\n var open = this.open !== undefined ? this.open : !!this.defaultOpen;\n currentDrawer[this.drawerId] = open;\n this.orignalOpen = this.open;\n this.preProps = _extends({}, this.$props);\n return {\n sOpen: open\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (!windowIsUndefined) {\n var passiveSupported = false;\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function get() {\n passiveSupported = true;\n return null;\n }\n }));\n _this.passive = passiveSupported ? { passive: false } : false;\n }\n var open = _this.getOpen();\n if (_this.handler || open || _this.sFirstEnter) {\n _this.getDefault(_this.$props);\n if (open) {\n _this.isOpenChange = true;\n _this.$nextTick(function () {\n _this.domFocus();\n });\n }\n _this.$forceUpdate();\n }\n });\n },\n\n watch: {\n open: function (_open) {\n function open(_x) {\n return _open.apply(this, arguments);\n }\n\n open.toString = function () {\n return _open.toString();\n };\n\n return open;\n }(function (val) {\n var _this2 = this;\n\n if (val !== undefined && val !== this.preProps.open) {\n this.isOpenChange = true;\n // 没渲染 dom 时,获取默认数据;\n if (!this.container) {\n this.getDefault(this.$props);\n }\n this.setState({\n sOpen: open\n });\n }\n this.preProps.open = val;\n if (val) {\n this.$nextTick(function () {\n _this2.domFocus();\n });\n }\n }),\n placement: function placement(val) {\n if (val !== this.preProps.placement) {\n // test 的 bug, 有动画过场,删除 dom\n this.contentDom = null;\n }\n this.preProps.placement = val;\n },\n level: function level(val) {\n if (this.preProps.level !== val) {\n this.getParentAndLevelDom(this.$props);\n }\n this.preProps.level = val;\n }\n },\n updated: function updated() {\n var _this3 = this;\n\n this.$nextTick(function () {\n // dom 没渲染时,重走一遍。\n if (!_this3.sFirstEnter && _this3.container) {\n _this3.$forceUpdate();\n _this3.sFirstEnter = true;\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n delete currentDrawer[this.drawerId];\n delete this.isOpenChange;\n if (this.container) {\n if (this.sOpen) {\n this.setLevelDomTransform(false, true);\n }\n document.body.style.overflow = '';\n }\n this.sFirstEnter = false;\n clearTimeout(this.timeout);\n },\n\n methods: {\n domFocus: function domFocus() {\n if (this.dom) {\n this.dom.focus();\n }\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n this.$emit('close', e);\n }\n },\n onMaskTouchEnd: function onMaskTouchEnd(e) {\n this.$emit('close', e);\n this.onTouchEnd(e, true);\n },\n onIconTouchEnd: function onIconTouchEnd(e) {\n this.$emit('handleClick', e);\n this.onTouchEnd(e);\n },\n onTouchEnd: function onTouchEnd(e, close) {\n if (this.open !== undefined) {\n return;\n }\n var open = close || this.sOpen;\n this.isOpenChange = true;\n this.setState({\n sOpen: !open\n });\n },\n onWrapperTransitionEnd: function onWrapperTransitionEnd(e) {\n if (e.target === this.contentWrapper && e.propertyName.match(/transform$/)) {\n var _open2 = this.getOpen();\n this.dom.style.transition = '';\n if (!_open2 && this.getCurrentDrawerSome()) {\n document.body.style.overflowX = '';\n if (this.maskDom) {\n this.maskDom.style.left = '';\n this.maskDom.style.width = '';\n }\n }\n if (this.afterVisibleChange) {\n this.afterVisibleChange(!!_open2);\n }\n }\n },\n getDefault: function getDefault(props) {\n this.getParentAndLevelDom(props);\n if (props.getContainer || props.parent) {\n this.container = this.defaultGetContainer();\n }\n },\n getCurrentDrawerSome: function getCurrentDrawerSome() {\n return !Object.keys(currentDrawer).some(function (key) {\n return currentDrawer[key];\n });\n },\n getSelfContainer: function getSelfContainer() {\n return this.container;\n },\n getParentAndLevelDom: function getParentAndLevelDom(props) {\n var _this4 = this;\n\n if (windowIsUndefined) {\n return;\n }\n var level = props.level,\n getContainer = props.getContainer;\n\n this.levelDom = [];\n if (getContainer) {\n if (typeof getContainer === 'string') {\n var dom = document.querySelectorAll(getContainer)[0];\n this.parent = dom;\n }\n if (typeof getContainer === 'function') {\n this.parent = getContainer();\n }\n if ((typeof getContainer === 'undefined' ? 'undefined' : _typeof(getContainer)) === 'object' && getContainer instanceof window.HTMLElement) {\n this.parent = getContainer;\n }\n }\n if (!getContainer && this.container) {\n this.parent = this.container.parentNode;\n }\n if (level === 'all') {\n var children = Array.prototype.slice.call(this.parent.children);\n children.forEach(function (child) {\n if (child.nodeName !== 'SCRIPT' && child.nodeName !== 'STYLE' && child.nodeName !== 'LINK' && child !== _this4.container) {\n _this4.levelDom.push(child);\n }\n });\n } else if (level) {\n dataToArray(level).forEach(function (key) {\n document.querySelectorAll(key).forEach(function (item) {\n _this4.levelDom.push(item);\n });\n });\n }\n },\n setLevelDomTransform: function setLevelDomTransform(open, openTransition, placementName, value) {\n var _this5 = this;\n\n var _$props = this.$props,\n placement = _$props.placement,\n levelMove = _$props.levelMove,\n duration = _$props.duration,\n ease = _$props.ease,\n getContainer = _$props.getContainer;\n\n if (!windowIsUndefined) {\n this.levelDom.forEach(function (dom) {\n if (_this5.isOpenChange || openTransition) {\n /* eslint no-param-reassign: \"error\" */\n dom.style.transition = 'transform ' + duration + ' ' + ease;\n addEventListener(dom, transitionEnd, _this5.trnasitionEnd);\n var levelValue = open ? value : 0;\n if (levelMove) {\n var $levelMove = transformArguments(levelMove, { target: dom, open: open });\n levelValue = open ? $levelMove[0] : $levelMove[1] || 0;\n }\n var $value = typeof levelValue === 'number' ? levelValue + 'px' : levelValue;\n var placementPos = placement === 'left' || placement === 'top' ? $value : '-' + $value;\n dom.style.transform = levelValue ? placementName + '(' + placementPos + ')' : '';\n dom.style.msTransform = levelValue ? placementName + '(' + placementPos + ')' : '';\n }\n });\n // 处理 body 滚动\n if (getContainer === 'body') {\n var eventArray = ['touchstart'];\n var domArray = [document.body, this.maskDom, this.handlerdom, this.contentDom];\n var right = document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth ? getScrollBarSize(1) : 0;\n var widthTransition = 'width ' + duration + ' ' + ease;\n var trannsformTransition = 'transform ' + duration + ' ' + ease;\n if (open && document.body.style.overflow !== 'hidden') {\n document.body.style.overflow = 'hidden';\n if (right) {\n document.body.style.position = 'relative';\n document.body.style.width = 'calc(100% - ' + right + 'px)';\n this.dom.style.transition = 'none';\n switch (placement) {\n case 'right':\n this.dom.style.transform = 'translateX(-' + right + 'px)';\n this.dom.style.msTransform = 'translateX(-' + right + 'px)';\n break;\n case 'top':\n case 'bottom':\n this.dom.style.width = 'calc(100% - ' + right + 'px)';\n this.dom.style.transform = 'translateZ(0)';\n break;\n default:\n break;\n }\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n _this5.dom.style.transition = trannsformTransition + ',' + widthTransition;\n _this5.dom.style.width = '';\n _this5.dom.style.transform = '';\n _this5.dom.style.msTransform = '';\n });\n }\n // 手机禁滚\n domArray.forEach(function (item, i) {\n if (!item) {\n return;\n }\n addEventListener(item, eventArray[i] || 'touchmove', i ? _this5.removeMoveHandler : _this5.removeStartHandler, _this5.passive);\n });\n } else if (this.getCurrentDrawerSome()) {\n document.body.style.overflow = '';\n if ((this.isOpenChange || openTransition) && right) {\n document.body.style.position = '';\n document.body.style.width = '';\n if (transitionStr) {\n document.body.style.overflowX = 'hidden';\n }\n this.dom.style.transition = 'none';\n var heightTransition = void 0;\n switch (placement) {\n case 'right':\n {\n this.dom.style.transform = 'translateX(' + right + 'px)';\n this.dom.style.msTransform = 'translateX(' + right + 'px)';\n this.dom.style.width = '100%';\n widthTransition = 'width 0s ' + ease + ' ' + duration;\n if (this.maskDom) {\n this.maskDom.style.left = '-' + right + 'px';\n this.maskDom.style.width = 'calc(100% + ' + right + 'px)';\n }\n break;\n }\n case 'top':\n case 'bottom':\n {\n this.dom.style.width = 'calc(100% + ' + right + 'px)';\n this.dom.style.height = '100%';\n this.dom.style.transform = 'translateZ(0)';\n heightTransition = 'height 0s ' + ease + ' ' + duration;\n break;\n }\n default:\n break;\n }\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n _this5.dom.style.transition = trannsformTransition + ',' + (heightTransition ? heightTransition + ',' : '') + widthTransition;\n _this5.dom.style.transform = '';\n _this5.dom.style.msTransform = '';\n _this5.dom.style.width = '';\n _this5.dom.style.height = '';\n });\n }\n domArray.forEach(function (item, i) {\n if (!item) {\n return;\n }\n removeEventListener(item, eventArray[i] || 'touchmove', i ? _this5.removeMoveHandler : _this5.removeStartHandler, _this5.passive);\n });\n }\n }\n }\n\n var _getListeners = getListeners(this),\n change = _getListeners.change;\n\n if (change && this.isOpenChange && this.sFirstEnter) {\n change(open);\n this.isOpenChange = false;\n }\n },\n getChildToRender: function getChildToRender(open) {\n var _classnames,\n _this6 = this;\n\n var h = this.$createElement;\n var _$props2 = this.$props,\n className = _$props2.className,\n prefixCls = _$props2.prefixCls,\n placement = _$props2.placement,\n handler = _$props2.handler,\n showMask = _$props2.showMask,\n maskStyle = _$props2.maskStyle,\n width = _$props2.width,\n height = _$props2.height,\n wrapStyle = _$props2.wrapStyle,\n keyboard = _$props2.keyboard,\n maskClosable = _$props2.maskClosable;\n\n var children = this.$slots['default'];\n var wrapperClassname = classnames(prefixCls, (_classnames = {}, _defineProperty(_classnames, prefixCls + '-' + placement, true), _defineProperty(_classnames, prefixCls + '-open', open), _defineProperty(_classnames, className, !!className), _defineProperty(_classnames, 'no-mask', !showMask), _classnames));\n var isOpenChange = this.isOpenChange;\n var isHorizontal = placement === 'left' || placement === 'right';\n var placementName = 'translate' + (isHorizontal ? 'X' : 'Y');\n // 百分比与像素动画不同步,第一次打用后全用像素动画。\n // const defaultValue = !this.contentDom || !level ? '100%' : `${value}px`;\n var placementPos = placement === 'left' || placement === 'top' ? '-100%' : '100%';\n var transform = open ? '' : placementName + '(' + placementPos + ')';\n if (isOpenChange === undefined || isOpenChange) {\n var contentValue = this.contentDom ? this.contentDom.getBoundingClientRect()[isHorizontal ? 'width' : 'height'] : 0;\n var value = (isHorizontal ? width : height) || contentValue;\n this.setLevelDomTransform(open, false, placementName, value);\n }\n var handlerChildren = void 0;\n if (handler !== false) {\n var handlerDefalut = h(\n 'div',\n { 'class': 'drawer-handle' },\n [h('i', { 'class': 'drawer-handle-icon' })]\n );\n var handlerSlot = this.handler;\n\n var handlerSlotVnode = handlerSlot && handlerSlot[0] || handlerDefalut;\n\n var _getEvents = getEvents(handlerSlotVnode),\n handleIconClick = _getEvents.click;\n\n handlerChildren = cloneElement(handlerSlotVnode, {\n on: {\n click: function click(e) {\n handleIconClick && handleIconClick();\n _this6.onIconTouchEnd(e);\n }\n },\n directives: [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.handlerdom = c;\n }\n }]\n });\n }\n var domContProps = {\n 'class': wrapperClassname,\n directives: [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.dom = c;\n }\n }],\n on: {\n transitionend: this.onWrapperTransitionEnd,\n keydown: open && keyboard ? this.onKeyDown : noop\n },\n style: wrapStyle\n };\n var directivesMaskDom = [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.maskDom = c;\n }\n }];\n var directivesContentWrapper = [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.contentWrapper = c;\n }\n }];\n var directivesContentDom = [{\n name: 'ant-ref',\n value: function value(c) {\n _this6.contentDom = c;\n }\n }];\n return h(\n 'div',\n _mergeJSXProps([domContProps, {\n attrs: { tabIndex: -1 }\n }]),\n [showMask && h('div', _mergeJSXProps([{\n key: open // 第二次渲染时虚拟DOM没有改变,没有出发dom更新,使用key强制更新 https://github.com/vueComponent/ant-design-vue/issues/2407\n , 'class': prefixCls + '-mask',\n on: {\n 'click': maskClosable ? this.onMaskTouchEnd : noop\n },\n\n style: maskStyle\n }, { directives: directivesMaskDom }])), h(\n 'div',\n _mergeJSXProps([{\n 'class': prefixCls + '-content-wrapper',\n style: {\n transform: transform,\n msTransform: transform,\n width: isNumeric(width) ? width + 'px' : width,\n height: isNumeric(height) ? height + 'px' : height\n }\n }, { directives: directivesContentWrapper }]),\n [h(\n 'div',\n _mergeJSXProps([{\n 'class': prefixCls + '-content'\n }, { directives: directivesContentDom }, {\n on: {\n 'touchstart': open ? this.removeStartHandler : noop,\n 'touchmove': open ? this.removeMoveHandler : noop\n }\n }]),\n [children]\n ), handlerChildren]\n )]\n );\n },\n getOpen: function getOpen() {\n return this.open !== undefined ? this.open : this.sOpen;\n },\n getTouchParentScroll: function getTouchParentScroll(root, currentTarget, differX, differY) {\n if (!currentTarget || currentTarget === document) {\n return false;\n }\n // root 为 drawer-content 设定了 overflow, 判断为 root 的 parent 时结束滚动;\n if (currentTarget === root.parentNode) {\n return true;\n }\n\n var isY = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differY);\n var isX = Math.max(Math.abs(differX), Math.abs(differY)) === Math.abs(differX);\n\n var scrollY = currentTarget.scrollHeight - currentTarget.clientHeight;\n var scrollX = currentTarget.scrollWidth - currentTarget.clientWidth;\n /**\n *
    \n *
    \n *
    \n * 在没设定 overflow: auto 或 scroll 时,currentTarget 里获取不到 scrollTop 或 scrollLeft,\n * 预先用 scrollTo 来滚动,如果取出的值跟滚动前取出不同,则 currnetTarget 被设定了 overflow; 否则就是上面这种。\n */\n var t = currentTarget.scrollTop;\n var l = currentTarget.scrollLeft;\n if (currentTarget.scrollTo) {\n currentTarget.scrollTo(currentTarget.scrollLeft + 1, currentTarget.scrollTop + 1);\n }\n var currentT = currentTarget.scrollTop;\n var currentL = currentTarget.scrollLeft;\n if (currentTarget.scrollTo) {\n currentTarget.scrollTo(currentTarget.scrollLeft - 1, currentTarget.scrollTop - 1);\n }\n if (isY && (!scrollY || !(currentT - t) || scrollY && (currentTarget.scrollTop >= scrollY && differY < 0 || currentTarget.scrollTop <= 0 && differY > 0)) || isX && (!scrollX || !(currentL - l) || scrollX && (currentTarget.scrollLeft >= scrollX && differX < 0 || currentTarget.scrollLeft <= 0 && differX > 0))) {\n return this.getTouchParentScroll(root, currentTarget.parentNode, differX, differY);\n }\n return false;\n },\n removeStartHandler: function removeStartHandler(e) {\n if (e.touches.length > 1) {\n return;\n }\n this.startPos = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n },\n removeMoveHandler: function removeMoveHandler(e) {\n if (e.changedTouches.length > 1) {\n return;\n }\n var currentTarget = e.currentTarget;\n var differX = e.changedTouches[0].clientX - this.startPos.x;\n var differY = e.changedTouches[0].clientY - this.startPos.y;\n if (currentTarget === this.maskDom || currentTarget === this.handlerdom || currentTarget === this.contentDom && this.getTouchParentScroll(currentTarget, e.target, differX, differY)) {\n e.preventDefault();\n }\n },\n trnasitionEnd: function trnasitionEnd(e) {\n removeEventListener(e.target, transitionEnd, this.trnasitionEnd);\n e.target.style.transition = '';\n },\n defaultGetContainer: function defaultGetContainer() {\n if (windowIsUndefined) {\n return null;\n }\n var container = document.createElement('div');\n this.parent.appendChild(container);\n if (this.wrapperClassName) {\n container.className = this.wrapperClassName;\n }\n return container;\n }\n },\n\n render: function render() {\n var _this7 = this;\n\n var h = arguments[0];\n var _$props3 = this.$props,\n getContainer = _$props3.getContainer,\n wrapperClassName = _$props3.wrapperClassName,\n handler = _$props3.handler,\n forceRender = _$props3.forceRender;\n\n var open = this.getOpen();\n var portal = null;\n currentDrawer[this.drawerId] = open ? this.container : open;\n var children = this.getChildToRender(this.sFirstEnter ? open : false);\n if (!getContainer) {\n var directives = [{\n name: 'ant-ref',\n value: function value(c) {\n _this7.container = c;\n }\n }];\n return h(\n 'div',\n _mergeJSXProps([{ 'class': wrapperClassName }, { directives: directives }]),\n [children]\n );\n }\n if (!this.container || !open && !this.sFirstEnter) {\n return null;\n }\n // 如果有 handler 为内置强制渲染;\n var $forceRender = !!handler || forceRender;\n if ($forceRender || open || this.dom) {\n portal = h(Portal, {\n attrs: { getContainer: this.getSelfContainer, children: children }\n });\n }\n return portal;\n }\n};\n\nexport default Drawer;","// base in 1.7.7\n// export this package's api\nimport Drawer from './Drawer';\n\nexport default Drawer;","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 omit from 'omit.js';\nimport VcDrawer from '../vc-drawer/src';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport Icon from '../icon';\nimport { getComponentFromProp, getOptionProps, getListeners } from '../_util/props-util';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Base from '../base';\n\nvar Drawer = {\n name: 'ADrawer',\n props: {\n closable: PropTypes.bool.def(true),\n destroyOnClose: PropTypes.bool,\n getContainer: PropTypes.any,\n maskClosable: PropTypes.bool.def(true),\n mask: PropTypes.bool.def(true),\n maskStyle: PropTypes.object,\n wrapStyle: PropTypes.object,\n bodyStyle: PropTypes.object,\n headerStyle: PropTypes.object,\n drawerStyle: PropTypes.object,\n title: PropTypes.any,\n visible: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).def(256),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).def(256),\n zIndex: PropTypes.number,\n prefixCls: PropTypes.string,\n placement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']).def('right'),\n level: PropTypes.any.def(null),\n wrapClassName: PropTypes.string, // not use class like react, vue will add class to root dom\n handle: PropTypes.any,\n afterVisibleChange: PropTypes.func,\n keyboard: PropTypes.bool.def(true)\n },\n mixins: [BaseMixin],\n data: function data() {\n this.destroyClose = false;\n this.preVisible = this.$props.visible;\n return {\n _push: false\n };\n },\n\n inject: {\n parentDrawer: {\n 'default': function _default() {\n return null;\n }\n },\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n provide: function provide() {\n return {\n parentDrawer: this\n };\n },\n mounted: function mounted() {\n // fix: delete drawer in child and re-render, no push started.\n // {show && }\n var visible = this.visible;\n\n if (visible && this.parentDrawer) {\n this.parentDrawer.push();\n }\n },\n updated: function updated() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.preVisible !== _this.visible && _this.parentDrawer) {\n if (_this.visible) {\n _this.parentDrawer.push();\n } else {\n _this.parentDrawer.pull();\n }\n }\n _this.preVisible = _this.visible;\n });\n },\n beforeDestroy: function beforeDestroy() {\n // unmount drawer in child, clear push.\n if (this.parentDrawer) {\n this.parentDrawer.pull();\n }\n },\n\n methods: {\n domFocus: function domFocus() {\n if (this.$refs.vcDrawer) {\n this.$refs.vcDrawer.domFocus();\n }\n },\n close: function close(e) {\n this.$emit('close', e);\n },\n\n // onMaskClick(e) {\n // if (!this.maskClosable) {\n // return;\n // }\n // this.close(e);\n // },\n push: function push() {\n this.setState({\n _push: true\n });\n },\n pull: function pull() {\n var _this2 = this;\n\n this.setState({\n _push: false\n }, function () {\n _this2.domFocus();\n });\n },\n onDestroyTransitionEnd: function onDestroyTransitionEnd() {\n var isDestroyOnClose = this.getDestroyOnClose();\n if (!isDestroyOnClose) {\n return;\n }\n if (!this.visible) {\n this.destroyClose = true;\n this.$forceUpdate();\n }\n },\n getDestroyOnClose: function getDestroyOnClose() {\n return this.destroyOnClose && !this.visible;\n },\n\n // get drawar push width or height\n getPushTransform: function getPushTransform(placement) {\n if (placement === 'left' || placement === 'right') {\n return 'translateX(' + (placement === 'left' ? 180 : -180) + 'px)';\n }\n if (placement === 'top' || placement === 'bottom') {\n return 'translateY(' + (placement === 'top' ? 180 : -180) + 'px)';\n }\n },\n getRcDrawerStyle: function getRcDrawerStyle() {\n var _$props = this.$props,\n zIndex = _$props.zIndex,\n placement = _$props.placement,\n wrapStyle = _$props.wrapStyle;\n var push = this.$data._push;\n\n return _extends({\n zIndex: zIndex,\n transform: push ? this.getPushTransform(placement) : undefined\n }, wrapStyle);\n },\n renderHeader: function renderHeader(prefixCls) {\n var h = this.$createElement;\n var _$props2 = this.$props,\n closable = _$props2.closable,\n headerStyle = _$props2.headerStyle;\n\n var title = getComponentFromProp(this, 'title');\n if (!title && !closable) {\n return null;\n }\n\n var headerClassName = title ? prefixCls + '-header' : prefixCls + '-header-no-title';\n return h(\n 'div',\n { 'class': headerClassName, style: headerStyle },\n [title && h(\n 'div',\n { 'class': prefixCls + '-title' },\n [title]\n ), closable ? this.renderCloseIcon(prefixCls) : null]\n );\n },\n renderCloseIcon: function renderCloseIcon(prefixCls) {\n var h = this.$createElement;\n var closable = this.closable;\n\n return closable && h(\n 'button',\n { key: 'closer', on: {\n 'click': this.close\n },\n attrs: { 'aria-label': 'Close' },\n 'class': prefixCls + '-close' },\n [h(Icon, {\n attrs: { type: 'close' }\n })]\n );\n },\n\n // render drawer body dom\n renderBody: function renderBody(prefixCls) {\n var h = this.$createElement;\n\n if (this.destroyClose && !this.visible) {\n return null;\n }\n this.destroyClose = false;\n var _$props3 = this.$props,\n bodyStyle = _$props3.bodyStyle,\n drawerStyle = _$props3.drawerStyle;\n\n\n var containerStyle = {};\n\n var isDestroyOnClose = this.getDestroyOnClose();\n if (isDestroyOnClose) {\n // Increase the opacity transition, delete children after closing.\n containerStyle.opacity = 0;\n containerStyle.transition = 'opacity .3s';\n }\n\n return h(\n 'div',\n {\n 'class': prefixCls + '-wrapper-body',\n style: _extends({}, containerStyle, drawerStyle),\n on: {\n 'transitionend': this.onDestroyTransitionEnd\n }\n },\n [this.renderHeader(prefixCls), h(\n 'div',\n { key: 'body', 'class': prefixCls + '-body', style: bodyStyle },\n [this.$slots['default']]\n )]\n );\n }\n },\n render: function render() {\n var _classnames;\n\n var h = arguments[0];\n\n var props = getOptionProps(this);\n\n var customizePrefixCls = props.prefixCls,\n width = props.width,\n height = props.height,\n visible = props.visible,\n placement = props.placement,\n wrapClassName = props.wrapClassName,\n mask = props.mask,\n rest = _objectWithoutProperties(props, ['prefixCls', 'width', 'height', 'visible', 'placement', 'wrapClassName', 'mask']);\n\n var haveMask = mask ? '' : 'no-mask';\n var offsetStyle = {};\n if (placement === 'left' || placement === 'right') {\n offsetStyle.width = typeof width === 'number' ? width + 'px' : width;\n } else {\n offsetStyle.height = typeof height === 'number' ? height + 'px' : height;\n }\n var handler = getComponentFromProp(this, 'handle') || false;\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('drawer', customizePrefixCls);\n\n var vcDrawerProps = {\n ref: 'vcDrawer',\n props: _extends({}, omit(rest, ['closable', 'destroyOnClose', 'drawerStyle', 'headerStyle', 'bodyStyle', 'title', 'push', 'visible', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'pageHeader', 'autoInsertSpaceInButton']), {\n handler: handler\n }, offsetStyle, {\n prefixCls: prefixCls,\n open: visible,\n showMask: mask,\n placement: placement,\n className: classnames((_classnames = {}, _defineProperty(_classnames, wrapClassName, !!wrapClassName), _defineProperty(_classnames, haveMask, !!haveMask), _classnames)),\n wrapStyle: this.getRcDrawerStyle()\n }),\n on: _extends({}, getListeners(this))\n };\n return h(\n VcDrawer,\n vcDrawerProps,\n [this.renderBody(prefixCls)]\n );\n }\n};\n\n/* istanbul ignore next */\nDrawer.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Drawer.name, Drawer);\n};\n\nexport default Drawer;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport Base from '../base';\n\nvar Divider = {\n name: 'ADivider',\n props: {\n prefixCls: PropTypes.string,\n type: PropTypes.oneOf(['horizontal', 'vertical', '']).def('horizontal'),\n dashed: PropTypes.bool,\n orientation: PropTypes.oneOf(['left', 'right', 'center'])\n },\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n render: function render() {\n var _classString;\n\n var h = arguments[0];\n var customizePrefixCls = this.prefixCls,\n type = this.type,\n $slots = this.$slots,\n dashed = this.dashed,\n _orientation = this.orientation,\n orientation = _orientation === undefined ? 'center' : _orientation;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('divider', customizePrefixCls);\n var orientationPrefix = orientation.length > 0 ? '-' + orientation : orientation;\n\n var classString = (_classString = {}, _defineProperty(_classString, prefixCls, true), _defineProperty(_classString, prefixCls + '-' + type, true), _defineProperty(_classString, prefixCls + '-with-text' + orientationPrefix, $slots['default']), _defineProperty(_classString, prefixCls + '-dashed', !!dashed), _classString);\n\n return h(\n 'div',\n { 'class': classString, attrs: { role: 'separator' }\n },\n [$slots['default'] && h(\n 'span',\n { 'class': prefixCls + '-inner-text' },\n [$slots['default']]\n )]\n );\n }\n};\n\n/* istanbul ignore next */\nDivider.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Divider.name, Divider);\n};\n\nexport default Divider;","\n\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadArea.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadArea.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DownloadArea.vue?vue&type=template&id=05660912&scoped=true&\"\nimport script from \"./DownloadArea.vue?vue&type=script&lang=js&\"\nexport * from \"./DownloadArea.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DownloadArea.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./DownloadArea.vue?vue&type=style&index=1&id=05660912&scoped=true&lang=css&\"\nimport style2 from \"./DownloadArea.vue?vue&type=style&index=2&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05660912\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBackGround.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBackGround.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBackGround.vue?vue&type=template&id=ea202a76&scoped=true&\"\nimport script from \"./TopBackGround.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBackGround.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TopBackGround.vue?vue&type=style&index=0&id=ea202a76&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea202a76\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"reason\"},[_c('p',{staticClass:\"title\"},[_vm._v(\"使用百田游戏安全管家的四大理由\")]),_c('a-row',[_vm._l((_vm.reason),function(item,index){return [(index%2==0)?_c('a-col',{key:index + 1,attrs:{\"xxl\":{ span: 6, offset: 5 },\"lg\":{ span: 8, offset: 3 },\"md\":{ span: 22, offset: 1 }}},[_c('div',{class:(\"reasons-icon reasons-icon-\" + (index + 1))}),_c('p',{staticClass:\"reason-title\"},[_vm._v(_vm._s(item[0]))]),_c('p',{staticClass:\"reason-text\"},[_vm._v(_vm._s(item[1]))])]):_c('a-col',{key:index + 1,attrs:{\"xxl\":{ span: 6, offset: 2 },\"lg\":{ span: 8, offset: 3 },\"md\":{ span: 22, offset: 1 }}},[_c('div',{class:(\"reasons-icon reasons-icon-\" + (index + 1))}),_c('p',{staticClass:\"reason-title\"},[_vm._v(_vm._s(item[0]))]),_c('p',{staticClass:\"reason-text\"},[_vm._v(_vm._s(item[1]))])])]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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 { Col } from '../grid';\nimport Base from '../base';\n/* istanbul ignore next */\nCol.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Col.name, Col);\n};\n\nexport default Col;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\n// matchMedia polyfill for\n// https://github.com/WickyNilliams/enquire.js/issues/82\nvar enquire = void 0;\n\n// TODO: Will be removed in antd 4.0 because we will no longer support ie9\nif (typeof window !== 'undefined') {\n var matchMediaPolyfill = function matchMediaPolyfill(mediaQuery) {\n return {\n media: mediaQuery,\n matches: false,\n addListener: function addListener() {},\n removeListener: function removeListener() {}\n };\n };\n // ref: https://github.com/ant-design/ant-design/issues/18774\n if (!window.matchMedia) window.matchMedia = matchMediaPolyfill;\n // eslint-disable-next-line global-require\n enquire = require('enquire.js');\n}\n\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\n\nexport var responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\n\nvar subscribers = [];\nvar subUid = -1;\nvar screens = {};\n\nvar responsiveObserve = {\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n if (subscribers.length < 1) {\n return false;\n }\n\n subscribers.forEach(function (item) {\n item.func(screens);\n });\n\n return true;\n },\n subscribe: function subscribe(func) {\n if (subscribers.length === 0) {\n this.register();\n }\n var token = (++subUid).toString();\n subscribers.push({\n token: token,\n func: func\n });\n func(screens);\n return token;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers = subscribers.filter(function (item) {\n return item.token !== token;\n });\n if (subscribers.length === 0) {\n this.unregister();\n }\n },\n unregister: function unregister() {\n Object.keys(responsiveMap).map(function (screen) {\n return enquire.unregister(responsiveMap[screen]);\n });\n },\n register: function register() {\n var _this = this;\n\n Object.keys(responsiveMap).map(function (screen) {\n return enquire.register(responsiveMap[screen], {\n match: function match() {\n var pointMap = _extends({}, screens, _defineProperty({}, screen, true));\n _this.dispatch(pointMap);\n },\n unmatch: function unmatch() {\n var pointMap = _extends({}, screens, _defineProperty({}, screen, false));\n _this.dispatch(pointMap);\n },\n // Keep a empty destroy to avoid triggering unmatch when unregister\n destroy: function destroy() {}\n });\n });\n }\n};\n\nexport default responsiveObserve;","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 BaseMixin from '../_util/BaseMixin';\nimport { ConfigConsumerProps } from '../config-provider/configConsumerProps';\nimport ResponsiveObserve from '../_util/responsiveObserve';\n\nvar RowProps = {\n gutter: PropTypes.oneOfType([PropTypes.object, PropTypes.number, PropTypes.array]),\n type: PropTypes.oneOf(['flex']),\n align: PropTypes.oneOf(['top', 'middle', 'bottom', 'stretch']),\n justify: PropTypes.oneOf(['start', 'end', 'center', 'space-around', 'space-between']),\n prefixCls: PropTypes.string\n};\n\nvar responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\n\nexport default {\n name: 'ARow',\n mixins: [BaseMixin],\n props: _extends({}, RowProps, {\n gutter: PropTypes.oneOfType([PropTypes.object, PropTypes.number, PropTypes.array]).def(0)\n }),\n provide: function provide() {\n return {\n rowContext: this\n };\n },\n\n inject: {\n configProvider: { 'default': function _default() {\n return ConfigConsumerProps;\n } }\n },\n data: function data() {\n return {\n screens: {}\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.token = ResponsiveObserve.subscribe(function (screens) {\n var gutter = _this.gutter;\n\n if ((typeof gutter === 'undefined' ? 'undefined' : _typeof(gutter)) === 'object' || Array.isArray(gutter) && (_typeof(gutter[0]) === 'object' || _typeof(gutter[1]) === 'object')) {\n _this.screens = screens;\n }\n });\n });\n },\n beforeDestroy: function beforeDestroy() {\n ResponsiveObserve.unsubscribe(this.token);\n },\n\n methods: {\n getGutter: function getGutter() {\n var results = [0, 0];\n var gutter = this.gutter,\n screens = this.screens;\n\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, 0];\n normalizedGutter.forEach(function (g, index) {\n if ((typeof g === 'undefined' ? 'undefined' : _typeof(g)) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g || 0;\n }\n });\n return results;\n }\n },\n\n render: function render() {\n var _classes;\n\n var h = arguments[0];\n var type = this.type,\n justify = this.justify,\n align = this.align,\n customizePrefixCls = this.prefixCls,\n $slots = this.$slots;\n\n var getPrefixCls = this.configProvider.getPrefixCls;\n var prefixCls = getPrefixCls('row', customizePrefixCls);\n\n var gutter = this.getGutter();\n var classes = (_classes = {}, _defineProperty(_classes, prefixCls, !type), _defineProperty(_classes, prefixCls + '-' + type, type), _defineProperty(_classes, prefixCls + '-' + type + '-' + justify, type && justify), _defineProperty(_classes, prefixCls + '-' + type + '-' + align, type && align), _classes);\n var rowStyle = _extends({}, gutter[0] > 0 ? {\n marginLeft: gutter[0] / -2 + 'px',\n marginRight: gutter[0] / -2 + 'px'\n } : {}, gutter[1] > 0 ? {\n marginTop: gutter[1] / -2 + 'px',\n marginBottom: gutter[1] / -2 + 'px'\n } : {});\n return h(\n 'div',\n { 'class': classes, style: rowStyle },\n [$slots['default']]\n );\n }\n};","import { Row } from '../grid';\nimport Base from '../base';\n\n/* istanbul ignore next */\nRow.install = function (Vue) {\n Vue.use(Base);\n Vue.component(Row.name, Row);\n};\n\nexport default Row;","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reason.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reason.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Reason.vue?vue&type=template&id=132a6586&scoped=true&\"\nimport script from \"./Reason.vue?vue&type=script&lang=js&\"\nexport * from \"./Reason.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Reason.vue?vue&type=style&index=0&id=132a6586&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"132a6586\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=287154ea&\"\nimport script from \"./Main.vue?vue&type=script&lang=js&\"\nexport * from \"./Main.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Main.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var map = {\n\t\"./s1.jpg\": \"485af\",\n\t\"./s2.jpg\": \"52bc\",\n\t\"./s3.jpg\": \"8f65\",\n\t\"./s4.jpg\": \"93c4\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"3cc0\";","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","module.exports = __webpack_public_path__ + \"img/s1.2d44df7e.jpg\";","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadArea.vue?vue&type=style&index=1&id=05660912&scoped=true&lang=css&\"","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","module.exports = __webpack_public_path__ + \"img/s2.bf68cc10.jpg\";","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","'use strict';\n\n/**\n * Determine if a DOM element matches a CSS selector\n *\n * @param {Element} elem\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction matches(elem, selector) {\n // Vendor-specific implementations of `Element.prototype.matches()`.\n var proto = window.Element.prototype;\n var nativeMatches = proto.matches ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n\n if (!elem || elem.nodeType !== 1) {\n return false;\n }\n\n var parentElem = elem.parentNode;\n\n // use native 'matches'\n if (nativeMatches) {\n return nativeMatches.call(elem, selector);\n }\n\n // native support for `matches` is missing and a fallback is required\n var nodes = parentElem.querySelectorAll(selector);\n var len = nodes.length;\n\n for (var i = 0; i < len; i++) {\n if (nodes[i] === elem) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Expose `matches`\n */\n\nmodule.exports = matches;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/**\n * Module dependencies\n */\n\nvar matches = require('dom-matches');\n\n/**\n * @param element {Element}\n * @param selector {String}\n * @param context {Element}\n * @return {Element}\n */\nmodule.exports = function (element, selector, context) {\n context = context || document;\n // guard against orphans\n element = { parentNode: element };\n\n while ((element = element.parentNode) && element !== context) {\n if (matches(element, selector)) {\n return element;\n }\n }\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","module.exports = __webpack_public_path__ + \"img/s3.18e0ee97.jpg\";","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadArea.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/s4.33379fbe.jpg\";","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reason.vue?vue&type=style&index=0&id=132a6586&scoped=true&lang=css&\"","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=style&index=0&lang=css&\"","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","import PropTypes from '../../_util/vue-types';\n\nvar defaultProps = {\n accessibility: PropTypes.bool.def(true),\n // 自定义高度\n adaptiveHeight: PropTypes.bool.def(false),\n afterChange: PropTypes.any.def(null),\n arrows: PropTypes.bool.def(true),\n autoplay: PropTypes.bool.def(false),\n autoplaySpeed: PropTypes.number.def(3000),\n beforeChange: PropTypes.any.def(null),\n centerMode: PropTypes.bool.def(false),\n centerPadding: PropTypes.string.def('50px'),\n cssEase: PropTypes.string.def('ease'),\n dots: PropTypes.bool.def(false),\n dotsClass: PropTypes.string.def('slick-dots'),\n draggable: PropTypes.bool.def(true),\n unslick: PropTypes.bool.def(false),\n easing: PropTypes.string.def('linear'),\n edgeFriction: PropTypes.number.def(0.35),\n fade: PropTypes.bool.def(false),\n focusOnSelect: PropTypes.bool.def(false),\n infinite: PropTypes.bool.def(true),\n initialSlide: PropTypes.number.def(0),\n lazyLoad: PropTypes.any.def(null),\n verticalSwiping: PropTypes.bool.def(false),\n asNavFor: PropTypes.any.def(null),\n // 圆点hover是否暂停\n pauseOnDotsHover: PropTypes.bool.def(false),\n // focus是否暂停\n pauseOnFocus: PropTypes.bool.def(false),\n // hover是否暂停\n pauseOnHover: PropTypes.bool.def(true),\n responsive: PropTypes.array,\n rows: PropTypes.number.def(1),\n rtl: PropTypes.bool.def(false),\n slide: PropTypes.string.def('div'),\n slidesPerRow: PropTypes.number.def(1),\n slidesToScroll: PropTypes.number.def(1),\n slidesToShow: PropTypes.number.def(1),\n speed: PropTypes.number.def(500),\n swipe: PropTypes.bool.def(true),\n swipeEvent: PropTypes.any.def(null),\n swipeToSlide: PropTypes.bool.def(false),\n touchMove: PropTypes.bool.def(true),\n touchThreshold: PropTypes.number.def(5),\n useCSS: PropTypes.bool.def(true),\n useTransform: PropTypes.bool.def(true),\n variableWidth: PropTypes.bool.def(false),\n vertical: PropTypes.bool.def(false),\n waitForAnimate: PropTypes.bool.def(true),\n children: PropTypes.array,\n __propsSymbol__: PropTypes.any\n};\n\nexport default defaultProps;","var initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false, // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: { startX: 0, startY: 0, curX: 0, curY: 0 },\n trackStyle: {},\n trackWidth: 0\n};\n\nexport default initialState;","import _extends from 'babel-runtime/helpers/extends';\nexport var getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nexport var getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport var lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nexport var lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nexport var lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nexport var lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nexport var getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nexport var getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nexport var getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var swipeAngle = void 0;\n var xDist = touchObject.startX - touchObject.curX;\n var yDist = touchObject.startY - touchObject.curY;\n var r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return 'left';\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return 'right';\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return 'up';\n } else {\n return 'down';\n }\n }\n\n return 'vertical';\n};\n\n// whether or not we can go next\nexport var canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport var extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nexport var initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = spec.children.length;\n var listWidth = Math.ceil(getWidth(spec.listRef));\n var trackWidth = Math.ceil(getWidth(spec.trackRef));\n var slideWidth = void 0;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === 'string' && spec.centerPadding.slice(-1) === '%') {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = spec.listRef && getHeight(spec.listRef.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides({ currentSlide: currentSlide, lazyLoadedList: lazyLoadedList }, spec);\n lazyLoadedList.concat(slidesToLoad);\n\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state['autoplaying'] = 'playing';\n }\n\n return state;\n};\n\nexport var slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoadedList = spec.lazyLoadedList,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n\n if (waitForAnimate && animating) return {};\n var animationSlide = index;\n var finalSlide = void 0;\n var animationLeft = void 0;\n var finalLeft = void 0;\n var state = {};\n var nextState = {};\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList\n };\n nextState = { animating: false };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) {\n finalSlide = slideCount - slideCount % slidesToScroll;\n }\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n animationLeft = getTrackLeft(_extends({}, spec, { slideIndex: animationSlide }));\n finalLeft = getTrackLeft(_extends({}, spec, { slideIndex: finalSlide }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides(_extends({}, spec, { currentSlide: animationSlide })));\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_extends({}, spec, { left: finalLeft })),\n lazyLoadedList: lazyLoadedList\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_extends({}, spec, { left: animationLeft })),\n lazyLoadedList: lazyLoadedList\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_extends({}, spec, { left: finalLeft })),\n swipeLeft: null\n };\n }\n }\n return { state: state, nextState: nextState };\n};\n\nexport var changeSlide = function changeSlide(spec, options) {\n var previousInt = void 0,\n slideOffset = void 0,\n targetSlide = void 0;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n\n var unevenOffset = slideCount % slidesToScroll !== 0;\n var indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === 'previous') {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n } else if (options.message === 'next') {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n } else if (options.message === 'dots') {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n if (targetSlide === options.currentSlide) {\n return null;\n }\n } else if (options.message === 'children') {\n // Click on the slides\n targetSlide = options.index;\n if (targetSlide === options.currentSlide) {\n return null;\n }\n if (infinite) {\n var direction = siblingDirection(_extends({}, spec, { targetSlide: targetSlide }));\n if (targetSlide > options.currentSlide && direction === 'left') {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === 'right') {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === 'index') {\n targetSlide = Number(options.index);\n if (targetSlide === options.currentSlide) {\n return null;\n }\n }\n return targetSlide;\n};\nexport var keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match('TEXTAREA|INPUT|SELECT') || !accessibility) {\n return '';\n }\n if (e.keyCode === 37) return rtl ? 'next' : 'previous';\n if (e.keyCode === 39) return rtl ? 'previous' : 'next';\n return '';\n};\n\nexport var swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === 'IMG' && e.preventDefault();\n if (!swipe || !draggable && e.type.indexOf('mouse') !== -1) return '';\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nexport var swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n var swipeLeft = void 0;\n var state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return { scrolling: true };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) {\n positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n }\n\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && swipeDirection === 'right' || currentSlide + 1 >= dotCount && swipeDirection === 'left' || !canGoNext(spec) && swipeDirection === 'left') {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state['edgeDragged'] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state['swiped'] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _extends({}, state, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_extends({}, spec, { left: swipeLeft }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state['swiping'] = true;\n e.preventDefault();\n }\n return state;\n};\nexport var swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n currentSlide = spec.currentSlide,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe;\n\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount = void 0,\n newSlide = void 0;\n switch (swipeDirection) {\n case 'left':\n case 'up':\n newSlide = currentSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state['currentDirection'] = 0;\n break;\n case 'right':\n case 'down':\n newSlide = currentSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state['currentDirection'] = 1;\n break;\n default:\n slideCount = currentSlide;\n }\n state['triggerSlideHandler'] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state['trackStyle'] = getTrackAnimateCSS(_extends({}, spec, { left: currentLeft }));\n }\n return state;\n};\nexport var getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nexport var checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nexport var getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide = void 0;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll('.slick-slide');\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexport var checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error('Keys Missing:', spec);\n};\n\nexport var getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth']);\n var trackWidth = void 0,\n trackHeight = void 0;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: '',\n WebkitTransition: ''\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)';\n var transform = !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)';\n var msTransform = !spec.vertical ? 'translateX(' + spec.left + 'px)' : 'translateY(' + spec.left + 'px)';\n style = _extends({}, style, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style['top'] = spec.left;\n } else {\n style['left'] = spec.left;\n }\n }\n if (spec.fade) style = { opacity: 1 };\n if (trackWidth) style.width = trackWidth + 'px';\n if (trackHeight) style.height = trackHeight + 'px';\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + 'px';\n } else {\n style.marginTop = spec.left + 'px';\n }\n }\n\n return style;\n};\nexport var getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth', 'speed', 'cssEase']);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = '-webkit-transform ' + spec.speed + 'ms ' + spec.cssEase;\n style.transition = 'transform ' + spec.speed + 'ms ' + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = 'top ' + spec.speed + 'ms ' + spec.cssEase;\n } else {\n style.transition = 'left ' + spec.speed + 'ms ' + spec.cssEase;\n }\n }\n return style;\n};\nexport var getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, ['slideIndex', 'trackRef', 'infinite', 'centerMode', 'slideCount', 'slidesToShow', 'slidesToScroll', 'slideWidth', 'listWidth', 'variableWidth', 'slideHeight']);\n\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n\n\n var slideOffset = 0;\n var targetLeft = void 0;\n var targetSlide = void 0;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex = void 0;\n var trackElem = trackRef;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexport var getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexport var getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\n\nexport var getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nexport var siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return 'left';\n }\n return 'right';\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return 'right';\n }\n return 'left';\n }\n};\n\nexport var slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\n\nexport var slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\n\nexport var canUseDOM = function canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n};","import _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport { cloneElement } from '../../_util/vnode';\nimport { getStyle, getClass } from '../../_util/props-util';\nimport { lazyStartIndex, lazyEndIndex, getPreClones } from './utils/innerSliderUtils';\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive = void 0,\n slickCenter = void 0;\n var centerOffset = void 0,\n index = void 0;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n var slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var slickCurrent = index === spec.currentSlide;\n return {\n 'slick-slide': true,\n 'slick-active': slickActive,\n 'slick-center': slickCenter,\n 'slick-cloned': slickCloned,\n 'slick-current': slickCurrent // dubious in case of RTL\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth + (typeof spec.slideWidth === 'number' ? 'px' : '');\n }\n\n if (spec.fade) {\n style.position = 'relative';\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight) + 'px';\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth) + 'px';\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.transition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase + ', ' + 'visibility ' + spec.speed + 'ms ' + spec.cssEase;\n style.WebkitTransition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase + ', ' + 'visibility ' + spec.speed + 'ms ' + spec.cssEase;\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || child.key === 0 && '0' || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec, children, createElement) {\n var key = void 0;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = children.length;\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n children.forEach(function (elem, index) {\n var child = void 0;\n var childOnClickOptions = {\n message: 'children',\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = createElement('div');\n }\n var childStyle = getSlideStyle(_extends({}, spec, { index: index }));\n var slideClass = getClass(child.context) || '';\n var slideClasses = getSlideClasses(_extends({}, spec, { index: index }));\n // push a cloned element of the desired slide\n slides.push(cloneElement(child, {\n key: 'original' + getKey(child, index),\n attrs: {\n tabIndex: '-1',\n 'data-index': index,\n 'aria-hidden': !slideClasses['slick-active']\n },\n 'class': classnames(slideClasses, slideClass),\n style: _extends({ outline: 'none' }, getStyle(child.context) || {}, childStyle),\n on: {\n click: function click() {\n // child.props && child.props.onClick && child.props.onClick(e)\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }\n }, true));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= getPreClones(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_extends({}, spec, { index: key }));\n preCloneSlides.push(cloneElement(child, {\n key: 'precloned' + getKey(child, key),\n 'class': classnames(slideClasses, slideClass),\n attrs: {\n tabIndex: '-1',\n 'data-index': key,\n 'aria-hidden': !slideClasses['slick-active']\n },\n style: _extends({}, getStyle(child.context) || {}, childStyle),\n on: {\n click: function click() {\n // child.props && child.props.onClick && child.props.onClick(e)\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_extends({}, spec, { index: key }));\n postCloneSlides.push(cloneElement(child, {\n key: 'postcloned' + getKey(child, key),\n attrs: {\n tabIndex: '-1',\n 'data-index': key,\n 'aria-hidden': !slideClasses['slick-active']\n },\n 'class': classnames(slideClasses, slideClass),\n style: _extends({}, getStyle(child.context) || {}, childStyle),\n on: {\n click: function click() {\n // child.props && child.props.onClick && child.props.onClick(e)\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }\n }));\n }\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n listeners = context.listeners,\n children = context.children,\n data = context.data;\n\n var slides = renderSlides(props, children, createElement);\n var mouseenter = listeners.mouseenter,\n mouseover = listeners.mouseover,\n mouseleave = listeners.mouseleave;\n\n var mouseEvents = { mouseenter: mouseenter, mouseover: mouseover, mouseleave: mouseleave };\n var trackProps = {\n 'class': 'slick-track',\n style: props.trackStyle,\n on: _extends({}, mouseEvents),\n directives: data.directives\n };\n return h(\n 'div',\n trackProps,\n [slides]\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport classnames from 'classnames';\nimport { cloneElement } from '../../_util/vnode';\n\nvar getDotCount = function getDotCount(spec) {\n var dots = void 0;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nexport default {\n functional: true,\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props,\n listeners = context.listeners;\n var slideCount = props.slideCount,\n slidesToScroll = props.slidesToScroll,\n slidesToShow = props.slidesToShow,\n infinite = props.infinite,\n currentSlide = props.currentSlide,\n appendDots = props.appendDots,\n customPaging = props.customPaging,\n clickHandler = props.clickHandler,\n dotsClass = props.dotsClass;\n\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n\n // Apply join & split to Array to pre-fill it for IE8\n //\n // Credit: http://stackoverflow.com/a/13735425/1849458\n var mouseenter = listeners.mouseenter,\n mouseover = listeners.mouseover,\n mouseleave = listeners.mouseleave;\n\n var mouseEvents = { mouseenter: mouseenter, mouseover: mouseover, mouseleave: mouseleave };\n var dots = Array.apply(null, Array(dotCount + 1).join('0').split('')).map(function (x, i) {\n var leftBound = i * slidesToScroll;\n var rightBound = i * slidesToScroll + (slidesToScroll - 1);\n var className = classnames({\n 'slick-active': currentSlide >= leftBound && currentSlide <= rightBound\n });\n\n var dotOptions = {\n message: 'dots',\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n function onClick(e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n if (e) {\n e.preventDefault();\n }\n clickHandler(dotOptions);\n }\n return h(\n 'li',\n { key: i, 'class': className },\n [cloneElement(customPaging({ i: i }), {\n on: {\n click: onClick\n }\n })]\n );\n });\n\n return cloneElement(appendDots({ dots: dots }), {\n 'class': dotsClass,\n on: _extends({}, mouseEvents)\n });\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport { cloneElement } from '../../_util/vnode';\nimport { canGoNext } from './utils/innerSliderUtils';\n\nfunction noop() {}\n\nexport var PrevArrow = {\n functional: true,\n clickHandler: function clickHandler(options, handle, e) {\n if (e) {\n e.preventDefault();\n }\n handle(options, e);\n },\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props;\n var clickHandler = props.clickHandler,\n infinite = props.infinite,\n currentSlide = props.currentSlide,\n slideCount = props.slideCount,\n slidesToShow = props.slidesToShow;\n\n var prevClasses = { 'slick-arrow': true, 'slick-prev': true };\n var prevHandler = function prevHandler(e) {\n if (e) {\n e.preventDefault();\n }\n clickHandler({ message: 'previous' });\n };\n\n if (!infinite && (currentSlide === 0 || slideCount <= slidesToShow)) {\n prevClasses['slick-disabled'] = true;\n prevHandler = noop;\n }\n\n var prevArrowProps = {\n key: '0',\n domProps: {\n 'data-role': 'none'\n },\n 'class': prevClasses,\n style: { display: 'block' },\n on: {\n click: prevHandler\n }\n };\n var customProps = {\n currentSlide: currentSlide,\n slideCount: slideCount\n };\n var prevArrow = void 0;\n\n if (props.prevArrow) {\n prevArrow = cloneElement(props.prevArrow(_extends({}, prevArrowProps, {\n props: customProps\n })), {\n key: '0',\n 'class': prevClasses,\n style: { display: 'block' },\n on: {\n click: prevHandler\n }\n });\n } else {\n prevArrow = h(\n 'button',\n _mergeJSXProps([{ key: '0', attrs: { type: 'button' }\n }, prevArrowProps]),\n [' ', 'Previous']\n );\n }\n\n return prevArrow;\n }\n};\n\nexport var NextArrow = {\n functional: true,\n clickHandler: function clickHandler(options, handle, e) {\n if (e) {\n e.preventDefault();\n }\n handle(options, e);\n },\n render: function render(createElement, context) {\n var h = arguments[0];\n var props = context.props;\n var clickHandler = props.clickHandler,\n currentSlide = props.currentSlide,\n slideCount = props.slideCount;\n\n\n var nextClasses = { 'slick-arrow': true, 'slick-next': true };\n var nextHandler = function nextHandler(e) {\n if (e) {\n e.preventDefault();\n }\n clickHandler({ message: 'next' });\n };\n if (!canGoNext(props)) {\n nextClasses['slick-disabled'] = true;\n nextHandler = noop;\n }\n\n var nextArrowProps = {\n key: '1',\n domProps: {\n 'data-role': 'none'\n },\n 'class': nextClasses,\n style: { display: 'block' },\n on: {\n click: nextHandler\n }\n };\n var customProps = {\n currentSlide: currentSlide,\n slideCount: slideCount\n };\n var nextArrow = void 0;\n\n if (props.nextArrow) {\n nextArrow = cloneElement(props.nextArrow(_extends({}, nextArrowProps, {\n props: customProps\n })), {\n key: '1',\n 'class': nextClasses,\n style: { display: 'block' },\n on: {\n click: nextHandler\n }\n });\n } else {\n nextArrow = h(\n 'button',\n _mergeJSXProps([{ key: '1', attrs: { type: 'button' }\n }, nextArrowProps]),\n [' ', 'Next']\n );\n }\n\n return nextArrow;\n }\n};","import _typeof from 'babel-runtime/helpers/typeof';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport debounce from 'lodash/debounce';\nimport classnames from 'classnames';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport { getStyle, getListeners } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport defaultProps from './default-props';\nimport initialState from './initial-state';\nimport { getOnDemandLazySlides, extractObject, initializedState, getHeight, canGoNext, slideHandler as _slideHandler, changeSlide as _changeSlide, keyHandler as _keyHandler, swipeStart as _swipeStart, swipeMove as _swipeMove, swipeEnd as _swipeEnd, getPreClones, getPostClones, getTrackLeft, getTrackCSS } from './utils/innerSliderUtils';\nimport Track from './track';\nimport Dots from './dots';\nimport { PrevArrow, NextArrow } from './arrows';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nVue.use(ref, { name: 'ant-ref' });\n\nfunction noop() {}\n\nexport default {\n props: _extends({}, defaultProps),\n mixins: [BaseMixin],\n data: function data() {\n this.preProps = _extends({}, this.$props);\n this.list = null;\n this.track = null;\n this.callbackTimers = [];\n this.clickable = true;\n this.debouncedResize = null;\n return _extends({}, initialState, {\n currentSlide: this.initialSlide,\n slideCount: this.children.length\n });\n },\n\n methods: {\n listRefHandler: function listRefHandler(ref) {\n this.list = ref;\n },\n trackRefHandler: function trackRefHandler(ref) {\n this.track = ref;\n },\n adaptHeight: function adaptHeight() {\n if (this.adaptiveHeight && this.list) {\n var elem = this.list.querySelector('[data-index=\"' + this.currentSlide + '\"]');\n this.list.style.height = getHeight(elem) + 'px';\n }\n },\n onWindowResized: function onWindowResized(setTrackStyle) {\n var _this = this;\n\n if (this.debouncedResize) this.debouncedResize.cancel();\n this.debouncedResize = debounce(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n this.debouncedResize();\n },\n resizeWindow: function resizeWindow() {\n var _this2 = this;\n\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (!this.track) return;\n var spec = _extends({\n listRef: this.list,\n trackRef: this.track,\n children: this.children\n }, this.$props, this.$data);\n this.updateState(spec, setTrackStyle, function () {\n if (_this2.autoplay) {\n _this2.handleAutoPlay('update');\n } else {\n _this2.pause('paused');\n }\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n this.setState({\n animating: false\n });\n clearTimeout(this.animationEndCallback);\n delete this.animationEndCallback;\n },\n updateState: function updateState(spec, setTrackStyle, callback) {\n var updatedState = initializedState(spec);\n spec = _extends({}, spec, updatedState, { slideIndex: updatedState.currentSlide });\n var targetLeft = getTrackLeft(spec);\n spec = _extends({}, spec, { left: targetLeft });\n var trackStyle = getTrackCSS(spec);\n if (setTrackStyle || this.children.length !== spec.children.length) {\n updatedState['trackStyle'] = trackStyle;\n }\n this.setState(updatedState, callback);\n },\n ssrInit: function ssrInit() {\n var children = this.children;\n if (this.variableWidth) {\n var _trackWidth = 0;\n var _trackLeft = 0;\n var childrenWidths = [];\n var preClones = getPreClones(_extends({}, this.$props, this.$data, {\n slideCount: children.length\n }));\n var postClones = getPostClones(_extends({}, this.$props, this.$data, {\n slideCount: children.length\n }));\n children.forEach(function (child) {\n var childWidth = getStyle(child).width.split('px')[0];\n childrenWidths.push(childWidth);\n _trackWidth += childWidth;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < this.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + 'px',\n left: -_trackLeft + 'px'\n };\n if (this.centerMode) {\n var currentWidth = childrenWidths[this.currentSlide] + 'px';\n _trackStyle.left = 'calc(' + _trackStyle.left + ' + (100% - ' + currentWidth + ') / 2 ) ';\n }\n this.setState({\n trackStyle: _trackStyle\n });\n return;\n }\n var childrenCount = children.length;\n var spec = _extends({}, this.$props, this.$data, { slideCount: childrenCount });\n var slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n var trackWidth = 100 / this.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * (getPreClones(spec) + this.currentSlide) * trackWidth / 100;\n if (this.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + '%',\n left: trackLeft + '%'\n };\n this.setState({\n slideWidth: slideWidth + '%',\n trackStyle: trackStyle\n });\n },\n checkImagesLoad: function checkImagesLoad() {\n var _this3 = this;\n\n var images = document.querySelectorAll('.slick-slide img');\n var imagesCount = images.length;\n var loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this3.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this3.$props.lazyLoad) {\n image.onload = function () {\n _this3.adaptHeight();\n _this3.callbackTimers.push(setTimeout(_this3.onWindowResized, _this3.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this3.$emit('lazyLoadError');\n };\n }\n }\n });\n },\n progressiveLazyLoad: function progressiveLazyLoad() {\n var slidesToLoad = [];\n var spec = _extends({}, this.$props, this.$data);\n for (var index = this.currentSlide; index < this.slideCount + getPostClones(spec); index++) {\n if (this.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = this.currentSlide - 1; _index >= -getPreClones(spec); _index--) {\n if (this.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n this.$emit('lazyLoad', slidesToLoad);\n } else {\n if (this.lazyLoadTimer) {\n clearInterval(this.lazyLoadTimer);\n delete this.lazyLoadTimer;\n }\n }\n },\n slideHandler: function slideHandler(index) {\n var _this4 = this;\n\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _$props = this.$props,\n asNavFor = _$props.asNavFor,\n currentSlide = _$props.currentSlide,\n beforeChange = _$props.beforeChange,\n speed = _$props.speed,\n afterChange = _$props.afterChange;\n\n var _slideHandler2 = _slideHandler(_extends({\n index: index\n }, this.$props, this.$data, {\n trackRef: this.track,\n useCSS: this.useCSS && !dontAnimate\n })),\n state = _slideHandler2.state,\n nextState = _slideHandler2.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this4.lazyLoadedList.indexOf(value) < 0;\n });\n if (getListeners(this).lazyLoad && slidesToLoad.length > 0) {\n this.$emit('lazyLoad', slidesToLoad);\n }\n this.setState(state, function () {\n asNavFor && asNavFor.innerSlider.currentSlide !== currentSlide && asNavFor.innerSlider.slideHandler(index);\n if (!nextState) return;\n _this4.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, ['animating']);\n\n _this4.setState(firstBatch, function () {\n _this4.callbackTimers.push(setTimeout(function () {\n return _this4.setState({ animating: animating });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this4.animationEndCallback;\n });\n }, speed);\n });\n },\n changeSlide: function changeSlide(options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _extends({}, this.$props, this.$data);\n var targetSlide = _changeSlide(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n this.slideHandler(targetSlide, dontAnimate);\n } else {\n this.slideHandler(targetSlide);\n }\n },\n clickHandler: function clickHandler(e) {\n if (this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.clickable = true;\n },\n keyHandler: function keyHandler(e) {\n var dir = _keyHandler(e, this.accessibility, this.rtl);\n dir !== '' && this.changeSlide({ message: dir });\n },\n selectHandler: function selectHandler(options) {\n this.changeSlide(options);\n },\n disableBodyScroll: function disableBodyScroll() {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n },\n enableBodyScroll: function enableBodyScroll() {\n window.ontouchmove = null;\n },\n swipeStart: function swipeStart(e) {\n if (this.verticalSwiping) {\n this.disableBodyScroll();\n }\n var state = _swipeStart(e, this.swipe, this.draggable);\n state !== '' && this.setState(state);\n },\n swipeMove: function swipeMove(e) {\n var state = _swipeMove(e, _extends({}, this.$props, this.$data, {\n trackRef: this.track,\n listRef: this.list,\n slideIndex: this.currentSlide\n }));\n if (!state) return;\n if (state['swiping']) {\n this.clickable = false;\n }\n this.setState(state);\n },\n swipeEnd: function swipeEnd(e) {\n var state = _swipeEnd(e, _extends({}, this.$props, this.$data, {\n trackRef: this.track,\n listRef: this.list,\n slideIndex: this.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state['triggerSlideHandler'];\n delete state['triggerSlideHandler'];\n this.setState(state);\n if (triggerSlideHandler === undefined) return;\n this.slideHandler(triggerSlideHandler);\n if (this.$props.verticalSwiping) {\n this.enableBodyScroll();\n }\n },\n slickPrev: function slickPrev() {\n var _this5 = this;\n\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n this.callbackTimers.push(setTimeout(function () {\n return _this5.changeSlide({ message: 'previous' });\n }, 0));\n },\n slickNext: function slickNext() {\n var _this6 = this;\n\n this.callbackTimers.push(setTimeout(function () {\n return _this6.changeSlide({ message: 'next' });\n }, 0));\n },\n slickGoTo: function slickGoTo(slide) {\n var _this7 = this;\n\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n slide = Number(slide);\n if (isNaN(slide)) return '';\n this.callbackTimers.push(setTimeout(function () {\n return _this7.changeSlide({\n message: 'index',\n index: slide,\n currentSlide: _this7.currentSlide\n }, dontAnimate);\n }, 0));\n },\n play: function play() {\n var nextIndex = void 0;\n if (this.rtl) {\n nextIndex = this.currentSlide - this.slidesToScroll;\n } else {\n if (canGoNext(_extends({}, this.$props, this.$data))) {\n nextIndex = this.currentSlide + this.slidesToScroll;\n } else {\n return false;\n }\n }\n\n this.slideHandler(nextIndex);\n },\n handleAutoPlay: function handleAutoPlay(playType) {\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n }\n var autoplaying = this.autoplaying;\n if (playType === 'update') {\n if (autoplaying === 'hovered' || autoplaying === 'focused' || autoplaying === 'paused') {\n return;\n }\n } else if (playType === 'leave') {\n if (autoplaying === 'paused' || autoplaying === 'focused') {\n return;\n }\n } else if (playType === 'blur') {\n if (autoplaying === 'paused' || autoplaying === 'hovered') {\n return;\n }\n }\n this.autoplayTimer = setInterval(this.play, this.autoplaySpeed + 50);\n this.setState({ autoplaying: 'playing' });\n },\n pause: function pause(pauseType) {\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n var autoplaying = this.autoplaying;\n if (pauseType === 'paused') {\n this.setState({ autoplaying: 'paused' });\n } else if (pauseType === 'focused') {\n if (autoplaying === 'hovered' || autoplaying === 'playing') {\n this.setState({ autoplaying: 'focused' });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === 'playing') {\n this.setState({ autoplaying: 'hovered' });\n }\n }\n },\n onDotsOver: function onDotsOver() {\n this.autoplay && this.pause('hovered');\n },\n onDotsLeave: function onDotsLeave() {\n this.autoplay && this.autoplaying === 'hovered' && this.handleAutoPlay('leave');\n },\n onTrackOver: function onTrackOver() {\n this.autoplay && this.pause('hovered');\n },\n onTrackLeave: function onTrackLeave() {\n this.autoplay && this.autoplaying === 'hovered' && this.handleAutoPlay('leave');\n },\n onSlideFocus: function onSlideFocus() {\n this.autoplay && this.pause('focused');\n },\n onSlideBlur: function onSlideBlur() {\n this.autoplay && this.autoplaying === 'focused' && this.handleAutoPlay('blur');\n },\n customPaging: function customPaging(_ref) {\n var i = _ref.i;\n var h = this.$createElement;\n\n return h('button', [i + 1]);\n },\n appendDots: function appendDots(_ref2) {\n var dots = _ref2.dots;\n var h = this.$createElement;\n\n return h(\n 'ul',\n { style: { display: 'block' } },\n [dots]\n );\n }\n },\n beforeMount: function beforeMount() {\n this.ssrInit();\n this.$emit('init');\n if (this.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_extends({}, this.$props, this.$data));\n if (slidesToLoad.length > 0) {\n this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n this.$emit('lazyLoad', slidesToLoad);\n }\n }\n },\n mounted: function mounted() {\n var _this8 = this;\n\n this.$nextTick(function () {\n var spec = _extends({\n listRef: _this8.list,\n trackRef: _this8.track,\n children: _this8.children\n }, _this8.$props);\n _this8.updateState(spec, true, function () {\n _this8.adaptHeight();\n _this8.autoplay && _this8.handleAutoPlay('update');\n });\n if (_this8.lazyLoad === 'progressive') {\n _this8.lazyLoadTimer = setInterval(_this8.progressiveLazyLoad, 1000);\n }\n _this8.ro = new ResizeObserver(function () {\n if (_this8.animating) {\n _this8.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this8.callbackTimers.push(setTimeout(function () {\n return _this8.onWindowResized();\n }, _this8.speed));\n } else {\n _this8.onWindowResized();\n }\n });\n _this8.ro.observe(_this8.list);\n Array.prototype.forEach.call(document.querySelectorAll('.slick-slide'), function (slide) {\n slide.onfocus = _this8.$props.pauseOnFocus ? _this8.onSlideFocus : null;\n slide.onblur = _this8.$props.pauseOnFocus ? _this8.onSlideBlur : null;\n });\n // To support server-side rendering\n if (!window) {\n return;\n }\n if (window.addEventListener) {\n window.addEventListener('resize', _this8.onWindowResized);\n } else {\n window.attachEvent('onresize', _this8.onWindowResized);\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (this.animationEndCallback) {\n clearTimeout(this.animationEndCallback);\n }\n if (this.lazyLoadTimer) {\n clearInterval(this.lazyLoadTimer);\n }\n if (this.callbackTimers.length) {\n this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener('resize', this.onWindowResized);\n } else {\n window.detachEvent('onresize', this.onWindowResized);\n }\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n }\n },\n updated: function updated() {\n this.checkImagesLoad();\n this.$emit('reInit');\n if (this.lazyLoad) {\n var slidesToLoad = getOnDemandLazySlides(_extends({}, this.$props, this.$data));\n if (slidesToLoad.length > 0) {\n this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n this.$emit('lazyLoad');\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n this.adaptHeight();\n },\n\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n var _this9 = this;\n\n var nextProps = this.$props;\n var spec = _extends({\n listRef: this.list,\n trackRef: this.track\n }, nextProps, this.$data);\n var setTrackStyle = false;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = Object.keys(this.preProps)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n if (!nextProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(nextProps[key]) === 'object' || typeof nextProps[key] === 'function' || _typeof(nextProps[key]) === 'symbol') {\n continue;\n }\n if (nextProps[key] !== this.preProps[key]) {\n setTrackStyle = true;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n this.updateState(spec, setTrackStyle, function () {\n if (_this9.currentSlide >= nextProps.children.length) {\n _this9.changeSlide({\n message: 'index',\n index: nextProps.children.length - nextProps.slidesToShow,\n currentSlide: _this9.currentSlide\n });\n }\n if (nextProps.autoplay) {\n _this9.handleAutoPlay('update');\n } else {\n _this9.pause('paused');\n }\n });\n this.preProps = _extends({}, nextProps);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var className = classnames('slick-slider', {\n 'slick-vertical': this.vertical,\n 'slick-initialized': true\n });\n var spec = _extends({}, this.$props, this.$data);\n var trackProps = extractObject(spec, ['fade', 'cssEase', 'speed', 'infinite', 'centerMode', 'focusOnSelect', 'currentSlide', 'lazyLoad', 'lazyLoadedList', 'rtl', 'slideWidth', 'slideHeight', 'listHeight', 'vertical', 'slidesToShow', 'slidesToScroll', 'slideCount', 'trackStyle', 'variableWidth', 'unslick', 'centerPadding']);\n var pauseOnHover = this.$props.pauseOnHover;\n\n trackProps = {\n props: _extends({}, trackProps, {\n focusOnSelect: this.focusOnSelect ? this.selectHandler : null\n }),\n directives: [{\n name: 'ant-ref',\n value: this.trackRefHandler\n }],\n on: {\n mouseenter: pauseOnHover ? this.onTrackOver : noop,\n mouseleave: pauseOnHover ? this.onTrackLeave : noop,\n mouseover: pauseOnHover ? this.onTrackOver : noop\n }\n };\n\n var dots = void 0;\n if (this.dots === true && this.slideCount >= this.slidesToShow) {\n var dotProps = extractObject(spec, ['dotsClass', 'slideCount', 'slidesToShow', 'currentSlide', 'slidesToScroll', 'clickHandler', 'children', 'infinite', 'appendDots']);\n dotProps.customPaging = this.customPaging;\n dotProps.appendDots = this.appendDots;\n var _$scopedSlots = this.$scopedSlots,\n customPaging = _$scopedSlots.customPaging,\n appendDots = _$scopedSlots.appendDots;\n\n if (customPaging) {\n dotProps.customPaging = customPaging;\n }\n if (appendDots) {\n dotProps.appendDots = appendDots;\n }\n var pauseOnDotsHover = this.$props.pauseOnDotsHover;\n\n dotProps = {\n props: _extends({}, dotProps, {\n clickHandler: this.changeSlide\n }),\n on: {\n mouseenter: pauseOnDotsHover ? this.onDotsLeave : noop,\n mouseover: pauseOnDotsHover ? this.onDotsOver : noop,\n mouseleave: pauseOnDotsHover ? this.onDotsLeave : noop\n }\n };\n dots = h(Dots, dotProps);\n }\n\n var prevArrow = void 0,\n nextArrow = void 0;\n var arrowProps = extractObject(spec, ['infinite', 'centerMode', 'currentSlide', 'slideCount', 'slidesToShow']);\n arrowProps.clickHandler = this.changeSlide;\n var _$scopedSlots2 = this.$scopedSlots,\n prevArrowCustom = _$scopedSlots2.prevArrow,\n nextArrowCustom = _$scopedSlots2.nextArrow;\n\n if (prevArrowCustom) {\n arrowProps.prevArrow = prevArrowCustom;\n }\n if (nextArrowCustom) {\n arrowProps.nextArrow = nextArrowCustom;\n }\n if (this.arrows) {\n prevArrow = h(PrevArrow, { props: arrowProps });\n nextArrow = h(NextArrow, { props: arrowProps });\n }\n var verticalHeightStyle = null;\n\n if (this.vertical) {\n verticalHeightStyle = {\n height: typeof this.listHeight === 'number' ? this.listHeight + 'px' : this.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (this.vertical === false) {\n if (this.centerMode === true) {\n centerPaddingStyle = {\n padding: '0px ' + this.centerPadding\n };\n }\n } else {\n if (this.centerMode === true) {\n centerPaddingStyle = {\n padding: this.centerPadding + ' 0px'\n };\n }\n }\n\n var listStyle = _extends({}, verticalHeightStyle, centerPaddingStyle);\n var touchMove = this.touchMove;\n var listProps = {\n directives: [{\n name: 'ant-ref',\n value: this.listRefHandler\n }],\n 'class': 'slick-list',\n style: listStyle,\n on: {\n click: this.clickHandler,\n mousedown: touchMove ? this.swipeStart : noop,\n mousemove: this.dragging && touchMove ? this.swipeMove : noop,\n mouseup: touchMove ? this.swipeEnd : noop,\n mouseleave: this.dragging && touchMove ? this.swipeEnd : noop,\n touchstart: touchMove ? this.swipeStart : noop,\n touchmove: this.dragging && touchMove ? this.swipeMove : noop,\n touchend: touchMove ? this.swipeEnd : noop,\n touchcancel: this.dragging && touchMove ? this.swipeEnd : noop,\n keydown: this.accessibility ? this.keyHandler : noop\n }\n };\n\n var innerSliderProps = {\n 'class': className,\n props: {\n dir: 'ltr'\n }\n };\n\n if (this.unslick) {\n listProps = {\n 'class': 'slick-list',\n directives: [{\n name: 'ant-ref',\n value: this.listRefHandler\n }]\n };\n innerSliderProps = { 'class': className };\n }\n return h(\n 'div',\n innerSliderProps,\n [!this.unslick ? prevArrow : '', h(\n 'div',\n listProps,\n [h(\n Track,\n trackProps,\n [this.children]\n )]\n ), !this.unslick ? nextArrow : '', !this.unslick ? dots : '']\n );\n }\n};","import _extends from 'babel-runtime/helpers/extends';\nimport json2mq from 'json2mq';\nimport Vue from 'vue';\nimport ref from 'vue-ref';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { cloneElement } from '../../_util/vnode';\nimport { getStyle, getListeners } from '../../_util/props-util';\nimport InnerSlider from './inner-slider';\nimport defaultProps from './default-props';\nimport { canUseDOM } from './utils/innerSliderUtils';\nvar enquire = canUseDOM() && require('enquire.js');\n\nVue.use(ref, { name: 'ant-ref' });\n\nexport default {\n props: _extends({}, defaultProps),\n mixins: [BaseMixin],\n data: function data() {\n this._responsiveMediaHandlers = [];\n return {\n breakpoint: null\n };\n },\n\n methods: {\n innerSliderRefHandler: function innerSliderRefHandler(ref) {\n this.innerSlider = ref;\n },\n media: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({ query: query, handler: handler });\n },\n slickPrev: function slickPrev() {\n this.innerSlider.slickPrev();\n },\n slickNext: function slickNext() {\n this.innerSlider.slickNext();\n },\n slickGoTo: function slickGoTo(slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n this.innerSlider.slickGoTo(slide, dontAnimate);\n },\n slickPause: function slickPause() {\n this.innerSlider.pause('paused');\n },\n slickPlay: function slickPlay() {\n this.innerSlider.handleAutoPlay('play');\n }\n },\n // handles responsive breakpoints\n beforeMount: function beforeMount() {\n var _this = this;\n\n // performance monitoring\n // if (process.env.NODE_ENV !== 'production') {\n // const { whyDidYouUpdate } = require('why-did-you-update')\n // whyDidYouUpdate(React)\n // }\n if (this.responsive) {\n var breakpoints = this.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery = void 0;\n if (index === 0) {\n bQuery = json2mq({ minWidth: 0, maxWidth: breakpoint });\n } else {\n bQuery = json2mq({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n canUseDOM() && _this.media(bQuery, function () {\n _this.setState({ breakpoint: breakpoint });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = json2mq({ minWidth: breakpoints.slice(-1)[0] });\n\n canUseDOM() && this.media(query, function () {\n _this.setState({ breakpoint: null });\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n\n var settings = void 0;\n var newProps = void 0;\n if (this.breakpoint) {\n newProps = this.responsive.filter(function (resp) {\n return resp.breakpoint === _this2.breakpoint;\n });\n settings = newProps[0].settings === 'unslick' ? 'unslick' : _extends({}, this.$props, newProps[0].settings);\n } else {\n settings = _extends({}, this.$props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== 'production') {\n console.warn('slidesToScroll should be equal to 1 in centerMode, you are using ' + settings.slidesToScroll);\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== 'production') {\n console.warn('slidesToShow should be equal to 1 when fade is true, you\\'re using ' + settings.slidesToShow);\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== 'production') {\n console.warn('slidesToScroll should be equal to 1 when fade is true, you\\'re using ' + settings.slidesToScroll);\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = this.$slots['default'] || [];\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === 'string') {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn('variableWidth is not supported in case of rows > 1 or slidesPerRow > 1');\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && getStyle(children[k])) {\n currentWidth = getStyle(children[k]).width;\n }\n if (k >= children.length) break;\n row.push(cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n attrs: {\n tabIndex: -1\n },\n style: {\n width: 100 / settings.slidesPerRow + '%',\n display: 'inline-block'\n }\n }));\n }\n newSlide.push(h(\n 'div',\n { key: 10 * i + j },\n [row]\n ));\n }\n if (settings.variableWidth) {\n newChildren.push(h(\n 'div',\n { key: i, style: { width: currentWidth } },\n [newSlide]\n ));\n } else {\n newChildren.push(h(\n 'div',\n { key: i },\n [newSlide]\n ));\n }\n }\n\n if (settings === 'unslick') {\n var className = 'regular slider ' + (this.className || '');\n return h(\n 'div',\n { 'class': className },\n [newChildren]\n );\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n var sliderProps = {\n props: _extends({}, settings, {\n children: newChildren,\n __propsSymbol__: Symbol()\n }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.innerSliderRefHandler\n }],\n scopedSlots: this.$scopedSlots\n };\n return h(InnerSlider, sliderProps);\n }\n};","// base react-slick 0.23.2\nimport Slider from './slider';\n\nexport default Slider;","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadArea.vue?vue&type=style&index=2&lang=css&\"","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n"],"sourceRoot":""}