{"version":3,"sources":["webpack:///./node_modules/ant-design-vue/es/vc-tooltip/placements.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/src/Tree.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/util.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/SelectTrigger.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Base/BaseSelector.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/SingleSelector.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/SearchInput.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/Selection.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Selector/MultipleSelector/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Base/BasePopup.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Popup/SinglePopup.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Popup/MultiplePopup.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/SelectNode.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/Select.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/index.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/src/strategies.js","webpack:///./node_modules/ant-design-vue/es/vc-time-picker/Header.js","webpack:///./node_modules/ant-design-vue/es/vc-time-picker/Select.js","webpack:///./node_modules/ant-design-vue/es/vc-time-picker/Combobox.js","webpack:///./node_modules/ant-design-vue/es/vc-time-picker/Panel.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/vc-tree/src/util.js","webpack:///./node_modules/ant-design-vue/es/vc-tree/src/TreeNode.js","webpack:///./node_modules/ant-design-vue/es/vc-tree-select/index.js","webpack:///./node_modules/ant-design-vue/es/vc-time-picker/placements.js","webpack:///./node_modules/ant-design-vue/es/vc-time-picker/TimePicker.js"],"names":["autoAdjustOverflow","adjustX","adjustY","targetOffset","placements","left","points","overflow","offset","right","top","bottom","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","getWatch","keys","arguments","length","undefined","watch","forEach","k","this","needSyncKeys","Tree","name","mixins","BaseMixin","props","prefixCls","string","tabIndex","oneOfType","number","children","any","treeData","array","showLine","bool","showIcon","icon","object","func","focusable","selectable","disabled","multiple","checkable","checkStrictly","draggable","defaultExpandParent","autoExpandParent","defaultExpandAll","defaultExpandedKeys","expandedKeys","defaultCheckedKeys","checkedKeys","defaultSelectedKeys","selectedKeys","loadData","loadedKeys","filterTreeNode","openTransitionName","openAnimation","switcherIcon","_propsSymbol","data","$props","__propsSymbol__","domTreeNodes","state","_posEntities","Map","_keyEntities","_expandedKeys","_selectedKeys","_checkedKeys","_halfCheckedKeys","_loadedKeys","_loadingKeys","_treeNode","_prevProps","_dragOverNodeKey","_dropPosition","_dragNodesKeys","getDerivedState","provide","vcTree","setState","$data","methods","prevState","newState","self","needSync","treeNode","$createElement","entitiesMap","keyEntities","concat","checkedKeyEntity","halfCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","onNodeDragStart","event","node","eventKey","dragNode","__emit","onNodeDragEnter","_this","pos","$refs","selectHandle","dropPosition","setTimeout","delayedDragEnterLogic","Object","key","clearTimeout","newExpandedKeys","onNodeDragOver","_$data","onNodeDragLeave","onNodeDragEnd","onNodeDrop","_$data2","_$data2$_dragNodesKey","indexOf","posArr","dropResult","dragNodesKeys","slice","Number","dropToGap","onNodeClick","e","onNodeDoubleClick","onNodeSelect","_getOptionProps","selected","targetSelected","selectedNodes","map","entity","get","filter","setUncontrolledState","eventObj","nativeEvent","onNodeCheck","checked","_$data3","oriCheckedKeys","oriHalfCheckedKeys","_getOptionProps2","checkedObj","halfChecked","checkedNodes","_conductCheck","checkedNodesPositions","push","onNodeLoad","_this2","Promise","resolve","_ref","_ref$_loadedKeys","_ref$_loadingKeys","loadingKeys","_getOptionProps3","promise","then","_$data4","currentLoadedKeys","currentLoadingKeys","newLoadedKeys","newLoadingKeys","onNodeExpand","_this3","_getOptionProps4","expanded","index","targetExpanded","loadPromise","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","preventDefault","replace","registerTreeNode","isKeyChecked","_$data$_checkedKeys","renderTreeNode","child","level","_$data5","_$data5$_expandedKeys","_$data5$_selectedKeys","_$data5$_halfCheckedK","_$data5$_loadedKeys","_$data5$_loadingKeys","dragOverNodeKey","loaded","loading","dragOver","dragOverGapTop","dragOverGapBottom","render","_this4","h","_$props","_$props$tabIndex","attrs","role","unselectable","proxyComponent","TreeNode","warnDeprecatedLabel","findPopupContainer","prefixClass","current","parentNode","toTitle","title","toArray","Array","isArray","createRef","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","flatToHierarchy","positionList","entrances","posMap","parsedList","clone","fields","split","sort","a","b","parentPos","join","parentEntity","generateAriaId","prefix","treeCheckable","treeCheckStrictly","labelInValue","parseSimpleTreeData","id","pId","rootPId","keyNodes","rootNodeList","nodeList","parentKey","parent","isPosRelated","pos1","pos2","fields1","fields2","minLen","Math","min","i","cleanEntity","_ref2","instance","getFilterTree","treeNodes","searchValue","filterFunc","valueEntities","Component","mapFilteredNodeToData","match","n","value","formatInternalValue","valueList","val","label","getLabel","wrappedValue","treeNodeLabelProp","formatSelectorValue","showCheckedStrategy","values","hierarchyList","_ref3","_ref4","targetValueList","traverse","_ref5","processProps","cls","style","_props$on","on","p","className","convertDataToTree","initWrapper","wrapper","processEntity","currentEntity","convertTreeToEntities","getHalfCheckedKeys","_ref6","_ref7","parentValue","conductCheck","BUILT_IN_PLACEMENTS","ignoreShake","SelectTrigger","showSearch","dropdownPopupAlign","dropdownClassName","dropdownStyle","transitionName","animation","getPopupContainer","dropdownMatchSelectWidth","isMultiple","dropdownPrefixCls","dropdownVisibleChange","popupElement","open","created","triggerRef","getDropdownTransitionName","forcePopupAlign","$trigger","_classNames","_$props2","stretch","directives","action","popupPlacement","builtinPlacements","popupAlign","popupTransitionName","popup","popupVisible","popupClassName","popupStyle","$slots","selectorValueList","allowClear","showArrow","removeSelected","choiceTransitionName","ariaId","inputIcon","clearIcon","removeIcon","placeholder","focused","noop","BaseSelector","renderSelection","isRequired","renderPlaceholder","inject","vcTreeSelect","domRef","onFocus","onSelectorFocus","onBlur","onSelectorBlur","focus","blur","renderClear","onSelectorClear","renderArrow","outline","_$props3","onSelectorKeyDown","myTabIndex","click","modeName","SingleSelector","selectorRef","innerNode","_selectorValueList$","_$props$showArrow","SearchInput","needAlign","mirrorSearchValue","inputRef","mirrorInputRef","prevProps","mounted","$nextTick","alignInputWidth","updated","width","clientWidth","offsetWidth","isDidMount","handleInputChange","_e$target","target","composing","_searchValue","isComposing","onSearchInputChange","onSearchInputKeyDown","type","domProps","Selection","maxTagTextLength","onRemove","stopPropagation","content","remove","TREE_SELECT_EMPTY_VALUE_KEY","MultipleSelector","maxTagCount","maxTagPlaceholder","onPlaceholderClick","_renderPlaceholder","searchPlaceholder","currentPlaceholder","hidden","display","onChoiceAnimationLeave","_len","args","_key","apply","onMultipleSelectorRemove","listeners","myValueList","selectedValueNodes","restValueList","restNodeSelect","transitionProps","getTransitionProps","tag","afterLeave","nextProps","_ref$_prevProps","expandedKeyList","_expandedKeyList","cachedExpandedKeyList","_cachedExpandedKeyList","treeExpandedKeys","filteredTreeNodes","upperSearchValue","_keyList","has","BasePopup","searchHalfCheckedKeys","treeIcon","treeLine","treeNodeFilterProp","treeDefaultExpandAll","treeDefaultExpandedKeys","notFoundContent","renderSearch","treeRef","onTreeExpand","onLoad","getTree","getLoadData","filterVal","toUpperCase","renderNotFound","_$props4","keyList","_$props5","_vcTreeSelect","onPopupKeyDown","onTreeNodeSelect","onTreeNodeCheck","treeProps","$notFound","$treeNodes","$tree","treeAllProps","Symbol","select","check","expand","load","SinglePopup","searchRef","popupRef","_renderSearch","functional","isTreeNode","context","slots","scopedSlots","slotsKey","scopedSlotsTemp","treeNodeProps","nativeOn","Select","prefixAria","autoFocus","defaultOpen","defaultValue","inputValue","autoClearSearchValue","oneOf","treeDataSimpleMode","selectTriggerRef","_open","_valueList","_searchHalfCheckedKeys","_missValueList","_selectorValueList","_valueEntities","_init","_focused","_treeNodes","_filteredTreeNodes","onComponentKeyDown","_popup$getTree","domNode","$el","popupNode","triggerContainer","searchNode","onlyScrollIfNeeded","offsetTop","offsetHeight","_prevState$_prevProps","processState","propName","updater","valueRefresh","propValue","treeDataChanged","treeDataModeChanged","prevValue","prev","simpleMapper","posEntities","missValueList","filteredValueList","latestValueList","valueLabels","wrapperValue","String","filterTreeNodeFn","_","nodeValue","SelectNode","keyCode","KeyCode","ESC","setOpenState","UP","DOWN","LEFT","RIGHT","ENTER","onDeselect","nodeEventInfo","triggerChange","isSearchValueControlled","removeValue","triggerEntity","newValueList","triggerNode","extraInfo","triggerValue","deselectInfo","filteredEntityList","allCheckedNodes","_ref8","newMissValueList","_ref9","isLabelInValue","onValueTrigger","isAdd","nodeExtraInfo","_ref10","selectedValue","_ref11","_ref12","_ref13","checkedNodeList","oriKeyList","_ref14","_ref15","from","Set","_getPropsData","onDropdownVisibleChange","_$props6","_$data6","_$props7","isSet","_$data7","BACKSPACE","lastValue","setPopupRef","byTrigger","documentClickClose","_$props8","delayForcePopupAlign","_this5","_$data8","prevSelectorValueList","extra","preValue","_ref16","change","connectValueList","labelList","returnValue","_ref17","_ref18","_$data9","passProps","choiceAnimationLeave","$scopedSlots","popupProps","treeExpanded","Popup","MultiplePopup","$popup","Selector","$selector","selectTriggerProps","SHOW_ALL","SHOW_PARENT","SHOW_CHILD","module","exports","Header","format","disabledDate","clearText","inputReadOnly","def","hourOptions","minuteOptions","secondOptions","disabledHours","disabledMinutes","disabledSeconds","allowEmpty","defaultOpenValue","currentSelectPanel","focusOnOpen","str","invalid","requestAnimationFrame","window","input","onInputChange","_str","oldStr","originalValue","getProtoValue","parsed","isValid","hour","minute","second","disabledHourOptions","disabledMinuteOptions","disabledSecondOptions","changedValue","onKeyDown","getInput","invalidClass","ref","readOnly","scrollTo","element","to","duration","scrollTop","difference","perTick","options","selectedIndex","active","scrollToSelected","onSelect","onEsc","getOptions","item","_classnames","onClick","handleMouseEnter","handleMouseLeave","list","topOption","_cls","formatOption","option","disabledOptions","Combobox","showHour","showMinute","showSecond","use12Hours","isAM","onItemChange","itemValue","ampm","onEnterSelectPanel","range","getHourSelect","hourOptionsAdj","hourAdj","getMinuteSelect","getSecondSelect","getAMPMSelect","AMPMOptions","c","generateOptions","hideDisabledOptions","step","arr","toNearestValidTime","time","abs","Panel","hourStep","minuteStep","secondStep","addon","sValue","selectionRange","onChange","newValue","onAmPmChange","onCurrentSelectPanelChange","close","disabledHours2","_getListeners","_getListeners$esc","esc","_getListeners$keydown","keydown","validDefaultOpenValue","overlay","trigger","defaultVisible","visible","placement","afterVisibleChange","overlayStyle","overlayClassName","mouseEnterDelay","mouseLeaveDelay","getTooltipContainer","destroyTooltipOnHide","align","arrowContent","tipId","getPopupElement","Content","getPopupDomNode","restProps","extraProps","triggerProps","afterPopupVisibleChange","popupAnimation","defaultPopupVisible","destroyPopupOnHide","popupVisibleChange","visibleChange","slot","DRAG_SIDE_RANGE","DRAG_MIN_GAP","onlyTreeNodeWarned","warnOnlyTreeNode","arrDel","splice","arrAdd","posToArr","getPosition","getNodeChildren","isCheckDisabled","disableCheckbox","traverseTreeNodes","callback","processNode","componentOptions","childList","subNode","subIndex","mapChildren","getDragNodesKeys","calcDropPosition","clientY","_treeNode$$refs$selec","getBoundingClientRect","height","des","max","calcSelectedKeys","internalProcessProps","processor","_ref3$processProps","childrenNodes","onProcessFinished","set","parseCheckedKeys","keyProps","isCheck","checkStatus","conductUp","everyChildChecked","someChildChecked","childKey","childChecked","childHalfChecked","conductDown","conduct","checkedKeyList","halfCheckedKeyList","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","err","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_value","conductExpandParent","ICON_OPEN","ICON_CLOSE","defaultTitle","__ANT_TREE_NODE","root","isLeaf","dataRef","dragNodeHighlight","vcTreeNode","syncLoadData","beforeDestroy","onSelectorClick","isSelectable","onCheck","onSelectorDoubleClick","isDisabled","isCheckable","targetChecked","onMouseEnter","onMouseLeave","onContextMenu","onDragStart","dataTransfer","setData","error","onDragEnter","onDragOver","onDragLeave","onDragEnd","onDrop","onExpand","originList","targetList","getNodeState","isLeaf2","hasChildren","treeDisabled","_vcTree","treeSelectable","renderSwitcher","switcherCls","renderCheckbox","$custom","renderIcon","renderSelector","_vcTree2","wrapClass","$icon","currentIcon","currentTitle","$title","renderChildren","_vcTree3","animProps","css","$children","_vcTree4","use","autoComplete","sOpen","onPanelChange","setValue","onClear","setOpen","onVisibleChange","onKeyDown2","getFormat","fmtString","getPanelElement","getPopupClassName","selectColumnCount","picker","renderClearButton","_click"],"mappings":"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","file":"js/chunk-vendors~c55a91f5.5947248c.js","sourcesContent":["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 _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport warning from 'warning';\nimport { hasProp, initDefaultProps, getOptionProps, getSlots } from '../../_util/props-util';\nimport { cloneElement } from '../../_util/vnode';\nimport BaseMixin from '../../_util/BaseMixin';\nimport proxyComponent from '../../_util/proxyComponent';\nimport { convertTreeToEntities, convertDataToTree, getPosition, getDragNodesKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr, mapChildren, conductCheck, warnOnlyTreeNode } from './util';\n\n/**\n * Thought we still use `cloneElement` to pass `key`,\n * other props can pass with context for future refactor.\n */\n\nfunction getWatch() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var watch = {};\n keys.forEach(function (k) {\n watch[k] = function () {\n this.needSyncKeys[k] = true;\n };\n });\n return watch;\n}\n\nvar Tree = {\n name: 'Tree',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.any,\n treeData: PropTypes.array, // Generate treeNode by children\n showLine: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n focusable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n checkable: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n checkStrictly: PropTypes.bool,\n draggable: PropTypes.bool,\n defaultExpandParent: PropTypes.bool,\n autoExpandParent: PropTypes.bool,\n defaultExpandAll: PropTypes.bool,\n defaultExpandedKeys: PropTypes.array,\n expandedKeys: PropTypes.array,\n defaultCheckedKeys: PropTypes.array,\n checkedKeys: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n defaultSelectedKeys: PropTypes.array,\n selectedKeys: PropTypes.array,\n // onClick: PropTypes.func,\n // onDoubleClick: PropTypes.func,\n // onExpand: PropTypes.func,\n // onCheck: PropTypes.func,\n // onSelect: PropTypes.func,\n loadData: PropTypes.func,\n loadedKeys: PropTypes.array,\n // onMouseEnter: PropTypes.func,\n // onMouseLeave: PropTypes.func,\n // onRightClick: PropTypes.func,\n // onDragStart: PropTypes.func,\n // onDragEnter: PropTypes.func,\n // onDragOver: PropTypes.func,\n // onDragLeave: PropTypes.func,\n // onDragEnd: PropTypes.func,\n // onDrop: PropTypes.func,\n filterTreeNode: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n switcherIcon: PropTypes.any,\n _propsSymbol: PropTypes.any\n }, {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: []\n }),\n\n data: function data() {\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n warning(this.$props.children, 'please use children prop replace slots.default');\n this.needSyncKeys = {};\n this.domTreeNodes = {};\n var state = {\n _posEntities: new Map(),\n _keyEntities: new Map(),\n _expandedKeys: [],\n _selectedKeys: [],\n _checkedKeys: [],\n _halfCheckedKeys: [],\n _loadedKeys: [],\n _loadingKeys: [],\n _treeNode: [],\n _prevProps: null,\n _dragOverNodeKey: '',\n _dropPosition: null,\n _dragNodesKeys: []\n };\n return _extends({}, state, this.getDerivedState(getOptionProps(this), state));\n },\n provide: function provide() {\n return {\n vcTree: this\n };\n },\n\n\n watch: _extends({}, getWatch(['treeData', 'children', 'expandedKeys', 'autoExpandParent', 'selectedKeys', 'checkedKeys', 'loadedKeys']), {\n __propsSymbol__: function __propsSymbol__() {\n this.setState(this.getDerivedState(getOptionProps(this), this.$data));\n this.needSyncKeys = {};\n }\n }),\n\n methods: {\n getDerivedState: function getDerivedState(props, prevState) {\n var _prevProps = prevState._prevProps;\n\n var newState = {\n _prevProps: _extends({}, props)\n };\n var self = this;\n function needSync(name) {\n return !_prevProps && name in props || _prevProps && self.needSyncKeys[name];\n }\n\n // ================== Tree Node ==================\n var treeNode = null;\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeNode = convertDataToTree(this.$createElement, props.treeData);\n } else if (needSync('children')) {\n treeNode = props.children;\n }\n\n // Tree support filter function which will break the tree structure in the vdm.\n // We cache the treeNodes in state so that we can return the treeNode in event trigger.\n if (treeNode) {\n newState._treeNode = treeNode;\n\n // Calculate the entities data for quick match\n var entitiesMap = convertTreeToEntities(treeNode);\n newState._keyEntities = entitiesMap.keyEntities;\n }\n\n var keyEntities = newState._keyEntities || prevState._keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || _prevProps && needSync('autoExpandParent')) {\n newState._expandedKeys = props.autoExpandParent || !_prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!_prevProps && props.defaultExpandAll) {\n newState._expandedKeys = [].concat(_toConsumableArray(keyEntities.keys()));\n } else if (!_prevProps && props.defaultExpandedKeys) {\n newState._expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState._selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!_prevProps && props.defaultSelectedKeys) {\n newState._selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity = void 0;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!_prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeNode) {\n // If treeNode changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState._checkedKeys,\n halfCheckedKeys: prevState._halfCheckedKeys\n };\n }\n\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === undefined ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === undefined ? [] : _checkedKeyEntity$hal;\n\n\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n\n newState._checkedKeys = checkedKeys;\n newState._halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState._loadedKeys = props.loadedKeys;\n }\n\n return newState;\n },\n onNodeDragStart: function onNodeDragStart(event, node) {\n var _expandedKeys = this.$data._expandedKeys;\n var eventKey = node.eventKey;\n\n var children = getSlots(node)['default'];\n this.dragNode = node;\n\n this.setState({\n _dragNodesKeys: getDragNodesKeys(typeof children === 'function' ? children() : children, node),\n _expandedKeys: arrDel(_expandedKeys, eventKey)\n });\n this.__emit('dragstart', { event: event, node: node });\n },\n\n\n /**\n * [Legacy] Select handler is less small than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter: function onNodeDragEnter(event, node) {\n var _this = this;\n\n var expandedKeys = this.$data._expandedKeys;\n var pos = node.pos,\n eventKey = node.eventKey;\n\n\n if (!this.dragNode || !node.$refs.selectHandle) return;\n\n var dropPosition = calcDropPosition(event, node);\n\n // Skip if drag node is self\n if (this.dragNode.eventKey === eventKey && dropPosition === 0) {\n this.setState({\n _dragOverNodeKey: '',\n _dropPosition: null\n });\n return;\n }\n\n // Ref: https://github.com/react-component/tree/issues/132\n // Add timeout to let onDragLevel fire before onDragEnter,\n // so that we can clean drag props for onDragLeave node.\n // Macro task for this:\n // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script\n setTimeout(function () {\n // Update drag over node\n _this.setState({\n _dragOverNodeKey: eventKey,\n _dropPosition: dropPosition\n });\n\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n _this.delayedDragEnterLogic[pos] = setTimeout(function () {\n var newExpandedKeys = arrAdd(expandedKeys, eventKey);\n if (!hasProp(_this, 'expandedKeys')) {\n _this.setState({\n _expandedKeys: newExpandedKeys\n });\n }\n _this.__emit('dragenter', { event: event, node: node, expandedKeys: newExpandedKeys });\n }, 400);\n }, 0);\n },\n onNodeDragOver: function onNodeDragOver(event, node) {\n var eventKey = node.eventKey;\n var _$data = this.$data,\n _dragOverNodeKey = _$data._dragOverNodeKey,\n _dropPosition = _$data._dropPosition;\n // Update drag position\n\n if (this.dragNode && eventKey === _dragOverNodeKey && node.$refs.selectHandle) {\n var dropPosition = calcDropPosition(event, node);\n\n if (dropPosition === _dropPosition) return;\n\n this.setState({\n _dropPosition: dropPosition\n });\n }\n this.__emit('dragover', { event: event, node: node });\n },\n onNodeDragLeave: function onNodeDragLeave(event, node) {\n this.setState({\n _dragOverNodeKey: ''\n });\n this.__emit('dragleave', { event: event, node: node });\n },\n onNodeDragEnd: function onNodeDragEnd(event, node) {\n this.setState({\n _dragOverNodeKey: ''\n });\n this.__emit('dragend', { event: event, node: node });\n this.dragNode = null;\n },\n onNodeDrop: function onNodeDrop(event, node) {\n var _$data2 = this.$data,\n _$data2$_dragNodesKey = _$data2._dragNodesKeys,\n _dragNodesKeys = _$data2$_dragNodesKey === undefined ? [] : _$data2$_dragNodesKey,\n _dropPosition = _$data2._dropPosition;\n\n var eventKey = node.eventKey,\n pos = node.pos;\n\n\n this.setState({\n _dragOverNodeKey: ''\n });\n\n if (_dragNodesKeys.indexOf(eventKey) !== -1) {\n warning(false, \"Can not drop to dragNode(include it's children node)\");\n return;\n }\n\n var posArr = posToArr(pos);\n\n var dropResult = {\n event: event,\n node: node,\n dragNode: this.dragNode,\n dragNodesKeys: _dragNodesKeys.slice(),\n dropPosition: _dropPosition + Number(posArr[posArr.length - 1]),\n dropToGap: false\n };\n\n if (_dropPosition !== 0) {\n dropResult.dropToGap = true;\n }\n this.__emit('drop', dropResult);\n this.dragNode = null;\n },\n onNodeClick: function onNodeClick(e, treeNode) {\n this.__emit('click', e, treeNode);\n },\n onNodeDoubleClick: function onNodeDoubleClick(e, treeNode) {\n this.__emit('dblclick', e, treeNode);\n },\n onNodeSelect: function onNodeSelect(e, treeNode) {\n var selectedKeys = this.$data._selectedKeys;\n var keyEntities = this.$data._keyEntities;\n var multiple = this.$props.multiple;\n\n var _getOptionProps = getOptionProps(treeNode),\n selected = _getOptionProps.selected,\n eventKey = _getOptionProps.eventKey;\n\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, eventKey);\n } else if (!multiple) {\n selectedKeys = [eventKey];\n } else {\n selectedKeys = arrAdd(selectedKeys, eventKey);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (key) {\n var entity = keyEntities.get(key);\n if (!entity) return null;\n\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n\n this.setUncontrolledState({ _selectedKeys: selectedKeys });\n\n var eventObj = {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e\n };\n this.__emit('update:selectedKeys', selectedKeys);\n this.__emit('select', selectedKeys, eventObj);\n },\n onNodeCheck: function onNodeCheck(e, treeNode, checked) {\n var _$data3 = this.$data,\n keyEntities = _$data3._keyEntities,\n oriCheckedKeys = _$data3._checkedKeys,\n oriHalfCheckedKeys = _$data3._halfCheckedKeys;\n var checkStrictly = this.$props.checkStrictly;\n\n var _getOptionProps2 = getOptionProps(treeNode),\n eventKey = _getOptionProps2.eventKey;\n\n // Prepare trigger arguments\n\n\n var checkedObj = void 0;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e\n };\n\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, eventKey) : arrDel(oriCheckedKeys, eventKey);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, eventKey);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n\n eventObj.checkedNodes = checkedKeys.map(function (key) {\n return keyEntities.get(key);\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n\n this.setUncontrolledState({ _checkedKeys: checkedKeys });\n } else {\n var _conductCheck = conductCheck([eventKey], checked, keyEntities, {\n checkedKeys: oriCheckedKeys,\n halfCheckedKeys: oriHalfCheckedKeys\n }),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n checkedObj = _checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n\n _checkedKeys.forEach(function (key) {\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var node = entity.node,\n pos = entity.pos;\n\n\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node: node, pos: pos });\n });\n\n this.setUncontrolledState({\n _checkedKeys: _checkedKeys,\n _halfCheckedKeys: _halfCheckedKeys\n });\n }\n this.__emit('check', checkedObj, eventObj);\n },\n onNodeLoad: function onNodeLoad(treeNode) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n // We need to get the latest state of loading/loaded keys\n _this2.setState(function (_ref) {\n var _ref$_loadedKeys = _ref._loadedKeys,\n loadedKeys = _ref$_loadedKeys === undefined ? [] : _ref$_loadedKeys,\n _ref$_loadingKeys = _ref._loadingKeys,\n loadingKeys = _ref$_loadingKeys === undefined ? [] : _ref$_loadingKeys;\n var loadData = _this2.$props.loadData;\n\n var _getOptionProps3 = getOptionProps(treeNode),\n eventKey = _getOptionProps3.eventKey;\n\n if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) {\n return {};\n }\n\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var _$data4 = _this2.$data,\n currentLoadedKeys = _$data4._loadedKeys,\n currentLoadingKeys = _$data4._loadingKeys;\n\n var newLoadedKeys = arrAdd(currentLoadedKeys, eventKey);\n var newLoadingKeys = arrDel(currentLoadingKeys, eventKey);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n _this2.__emit('load', newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this2.setUncontrolledState({\n _loadedKeys: newLoadedKeys\n });\n _this2.setState({\n _loadingKeys: newLoadingKeys\n });\n resolve();\n });\n\n return {\n _loadingKeys: arrAdd(loadingKeys, eventKey)\n };\n });\n });\n },\n onNodeExpand: function onNodeExpand(e, treeNode) {\n var _this3 = this;\n\n var expandedKeys = this.$data._expandedKeys;\n var loadData = this.$props.loadData;\n\n var _getOptionProps4 = getOptionProps(treeNode),\n eventKey = _getOptionProps4.eventKey,\n expanded = _getOptionProps4.expanded;\n\n // Update selected keys\n\n\n var index = expandedKeys.indexOf(eventKey);\n var targetExpanded = !expanded;\n\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, eventKey);\n } else {\n expandedKeys = arrDel(expandedKeys, eventKey);\n }\n\n this.setUncontrolledState({ _expandedKeys: expandedKeys });\n this.__emit('expand', expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e\n });\n this.__emit('update:expandedKeys', expandedKeys);\n\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = this.onNodeLoad(treeNode);\n return loadPromise ? loadPromise.then(function () {\n // [Legacy] Refresh logic\n _this3.setUncontrolledState({ _expandedKeys: expandedKeys });\n }) : null;\n }\n\n return null;\n },\n onNodeMouseEnter: function onNodeMouseEnter(event, node) {\n this.__emit('mouseenter', { event: event, node: node });\n },\n onNodeMouseLeave: function onNodeMouseLeave(event, node) {\n this.__emit('mouseleave', { event: event, node: node });\n },\n onNodeContextMenu: function onNodeContextMenu(event, node) {\n event.preventDefault();\n this.__emit('rightClick', { event: event, node: node });\n },\n\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState: function setUncontrolledState(state) {\n var needSync = false;\n var newState = {};\n var props = getOptionProps(this);\n Object.keys(state).forEach(function (name) {\n if (name.replace('_', '') in props) return;\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n },\n registerTreeNode: function registerTreeNode(key, node) {\n if (node) {\n this.domTreeNodes[key] = node;\n } else {\n delete this.domTreeNodes[key];\n }\n },\n isKeyChecked: function isKeyChecked(key) {\n var _$data$_checkedKeys = this.$data._checkedKeys,\n checkedKeys = _$data$_checkedKeys === undefined ? [] : _$data$_checkedKeys;\n\n return checkedKeys.indexOf(key) !== -1;\n },\n\n\n /**\n * [Legacy] Original logic use `key` as tracking clue.\n * We have to use `cloneElement` to pass `key`.\n */\n renderTreeNode: function renderTreeNode(child, index) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var _$data5 = this.$data,\n keyEntities = _$data5._keyEntities,\n _$data5$_expandedKeys = _$data5._expandedKeys,\n expandedKeys = _$data5$_expandedKeys === undefined ? [] : _$data5$_expandedKeys,\n _$data5$_selectedKeys = _$data5._selectedKeys,\n selectedKeys = _$data5$_selectedKeys === undefined ? [] : _$data5$_selectedKeys,\n _$data5$_halfCheckedK = _$data5._halfCheckedKeys,\n halfCheckedKeys = _$data5$_halfCheckedK === undefined ? [] : _$data5$_halfCheckedK,\n _$data5$_loadedKeys = _$data5._loadedKeys,\n loadedKeys = _$data5$_loadedKeys === undefined ? [] : _$data5$_loadedKeys,\n _$data5$_loadingKeys = _$data5._loadingKeys,\n loadingKeys = _$data5$_loadingKeys === undefined ? [] : _$data5$_loadingKeys,\n dragOverNodeKey = _$data5._dragOverNodeKey,\n dropPosition = _$data5._dropPosition;\n\n var pos = getPosition(level, index);\n var key = child.key;\n if (!key && (key === undefined || key === null)) {\n key = pos;\n }\n if (!keyEntities.get(key)) {\n warnOnlyTreeNode();\n return null;\n }\n\n return cloneElement(child, {\n props: {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: this.isKeyChecked(key),\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: pos,\n\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n },\n key: key\n });\n }\n },\n\n render: function render() {\n var _this4 = this;\n\n var h = arguments[0];\n var treeNode = this.$data._treeNode;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n focusable = _$props.focusable,\n showLine = _$props.showLine,\n _$props$tabIndex = _$props.tabIndex,\n tabIndex = _$props$tabIndex === undefined ? 0 : _$props$tabIndex;\n\n\n return h(\n 'ul',\n {\n 'class': classNames(prefixCls, _defineProperty({}, prefixCls + '-show-line', showLine)),\n attrs: { role: 'tree',\n unselectable: 'on',\n tabIndex: focusable ? tabIndex : null\n }\n },\n [mapChildren(treeNode, function (node, index) {\n return _this4.renderTreeNode(node, index);\n })]\n );\n }\n};\n\nexport { Tree };\n\nexport default proxyComponent(Tree);","import ProxyTree, { Tree } from './Tree';\nimport TreeNode from './TreeNode';\nTree.TreeNode = TreeNode;\nProxyTree.TreeNode = TreeNode;\n\nexport { Tree, TreeNode };\nexport default ProxyTree;","import _typeof from 'babel-runtime/helpers/typeof';\nimport _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from 'warning';\nimport omit from 'omit.js';\nimport { convertDataToTree as vcConvertDataToTree, convertTreeToEntities as vcConvertTreeToEntities, conductCheck as rcConductCheck } from '../../vc-tree/src/util';\nimport { hasClass } from '../../vc-util/Dom/class';\nimport { SHOW_CHILD, SHOW_PARENT } from './strategies';\nimport { getSlots, getPropsData, isEmptyElement } from '../../_util/props-util';\n\nvar warnDeprecatedLabel = false;\n\n// =================== DOM =====================\nexport function findPopupContainer(node, prefixClass) {\n var current = node;\n while (current) {\n if (hasClass(current, prefixClass)) {\n return current;\n }\n current = current.parentNode;\n }\n\n return null;\n}\n\n// =================== MISC ====================\nexport function toTitle(title) {\n if (typeof title === 'string') {\n return title;\n }\n return null;\n}\n\nexport function toArray(data) {\n if (data === undefined || data === null) return [];\n\n return Array.isArray(data) ? data : [data];\n}\n\nexport function createRef() {\n var func = function setRef(node) {\n func.current = node;\n };\n return func;\n}\n\n// =============== Legacy ===============\nexport var UNSELECTABLE_STYLE = {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n};\n\nexport var UNSELECTABLE_ATTRIBUTE = {\n unselectable: 'unselectable'\n};\n\n/**\n * Convert position list to hierarchy structure.\n * This is little hack since use '-' to split the position.\n */\nexport function flatToHierarchy(positionList) {\n if (!positionList.length) {\n return [];\n }\n\n var entrances = {};\n\n // Prepare the position map\n var posMap = {};\n var parsedList = positionList.slice().map(function (entity) {\n var clone = _extends({}, entity, {\n fields: entity.pos.split('-')\n });\n delete clone.children;\n return clone;\n });\n\n parsedList.forEach(function (entity) {\n posMap[entity.pos] = entity;\n });\n\n parsedList.sort(function (a, b) {\n return a.fields.length - b.fields.length;\n });\n\n // Create the hierarchy\n parsedList.forEach(function (entity) {\n var parentPos = entity.fields.slice(0, -1).join('-');\n var parentEntity = posMap[parentPos];\n\n if (!parentEntity) {\n entrances[entity.pos] = entity;\n } else {\n parentEntity.children = parentEntity.children || [];\n parentEntity.children.push(entity);\n }\n\n // Some time position list provide `key`, we don't need it\n delete entity.key;\n delete entity.fields;\n });\n\n return Object.keys(entrances).map(function (key) {\n return entrances[key];\n });\n}\n\n// =============== Accessibility ===============\nvar ariaId = 0;\n\nexport function resetAriaId() {\n ariaId = 0;\n}\n\nexport function generateAriaId(prefix) {\n ariaId += 1;\n return prefix + '_' + ariaId;\n}\n\nexport function isLabelInValue(props) {\n var treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n labelInValue = props.labelInValue;\n\n if (treeCheckable && treeCheckStrictly) {\n return true;\n }\n return labelInValue || false;\n}\n\n// =================== Tree ====================\nexport function parseSimpleTreeData(treeData, _ref) {\n var id = _ref.id,\n pId = _ref.pId,\n rootPId = _ref.rootPId;\n\n var keyNodes = {};\n var rootNodeList = [];\n\n // Fill in the map\n var nodeList = treeData.map(function (node) {\n var clone = _extends({}, node);\n var key = clone[id];\n keyNodes[key] = clone;\n clone.key = clone.key || key;\n return clone;\n });\n\n // Connect tree\n nodeList.forEach(function (node) {\n var parentKey = node[pId];\n var parent = keyNodes[parentKey];\n\n // Fill parent\n if (parent) {\n parent.children = parent.children || [];\n parent.children.push(node);\n }\n\n // Fill root tree node\n if (parentKey === rootPId || !parent && rootPId === null) {\n rootNodeList.push(node);\n }\n });\n\n return rootNodeList;\n}\n\n/**\n * Detect if position has relation.\n * e.g. 1-2 related with 1-2-3\n * e.g. 1-3-2 related with 1\n * e.g. 1-2 not related with 1-21\n */\nexport function isPosRelated(pos1, pos2) {\n var fields1 = pos1.split('-');\n var fields2 = pos2.split('-');\n\n var minLen = Math.min(fields1.length, fields2.length);\n for (var i = 0; i < minLen; i += 1) {\n if (fields1[i] !== fields2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * This function is only used on treeNode check (none treeCheckStrictly but has searchInput).\n * We convert entity to { node, pos, children } format.\n * This is legacy bug but we still need to do with it.\n * @param entity\n */\nexport function cleanEntity(_ref2) {\n var node = _ref2.node,\n pos = _ref2.pos,\n children = _ref2.children;\n\n var instance = {\n node: node,\n pos: pos\n };\n\n if (children) {\n instance.children = children.map(cleanEntity);\n }\n\n return instance;\n}\n\n/**\n * Get a filtered TreeNode list by provided treeNodes.\n * [Legacy] Since `Tree` use `key` as map but `key` will changed by React,\n * we have to convert `treeNodes > data > treeNodes` to keep the key.\n * Such performance hungry!\n */\nexport function getFilterTree(h, treeNodes, searchValue, filterFunc, valueEntities, Component) {\n if (!searchValue) {\n return null;\n }\n\n function mapFilteredNodeToData(node) {\n if (!node || isEmptyElement(node)) return null;\n\n var match = false;\n if (filterFunc(searchValue, node)) {\n match = true;\n }\n var children = getSlots(node)['default'];\n children = ((typeof children === 'function' ? children() : children) || []).map(mapFilteredNodeToData).filter(function (n) {\n return n;\n });\n if (children.length || match) {\n return h(\n Component,\n _mergeJSXProps([node.data, { key: valueEntities[getPropsData(node).value].key }]),\n [children]\n );\n }\n\n return null;\n }\n return treeNodes.map(mapFilteredNodeToData).filter(function (node) {\n return node;\n });\n}\n\n// =================== Value ===================\n/**\n * Convert value to array format to make logic simplify.\n */\nexport function formatInternalValue(value, props) {\n var valueList = toArray(value);\n\n // Parse label in value\n if (isLabelInValue(props)) {\n return valueList.map(function (val) {\n if ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) !== 'object' || !val) {\n return {\n value: '',\n label: ''\n };\n }\n\n return val;\n });\n }\n\n return valueList.map(function (val) {\n return {\n value: val\n };\n });\n}\n\nexport function getLabel(wrappedValue, entity, treeNodeLabelProp) {\n if (wrappedValue.label) {\n return wrappedValue.label;\n }\n\n if (entity) {\n var props = getPropsData(entity.node);\n if (Object.keys(props).length) {\n return props[treeNodeLabelProp];\n }\n }\n\n // Since value without entity will be in missValueList.\n // This code will never reached, but we still need this in case.\n return wrappedValue.value;\n}\n\n/**\n * Convert internal state `valueList` to user needed value list.\n * This will return an array list. You need check if is not multiple when return.\n *\n * `allCheckedNodes` is used for `treeCheckStrictly`\n */\nexport function formatSelectorValue(valueList, props, valueEntities) {\n var treeNodeLabelProp = props.treeNodeLabelProp,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly,\n showCheckedStrategy = props.showCheckedStrategy;\n\n // Will hide some value if `showCheckedStrategy` is set\n\n if (treeCheckable && !treeCheckStrictly) {\n var values = {};\n valueList.forEach(function (wrappedValue) {\n values[wrappedValue.value] = wrappedValue;\n });\n var hierarchyList = flatToHierarchy(valueList.map(function (_ref3) {\n var value = _ref3.value;\n return valueEntities[value];\n }));\n\n if (showCheckedStrategy === SHOW_PARENT) {\n // Only get the parent checked value\n return hierarchyList.map(function (_ref4) {\n var node = _ref4.node;\n\n var value = getPropsData(node).value;\n return {\n label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n value: value\n };\n });\n }\n if (showCheckedStrategy === SHOW_CHILD) {\n // Only get the children checked value\n var targetValueList = [];\n\n // Find the leaf children\n var traverse = function traverse(_ref5) {\n var node = _ref5.node,\n children = _ref5.children;\n\n var value = getPropsData(node).value;\n if (!children || children.length === 0) {\n targetValueList.push({\n label: getLabel(values[value], valueEntities[value], treeNodeLabelProp),\n value: value\n });\n return;\n }\n\n children.forEach(function (entity) {\n traverse(entity);\n });\n };\n\n hierarchyList.forEach(function (entity) {\n traverse(entity);\n });\n\n return targetValueList;\n }\n }\n\n return valueList.map(function (wrappedValue) {\n return {\n label: getLabel(wrappedValue, valueEntities[wrappedValue.value], treeNodeLabelProp),\n value: wrappedValue.value\n };\n });\n}\n\n/**\n * Use `rc-tree` convertDataToTree to convert treeData to TreeNodes.\n * This will change the label to title value\n */\nfunction processProps(props) {\n var title = props.title,\n label = props.label,\n value = props.value,\n cls = props['class'],\n style = props.style,\n _props$on = props.on,\n on = _props$on === undefined ? {} : _props$on;\n\n var key = props.key;\n if (!key && (key === undefined || key === null)) {\n key = value;\n }\n var p = {\n props: omit(props, ['on', 'key', 'class', 'className', 'style']),\n on: on,\n 'class': cls || props.className,\n style: style,\n key: key\n };\n // Warning user not to use deprecated label prop.\n if (label && !title) {\n if (!warnDeprecatedLabel) {\n warning(false, \"'label' in treeData is deprecated. Please use 'title' instead.\");\n warnDeprecatedLabel = true;\n }\n\n p.props.title = label;\n }\n\n return p;\n}\n\nexport function convertDataToTree(h, treeData) {\n return vcConvertDataToTree(h, treeData, { processProps: processProps });\n}\n\n/**\n * Use `rc-tree` convertTreeToEntities for entities calculation.\n * We have additional entities of `valueEntities`\n */\nfunction initWrapper(wrapper) {\n return _extends({}, wrapper, {\n valueEntities: {}\n });\n}\n\nfunction processEntity(entity, wrapper) {\n var value = getPropsData(entity.node).value;\n entity.value = value;\n\n // This should be empty, or will get error message.\n var currentEntity = wrapper.valueEntities[value];\n if (currentEntity) {\n warning(false, 'Conflict! value of node \\'' + entity.key + '\\' (' + value + ') has already used by node \\'' + currentEntity.key + '\\'.');\n }\n wrapper.valueEntities[value] = entity;\n}\n\nexport function convertTreeToEntities(treeNodes) {\n return vcConvertTreeToEntities(treeNodes, {\n initWrapper: initWrapper,\n processEntity: processEntity\n });\n}\n\n/**\n * https://github.com/ant-design/ant-design/issues/13328\n * We need calculate the half check key when searchValue is set.\n */\n// TODO: This logic may better move to rc-tree\nexport function getHalfCheckedKeys(valueList, valueEntities) {\n var values = {};\n\n // Fill checked keys\n valueList.forEach(function (_ref6) {\n var value = _ref6.value;\n\n values[value] = false;\n });\n\n // Fill half checked keys\n valueList.forEach(function (_ref7) {\n var value = _ref7.value;\n\n var current = valueEntities[value];\n\n while (current && current.parent) {\n var parentValue = current.parent.value;\n if (parentValue in values) break;\n values[parentValue] = true;\n\n current = current.parent;\n }\n });\n\n // Get half keys\n return Object.keys(values).filter(function (value) {\n return values[value];\n }).map(function (value) {\n return valueEntities[value].key;\n });\n}\n\nexport var conductCheck = rcConductCheck;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../../_util/vue-types';\n\nimport Trigger from '../../vc-trigger';\nimport { createRef } from './util';\nimport classNames from 'classnames';\n\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n },\n ignoreShake: true\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n },\n ignoreShake: true\n }\n};\n\nvar SelectTrigger = {\n name: 'SelectTrigger',\n props: {\n // Pass by outside user props\n disabled: PropTypes.bool,\n showSearch: PropTypes.bool,\n prefixCls: PropTypes.string,\n dropdownPopupAlign: PropTypes.object,\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n transitionName: PropTypes.string,\n animation: PropTypes.string,\n getPopupContainer: PropTypes.func,\n\n dropdownMatchSelectWidth: PropTypes.bool,\n\n // Pass by Select\n isMultiple: PropTypes.bool,\n dropdownPrefixCls: PropTypes.string,\n dropdownVisibleChange: PropTypes.func,\n popupElement: PropTypes.node,\n open: PropTypes.bool\n },\n created: function created() {\n this.triggerRef = createRef();\n },\n\n methods: {\n getDropdownTransitionName: function getDropdownTransitionName() {\n var _$props = this.$props,\n transitionName = _$props.transitionName,\n animation = _$props.animation,\n dropdownPrefixCls = _$props.dropdownPrefixCls;\n\n if (!transitionName && animation) {\n return dropdownPrefixCls + '-' + animation;\n }\n return transitionName;\n },\n forcePopupAlign: function forcePopupAlign() {\n var $trigger = this.triggerRef.current;\n if ($trigger) {\n $trigger.forcePopupAlign();\n }\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props2 = this.$props,\n disabled = _$props2.disabled,\n isMultiple = _$props2.isMultiple,\n dropdownPopupAlign = _$props2.dropdownPopupAlign,\n dropdownMatchSelectWidth = _$props2.dropdownMatchSelectWidth,\n dropdownClassName = _$props2.dropdownClassName,\n dropdownStyle = _$props2.dropdownStyle,\n dropdownVisibleChange = _$props2.dropdownVisibleChange,\n getPopupContainer = _$props2.getPopupContainer,\n dropdownPrefixCls = _$props2.dropdownPrefixCls,\n popupElement = _$props2.popupElement,\n open = _$props2.open;\n\n // TODO: [Legacy] Use new action when trigger fixed: https://github.com/react-component/trigger/pull/86\n\n // When false do nothing with the width\n // ref: https://github.com/ant-design/ant-design/issues/10927\n\n var stretch = void 0;\n if (dropdownMatchSelectWidth !== false) {\n stretch = dropdownMatchSelectWidth ? 'width' : 'minWidth';\n }\n return h(\n Trigger,\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.triggerRef\n }]\n }, {\n attrs: {\n action: disabled ? [] : ['click'],\n popupPlacement: 'bottomLeft',\n builtinPlacements: BUILT_IN_PLACEMENTS,\n popupAlign: dropdownPopupAlign,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: this.getDropdownTransitionName(),\n\n popup: popupElement,\n popupVisible: open,\n getPopupContainer: getPopupContainer,\n stretch: stretch,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, dropdownPrefixCls + '--multiple', isMultiple), _defineProperty(_classNames, dropdownPrefixCls + '--single', !isMultiple), _classNames)),\n popupStyle: dropdownStyle\n },\n on: {\n 'popupVisibleChange': dropdownVisibleChange\n }\n }]),\n [this.$slots['default']]\n );\n }\n};\n\nexport default SelectTrigger;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * Input Box is in different position for different mode.\n * This not the same design as `Select` cause it's followed by antd 0.x `Select`.\n * We will not follow the new design immediately since antd 3.x is already released.\n *\n * So this file named as Selector to avoid confuse.\n */\nimport { createRef } from '../util';\nimport PropTypes from '../../../_util/vue-types';\nimport classNames from 'classnames';\nimport { initDefaultProps, getComponentFromProp, getListeners } from '../../../_util/props-util';\nimport BaseMixin from '../../../_util/BaseMixin';\nexport var selectorPropTypes = function selectorPropTypes() {\n return {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n open: PropTypes.bool,\n selectorValueList: PropTypes.array,\n allowClear: PropTypes.bool,\n showArrow: PropTypes.bool,\n // onClick: PropTypes.func,\n // onBlur: PropTypes.func,\n // onFocus: PropTypes.func,\n removeSelected: PropTypes.func,\n choiceTransitionName: PropTypes.string,\n // Pass by component\n ariaId: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n placeholder: PropTypes.any,\n disabled: PropTypes.bool,\n focused: PropTypes.bool\n };\n};\n\nfunction noop() {}\nexport default function (modeName) {\n var BaseSelector = {\n name: 'BaseSelector',\n mixins: [BaseMixin],\n props: initDefaultProps(_extends({}, selectorPropTypes(), {\n\n // Pass by HOC\n renderSelection: PropTypes.func.isRequired,\n renderPlaceholder: PropTypes.func,\n tabIndex: PropTypes.number\n }), {\n tabIndex: 0\n }),\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n created: function created() {\n this.domRef = createRef();\n },\n\n methods: {\n onFocus: function onFocus(e) {\n var focused = this.$props.focused;\n var onSelectorFocus = this.vcTreeSelect.onSelectorFocus;\n\n\n if (!focused) {\n onSelectorFocus();\n }\n this.__emit('focus', e);\n },\n onBlur: function onBlur(e) {\n var onSelectorBlur = this.vcTreeSelect.onSelectorBlur;\n\n // TODO: Not trigger when is inner component get focused\n\n onSelectorBlur();\n this.__emit('blur', e);\n },\n focus: function focus() {\n this.domRef.current.focus();\n },\n blur: function blur() {\n this.domRef.current.blur();\n },\n renderClear: function renderClear() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n allowClear = _$props.allowClear,\n selectorValueList = _$props.selectorValueList;\n var onSelectorClear = this.vcTreeSelect.onSelectorClear;\n\n\n if (!allowClear || !selectorValueList.length || !selectorValueList[0].value) {\n return null;\n }\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n return h(\n 'span',\n { key: 'clear', 'class': prefixCls + '-selection__clear', on: {\n 'click': onSelectorClear\n }\n },\n [clearIcon]\n );\n },\n renderArrow: function renderArrow() {\n var h = this.$createElement;\n var _$props2 = this.$props,\n prefixCls = _$props2.prefixCls,\n showArrow = _$props2.showArrow;\n\n if (!showArrow) {\n return null;\n }\n var inputIcon = getComponentFromProp(this, 'inputIcon');\n return h(\n 'span',\n { key: 'arrow', 'class': prefixCls + '-arrow', style: { outline: 'none' } },\n [inputIcon]\n );\n }\n },\n\n render: function render() {\n var _classNames;\n\n var h = arguments[0];\n var _$props3 = this.$props,\n prefixCls = _$props3.prefixCls,\n className = _$props3.className,\n style = _$props3.style,\n open = _$props3.open,\n focused = _$props3.focused,\n disabled = _$props3.disabled,\n allowClear = _$props3.allowClear,\n ariaId = _$props3.ariaId,\n renderSelection = _$props3.renderSelection,\n renderPlaceholder = _$props3.renderPlaceholder,\n tabIndex = _$props3.tabIndex;\n var onSelectorKeyDown = this.vcTreeSelect.onSelectorKeyDown;\n\n\n var myTabIndex = tabIndex;\n if (disabled) {\n myTabIndex = null;\n }\n\n return h(\n 'span',\n _mergeJSXProps([{\n style: style,\n on: {\n 'click': getListeners(this).click || noop\n },\n\n 'class': classNames(className, prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-open', open), _defineProperty(_classNames, prefixCls + '-focused', open || focused), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-enabled', !disabled), _defineProperty(_classNames, prefixCls + '-allow-clear', allowClear), _classNames))\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.domRef\n }]\n }, {\n attrs: {\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-owns': open ? ariaId : undefined,\n 'aria-controls': open ? ariaId : undefined,\n 'aria-haspopup': 'listbox',\n 'aria-disabled': disabled,\n tabIndex: myTabIndex\n },\n on: {\n 'focus': this.onFocus,\n 'blur': this.onBlur,\n 'keydown': onSelectorKeyDown\n }\n }]),\n [h(\n 'span',\n {\n key: 'selection',\n 'class': classNames(prefixCls + '-selection', prefixCls + '-selection--' + modeName)\n },\n [renderSelection(), this.renderClear(), this.renderArrow(), renderPlaceholder && renderPlaceholder()]\n )]\n );\n }\n };\n\n return BaseSelector;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport generateSelector, { selectorPropTypes } from '../Base/BaseSelector';\nimport { toTitle } from '../util';\nimport { getOptionProps, getListeners } from '../../../_util/props-util';\nimport { createRef } from '../util';\nvar Selector = generateSelector('single');\n\nvar SingleSelector = {\n name: 'SingleSelector',\n props: selectorPropTypes(),\n created: function created() {\n this.selectorRef = createRef();\n },\n\n methods: {\n focus: function focus() {\n this.selectorRef.current.focus();\n },\n blur: function blur() {\n this.selectorRef.current.blur();\n },\n renderSelection: function renderSelection() {\n var h = this.$createElement;\n var _$props = this.$props,\n selectorValueList = _$props.selectorValueList,\n placeholder = _$props.placeholder,\n prefixCls = _$props.prefixCls;\n\n\n var innerNode = void 0;\n\n if (selectorValueList.length) {\n var _selectorValueList$ = selectorValueList[0],\n label = _selectorValueList$.label,\n value = _selectorValueList$.value;\n\n innerNode = h(\n 'span',\n { key: 'value', attrs: { title: toTitle(label) },\n 'class': prefixCls + '-selection-selected-value' },\n [label || value]\n );\n } else {\n innerNode = h(\n 'span',\n { key: 'placeholder', 'class': prefixCls + '-selection__placeholder' },\n [placeholder]\n );\n }\n\n return h(\n 'span',\n { 'class': prefixCls + '-selection__rendered' },\n [innerNode]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props$showArrow = this.$props.showArrow,\n showArrow = _$props$showArrow === undefined ? true : _$props$showArrow;\n\n var props = {\n props: _extends({}, getOptionProps(this), {\n showArrow: showArrow,\n renderSelection: this.renderSelection\n }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.selectorRef\n }]\n };\n return h(Selector, props);\n }\n};\n\nexport default SingleSelector;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * Since search box is in different position with different mode.\n * - Single: in the popup box\n * - multiple: in the selector\n * Move the code as a SearchInput for easy management.\n */\n\nimport PropTypes from '../../_util/vue-types';\nimport { createRef } from './util';\n\nvar SearchInput = {\n name: 'SearchInput',\n props: {\n open: PropTypes.bool,\n searchValue: PropTypes.string,\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n renderPlaceholder: PropTypes.func,\n needAlign: PropTypes.bool,\n ariaId: PropTypes.string\n },\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n data: function data() {\n return {\n mirrorSearchValue: this.searchValue\n };\n },\n\n watch: {\n searchValue: function searchValue(val) {\n this.mirrorSearchValue = val;\n }\n },\n created: function created() {\n this.inputRef = createRef();\n this.mirrorInputRef = createRef();\n this.prevProps = _extends({}, this.$props);\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var _$props = _this.$props,\n open = _$props.open,\n needAlign = _$props.needAlign;\n\n if (needAlign) {\n _this.alignInputWidth();\n }\n\n if (open) {\n _this.focus(true);\n }\n });\n },\n updated: function updated() {\n var _this2 = this;\n\n var _$props2 = this.$props,\n open = _$props2.open,\n searchValue = _$props2.searchValue,\n needAlign = _$props2.needAlign;\n var prevProps = this.prevProps;\n\n this.$nextTick(function () {\n if (open && prevProps.open !== open) {\n _this2.focus();\n }\n if (needAlign && searchValue !== prevProps.searchValue) {\n _this2.alignInputWidth();\n }\n _this2.prevProps = _extends({}, _this2.$props);\n });\n },\n\n methods: {\n /**\n * `scrollWidth` is not correct in IE, do the workaround.\n * ref: https://github.com/react-component/tree-select/issues/65\n * clientWidth 0 when mounted in vue. why?\n */\n alignInputWidth: function alignInputWidth() {\n this.inputRef.current.style.width = (this.mirrorInputRef.current.clientWidth || this.mirrorInputRef.current.offsetWidth) + 'px';\n },\n\n\n /**\n * Need additional timeout for focus cause parent dom is not ready when didMount trigger\n */\n focus: function focus(isDidMount) {\n var _this3 = this;\n\n if (this.inputRef.current) {\n if (isDidMount) {\n setTimeout(function () {\n _this3.inputRef.current.focus();\n }, 0);\n } else {\n // set it into else, Avoid scrolling when focus\n this.inputRef.current.focus();\n }\n }\n },\n blur: function blur() {\n if (this.inputRef.current) {\n this.inputRef.current.blur();\n }\n },\n handleInputChange: function handleInputChange(e) {\n var _e$target = e.target,\n value = _e$target.value,\n composing = _e$target.composing;\n var _searchValue = this.searchValue,\n searchValue = _searchValue === undefined ? '' : _searchValue;\n\n if (e.isComposing || composing || searchValue === value) {\n this.mirrorSearchValue = value;\n return;\n }\n this.vcTreeSelect.onSearchInputChange(e);\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props3 = this.$props,\n searchValue = _$props3.searchValue,\n prefixCls = _$props3.prefixCls,\n disabled = _$props3.disabled,\n renderPlaceholder = _$props3.renderPlaceholder,\n open = _$props3.open,\n ariaId = _$props3.ariaId;\n var onSearchInputKeyDown = this.vcTreeSelect.onSearchInputKeyDown,\n handleInputChange = this.handleInputChange,\n mirrorSearchValue = this.mirrorSearchValue;\n\n return h(\n 'span',\n { 'class': prefixCls + '-search__field__wrap' },\n [h('input', _mergeJSXProps([{\n attrs: {\n type: 'text'\n }\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }, {\n name: 'ant-input'\n }]\n }, {\n on: {\n 'input': handleInputChange,\n 'keydown': onSearchInputKeyDown\n },\n domProps: {\n 'value': searchValue\n },\n attrs: {\n disabled: disabled,\n\n 'aria-label': 'filter select',\n 'aria-autocomplete': 'list',\n 'aria-controls': open ? ariaId : undefined,\n 'aria-multiline': 'false'\n },\n 'class': prefixCls + '-search__field' }])), h(\n 'span',\n _mergeJSXProps([{\n directives: [{\n name: 'ant-ref',\n value: this.mirrorInputRef\n }]\n }, {\n 'class': prefixCls + '-search__field__mirror'\n }]),\n [mirrorSearchValue, '\\xA0']\n ), renderPlaceholder && !mirrorSearchValue ? renderPlaceholder() : null]\n );\n }\n};\n\nexport default SearchInput;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../../../../_util/vue-types';\nimport { toTitle, UNSELECTABLE_ATTRIBUTE, UNSELECTABLE_STYLE } from '../../util';\nimport { getComponentFromProp, getListeners } from '../../../../_util/props-util';\nimport BaseMixin from '../../../../_util/BaseMixin';\n\nvar Selection = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n maxTagTextLength: PropTypes.number,\n // onRemove: PropTypes.func,\n\n label: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n removeIcon: PropTypes.any\n },\n methods: {\n onRemove: function onRemove(event) {\n var value = this.$props.value;\n\n this.__emit('remove', event, value);\n event.stopPropagation();\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n maxTagTextLength = _$props.maxTagTextLength,\n label = _$props.label,\n value = _$props.value;\n\n var content = label || value;\n if (maxTagTextLength && typeof content === 'string' && content.length > maxTagTextLength) {\n content = content.slice(0, maxTagTextLength) + '...';\n }\n\n return h(\n 'li',\n _mergeJSXProps([{\n style: UNSELECTABLE_STYLE\n }, { attrs: UNSELECTABLE_ATTRIBUTE }, {\n attrs: {\n role: 'menuitem',\n\n title: toTitle(label)\n },\n 'class': prefixCls + '-selection__choice' }]),\n [getListeners(this).remove && h(\n 'span',\n { 'class': prefixCls + '-selection__choice__remove', on: {\n 'click': this.onRemove\n }\n },\n [getComponentFromProp(this, 'removeIcon')]\n ), h(\n 'span',\n { 'class': prefixCls + '-selection__choice__content' },\n [content]\n )]\n );\n }\n};\n\nexport default Selection;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../../_util/vue-types';\nimport { createRef } from '../../util';\nimport generateSelector, { selectorPropTypes } from '../../Base/BaseSelector';\nimport SearchInput from '../../SearchInput';\nimport Selection from './Selection';\nimport { getComponentFromProp, getListeners } from '../../../../_util/props-util';\nimport getTransitionProps from '../../../../_util/getTransitionProps';\nimport BaseMixin from '../../../../_util/BaseMixin';\nvar TREE_SELECT_EMPTY_VALUE_KEY = 'RC_TREE_SELECT_EMPTY_VALUE_KEY';\n\nvar Selector = generateSelector('multiple');\n\n// export const multipleSelectorContextTypes = {\n// onMultipleSelectorRemove: PropTypes.func.isRequired,\n// }\n\nvar MultipleSelector = {\n mixins: [BaseMixin],\n props: _extends({}, selectorPropTypes(), SearchInput.props, {\n selectorValueList: PropTypes.array,\n disabled: PropTypes.bool,\n searchValue: PropTypes.string,\n labelInValue: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.any\n\n // onChoiceAnimationLeave: PropTypes.func,\n }),\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n created: function created() {\n this.inputRef = createRef();\n },\n\n methods: {\n onPlaceholderClick: function onPlaceholderClick() {\n this.inputRef.current.focus();\n },\n focus: function focus() {\n this.inputRef.current.focus();\n },\n blur: function blur() {\n this.inputRef.current.blur();\n },\n _renderPlaceholder: function _renderPlaceholder() {\n var h = this.$createElement;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n placeholder = _$props.placeholder,\n searchPlaceholder = _$props.searchPlaceholder,\n searchValue = _$props.searchValue,\n selectorValueList = _$props.selectorValueList;\n\n\n var currentPlaceholder = placeholder || searchPlaceholder;\n\n if (!currentPlaceholder) return null;\n\n var hidden = searchValue || selectorValueList.length;\n\n // [Legacy] Not remove the placeholder\n return h(\n 'span',\n {\n style: {\n display: hidden ? 'none' : 'block'\n },\n on: {\n 'click': this.onPlaceholderClick\n },\n\n 'class': prefixCls + '-search__field__placeholder'\n },\n [currentPlaceholder]\n );\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.__emit.apply(this, ['choiceAnimationLeave'].concat(_toConsumableArray(args)));\n },\n renderSelection: function renderSelection() {\n var _this = this;\n\n var h = this.$createElement;\n var _$props2 = this.$props,\n selectorValueList = _$props2.selectorValueList,\n choiceTransitionName = _$props2.choiceTransitionName,\n prefixCls = _$props2.prefixCls,\n labelInValue = _$props2.labelInValue,\n maxTagCount = _$props2.maxTagCount;\n var onMultipleSelectorRemove = this.vcTreeSelect.onMultipleSelectorRemove,\n $slots = this.$slots;\n\n var listeners = getListeners(this);\n // Check if `maxTagCount` is set\n var myValueList = selectorValueList;\n if (maxTagCount >= 0) {\n myValueList = selectorValueList.slice(0, maxTagCount);\n }\n // Selector node list\n var selectedValueNodes = myValueList.map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return h(\n Selection,\n _mergeJSXProps([{\n props: _extends({}, _this.$props, {\n label: label,\n value: value\n }),\n on: _extends({}, listeners, { remove: onMultipleSelectorRemove })\n }, {\n key: value || TREE_SELECT_EMPTY_VALUE_KEY\n }]),\n [$slots['default']]\n );\n });\n\n // Rest node count\n if (maxTagCount >= 0 && maxTagCount < selectorValueList.length) {\n var content = '+ ' + (selectorValueList.length - maxTagCount) + ' ...';\n var maxTagPlaceholder = getComponentFromProp(this, 'maxTagPlaceholder', {}, false);\n if (typeof maxTagPlaceholder === 'string') {\n content = maxTagPlaceholder;\n } else if (typeof maxTagPlaceholder === 'function') {\n var restValueList = selectorValueList.slice(maxTagCount);\n content = maxTagPlaceholder(labelInValue ? restValueList : restValueList.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n }));\n }\n\n var restNodeSelect = h(\n Selection,\n _mergeJSXProps([{\n props: _extends({}, this.$props, {\n label: content,\n value: null\n }),\n on: listeners\n }, {\n key: 'rc-tree-select-internal-max-tag-counter'\n }]),\n [$slots['default']]\n );\n\n selectedValueNodes.push(restNodeSelect);\n }\n\n selectedValueNodes.push(h(\n 'li',\n { 'class': prefixCls + '-search ' + prefixCls + '-search--inline', key: '__input' },\n [h(\n SearchInput,\n {\n props: _extends({}, this.$props, {\n needAlign: true\n }),\n on: listeners,\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }]\n },\n [$slots['default']]\n )]\n ));\n var className = prefixCls + '-selection__rendered';\n if (choiceTransitionName) {\n var transitionProps = getTransitionProps(choiceTransitionName, {\n tag: 'ul',\n afterLeave: this.onChoiceAnimationLeave\n });\n return h(\n 'transition-group',\n _mergeJSXProps([{ 'class': className }, transitionProps]),\n [selectedValueNodes]\n );\n }\n return h(\n 'ul',\n { 'class': className, attrs: { role: 'menubar' }\n },\n [selectedValueNodes]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var $slots = this.$slots,\n $props = this.$props;\n\n var listeners = getListeners(this);\n var _$props$showArrow = $props.showArrow,\n showArrow = _$props$showArrow === undefined ? false : _$props$showArrow;\n\n return h(\n Selector,\n {\n props: _extends({}, this.$props, {\n showArrow: showArrow,\n tabIndex: -1,\n renderSelection: this.renderSelection,\n renderPlaceholder: this._renderPlaceholder\n }),\n on: listeners\n },\n [$slots['default']]\n );\n }\n};\n\nexport default MultipleSelector;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\nimport warning from 'warning';\nimport PropTypes from '../../../_util/vue-types';\nimport { Tree } from '../../../vc-tree';\nimport BaseMixin from '../../../_util/BaseMixin';\nimport { createRef } from '../util';\n\n// export const popupContextTypes = {\n// onPopupKeyDown: PropTypes.func.isRequired,\n// onTreeNodeSelect: PropTypes.func.isRequired,\n// onTreeNodeCheck: PropTypes.func.isRequired,\n// }\nfunction getDerivedState(nextProps, prevState) {\n var _ref = prevState || {},\n _ref$_prevProps = _ref._prevProps,\n prevProps = _ref$_prevProps === undefined ? {} : _ref$_prevProps,\n loadedKeys = _ref._loadedKeys,\n expandedKeyList = _ref._expandedKeyList,\n cachedExpandedKeyList = _ref._cachedExpandedKeyList;\n\n var valueList = nextProps.valueList,\n valueEntities = nextProps.valueEntities,\n keyEntities = nextProps.keyEntities,\n treeExpandedKeys = nextProps.treeExpandedKeys,\n filteredTreeNodes = nextProps.filteredTreeNodes,\n upperSearchValue = nextProps.upperSearchValue;\n\n\n var newState = {\n _prevProps: _extends({}, nextProps)\n };\n\n // Check value update\n if (valueList !== prevProps.valueList) {\n newState._keyList = valueList.map(function (_ref2) {\n var value = _ref2.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref3) {\n var key = _ref3.key;\n return key;\n });\n }\n\n // Show all when tree is in filter mode\n if (!treeExpandedKeys && filteredTreeNodes && filteredTreeNodes.length && filteredTreeNodes !== prevProps.filteredTreeNodes) {\n newState._expandedKeyList = [].concat(_toConsumableArray(keyEntities.keys()));\n }\n\n // Cache `expandedKeyList` when filter set\n if (upperSearchValue && !prevProps.upperSearchValue) {\n newState._cachedExpandedKeyList = expandedKeyList;\n } else if (!upperSearchValue && prevProps.upperSearchValue && !treeExpandedKeys) {\n newState._expandedKeyList = cachedExpandedKeyList || [];\n newState._cachedExpandedKeyList = [];\n }\n\n // Use expandedKeys if provided\n if (prevProps.treeExpandedKeys !== treeExpandedKeys) {\n newState._expandedKeyList = treeExpandedKeys;\n }\n\n // Clean loadedKeys if key not exist in keyEntities anymore\n if (nextProps.loadData) {\n newState._loadedKeys = loadedKeys.filter(function (key) {\n return keyEntities.has(key);\n });\n }\n\n return newState;\n}\nvar BasePopup = {\n mixins: [BaseMixin],\n name: 'BasePopup',\n props: {\n prefixCls: PropTypes.string,\n upperSearchValue: PropTypes.string,\n valueList: PropTypes.array,\n searchHalfCheckedKeys: PropTypes.array,\n valueEntities: PropTypes.object,\n keyEntities: Map,\n treeIcon: PropTypes.bool,\n treeLine: PropTypes.bool,\n treeNodeFilterProp: PropTypes.string,\n treeCheckable: PropTypes.any,\n treeCheckStrictly: PropTypes.bool,\n treeDefaultExpandAll: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.array,\n treeExpandedKeys: PropTypes.array,\n loadData: PropTypes.func,\n multiple: PropTypes.bool,\n // onTreeExpand: PropTypes.func,\n searchValue: PropTypes.string,\n treeNodes: PropTypes.any,\n filteredTreeNodes: PropTypes.any,\n notFoundContent: PropTypes.any,\n\n ariaId: PropTypes.string,\n switcherIcon: PropTypes.any,\n // HOC\n renderSearch: PropTypes.func,\n // onTreeExpanded: PropTypes.func,\n\n __propsSymbol__: PropTypes.any\n },\n inject: {\n vcTreeSelect: { 'default': function _default() {\n return {};\n } }\n },\n watch: {\n __propsSymbol__: function __propsSymbol__() {\n var state = getDerivedState(this.$props, this.$data);\n this.setState(state);\n }\n },\n data: function data() {\n this.treeRef = createRef();\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n var _$props = this.$props,\n treeDefaultExpandAll = _$props.treeDefaultExpandAll,\n treeDefaultExpandedKeys = _$props.treeDefaultExpandedKeys,\n keyEntities = _$props.keyEntities;\n\n // TODO: make `expandedKeyList` control\n\n var expandedKeyList = treeDefaultExpandedKeys;\n if (treeDefaultExpandAll) {\n expandedKeyList = [].concat(_toConsumableArray(keyEntities.keys()));\n }\n\n var state = {\n _keyList: [],\n _expandedKeyList: expandedKeyList,\n // Cache `expandedKeyList` when tree is in filter. This is used in `getDerivedState`\n _cachedExpandedKeyList: [],\n _loadedKeys: [],\n _prevProps: {}\n };\n return _extends({}, state, getDerivedState(this.$props, state));\n },\n\n methods: {\n onTreeExpand: function onTreeExpand(expandedKeyList) {\n var _this = this;\n\n var treeExpandedKeys = this.$props.treeExpandedKeys;\n\n // Set uncontrolled state\n\n if (!treeExpandedKeys) {\n this.setState({ _expandedKeyList: expandedKeyList }, function () {\n _this.__emit('treeExpanded');\n });\n }\n this.__emit('update:treeExpandedKeys', expandedKeyList);\n this.__emit('treeExpand', expandedKeyList);\n },\n onLoad: function onLoad(loadedKeys) {\n this.setState({ _loadedKeys: loadedKeys });\n },\n getTree: function getTree() {\n return this.treeRef.current;\n },\n\n\n /**\n * Not pass `loadData` when searching. To avoid loop ajax call makes browser crash.\n */\n getLoadData: function getLoadData() {\n var _$props2 = this.$props,\n loadData = _$props2.loadData,\n upperSearchValue = _$props2.upperSearchValue;\n\n if (upperSearchValue) return null;\n return loadData;\n },\n\n\n /**\n * This method pass to Tree component which is used for add filtered class\n * in TreeNode > li\n */\n filterTreeNode: function filterTreeNode(treeNode) {\n var _$props3 = this.$props,\n upperSearchValue = _$props3.upperSearchValue,\n treeNodeFilterProp = _$props3.treeNodeFilterProp;\n\n\n var filterVal = treeNode[treeNodeFilterProp];\n if (typeof filterVal === 'string') {\n return upperSearchValue && filterVal.toUpperCase().indexOf(upperSearchValue) !== -1;\n }\n\n return false;\n },\n renderNotFound: function renderNotFound() {\n var h = this.$createElement;\n var _$props4 = this.$props,\n prefixCls = _$props4.prefixCls,\n notFoundContent = _$props4.notFoundContent;\n\n\n return h(\n 'span',\n { 'class': prefixCls + '-not-found' },\n [notFoundContent]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var _$data = this.$data,\n keyList = _$data._keyList,\n expandedKeyList = _$data._expandedKeyList,\n loadedKeys = _$data._loadedKeys;\n var _$props5 = this.$props,\n prefixCls = _$props5.prefixCls,\n treeNodes = _$props5.treeNodes,\n filteredTreeNodes = _$props5.filteredTreeNodes,\n treeIcon = _$props5.treeIcon,\n treeLine = _$props5.treeLine,\n treeCheckable = _$props5.treeCheckable,\n treeCheckStrictly = _$props5.treeCheckStrictly,\n multiple = _$props5.multiple,\n ariaId = _$props5.ariaId,\n renderSearch = _$props5.renderSearch,\n switcherIcon = _$props5.switcherIcon,\n searchHalfCheckedKeys = _$props5.searchHalfCheckedKeys;\n var _vcTreeSelect = this.vcTreeSelect,\n onPopupKeyDown = _vcTreeSelect.onPopupKeyDown,\n onTreeNodeSelect = _vcTreeSelect.onTreeNodeSelect,\n onTreeNodeCheck = _vcTreeSelect.onTreeNodeCheck;\n\n\n var loadData = this.getLoadData();\n\n var treeProps = {};\n\n if (treeCheckable) {\n treeProps.checkedKeys = keyList;\n } else {\n treeProps.selectedKeys = keyList;\n }\n var $notFound = void 0;\n var $treeNodes = void 0;\n if (filteredTreeNodes) {\n if (filteredTreeNodes.length) {\n treeProps.checkStrictly = true;\n $treeNodes = filteredTreeNodes;\n\n // Fill halfCheckedKeys\n if (treeCheckable && !treeCheckStrictly) {\n treeProps.checkedKeys = {\n checked: keyList,\n halfChecked: searchHalfCheckedKeys\n };\n }\n } else {\n $notFound = this.renderNotFound();\n }\n } else if (!treeNodes || !treeNodes.length) {\n $notFound = this.renderNotFound();\n } else {\n $treeNodes = treeNodes;\n }\n\n var $tree = void 0;\n if ($notFound) {\n $tree = $notFound;\n } else {\n var treeAllProps = {\n props: _extends({\n prefixCls: prefixCls + '-tree',\n showIcon: treeIcon,\n showLine: treeLine,\n selectable: !treeCheckable,\n checkable: treeCheckable,\n checkStrictly: treeCheckStrictly,\n multiple: multiple,\n loadData: loadData,\n loadedKeys: loadedKeys,\n expandedKeys: expandedKeyList,\n filterTreeNode: this.filterTreeNode,\n switcherIcon: switcherIcon\n }, treeProps, {\n __propsSymbol__: Symbol(),\n children: $treeNodes\n }),\n on: {\n select: onTreeNodeSelect,\n check: onTreeNodeCheck,\n expand: this.onTreeExpand,\n load: this.onLoad\n },\n directives: [{\n name: 'ant-ref',\n value: this.treeRef\n }]\n };\n $tree = h(Tree, treeAllProps);\n }\n\n return h(\n 'div',\n {\n attrs: { role: 'listbox', id: ariaId, tabIndex: -1 },\n on: {\n 'keydown': onPopupKeyDown\n }\n },\n [renderSearch ? renderSearch() : null, $tree]\n );\n }\n};\n\nexport default BasePopup;","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../../_util/vue-types';\nimport BasePopup from '../Base/BasePopup';\nimport SearchInput from '../SearchInput';\nimport { createRef } from '../util';\nimport { getListeners } from '../../../_util/props-util';\n\nvar SinglePopup = {\n name: 'SinglePopup',\n props: _extends({}, BasePopup.props, SearchInput.props, {\n searchValue: PropTypes.string,\n showSearch: PropTypes.bool,\n dropdownPrefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n searchPlaceholder: PropTypes.string\n }),\n created: function created() {\n this.inputRef = createRef();\n this.searchRef = createRef();\n this.popupRef = createRef();\n },\n\n methods: {\n onPlaceholderClick: function onPlaceholderClick() {\n this.inputRef.current.focus();\n },\n getTree: function getTree() {\n return this.popupRef.current && this.popupRef.current.getTree();\n },\n _renderPlaceholder: function _renderPlaceholder() {\n var h = this.$createElement;\n var _$props = this.$props,\n searchPlaceholder = _$props.searchPlaceholder,\n searchValue = _$props.searchValue,\n prefixCls = _$props.prefixCls;\n\n\n if (!searchPlaceholder) {\n return null;\n }\n\n return h(\n 'span',\n {\n style: {\n display: searchValue ? 'none' : 'block'\n },\n on: {\n 'click': this.onPlaceholderClick\n },\n\n 'class': prefixCls + '-search__field__placeholder'\n },\n [searchPlaceholder]\n );\n },\n _renderSearch: function _renderSearch() {\n var h = this.$createElement;\n var _$props2 = this.$props,\n showSearch = _$props2.showSearch,\n dropdownPrefixCls = _$props2.dropdownPrefixCls;\n\n\n if (!showSearch) {\n return null;\n }\n\n return h(\n 'span',\n _mergeJSXProps([{\n 'class': dropdownPrefixCls + '-search'\n }, {\n directives: [{\n name: 'ant-ref',\n value: this.searchRef\n }]\n }]),\n [h(SearchInput, {\n props: _extends({}, this.$props, { renderPlaceholder: this._renderPlaceholder }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.inputRef\n }]\n })]\n );\n }\n },\n render: function render() {\n var h = arguments[0];\n\n return h(BasePopup, {\n props: _extends({}, this.$props, { renderSearch: this._renderSearch, __propsSymbol__: Symbol() }),\n on: getListeners(this),\n directives: [{\n name: 'ant-ref',\n value: this.popupRef\n }]\n });\n }\n};\n\nexport default SinglePopup;","import BasePopup from '../Base/BasePopup';\n\nexport default BasePopup;","import _extends from 'babel-runtime/helpers/extends';\nimport { TreeNode } from '../../vc-tree';\n/**\n * SelectNode wrapped the tree node.\n * Let's use SelectNode instead of TreeNode\n * since TreeNode is so confuse here.\n */\nexport default {\n name: 'SelectNode',\n functional: true,\n isTreeNode: true,\n props: TreeNode.props,\n render: function render(h, context) {\n var props = context.props,\n slots = context.slots,\n listeners = context.listeners,\n data = context.data,\n scopedSlots = context.scopedSlots;\n\n var $slots = slots() || {};\n var children = $slots['default'];\n var slotsKey = Object.keys($slots);\n var scopedSlotsTemp = {}; // for vue 2.5.x\n slotsKey.forEach(function (name) {\n scopedSlotsTemp[name] = function () {\n return $slots[name];\n };\n });\n var treeNodeProps = _extends({}, data, {\n on: _extends({}, listeners, data.nativeOn),\n props: props,\n scopedSlots: _extends({}, scopedSlotsTemp, scopedSlots)\n });\n return h(\n TreeNode,\n treeNodeProps,\n [children]\n );\n }\n};","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _extends from 'babel-runtime/helpers/extends';\n/**\n * ARIA: https://www.w3.org/TR/wai-aria/#combobox\n * Sample 1: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/combobox/aria1.1pattern/listbox-combo.html\n * Sample 2: https://www.w3.org/blog/wai-components-gallery/widget/combobox-with-aria-autocompleteinline/\n *\n * Tab logic:\n * Popup is close\n * 1. Focus input (mark component as focused)\n * 2. Press enter to show the popup\n * 3. If popup has input, focus it\n *\n * Popup is open\n * 1. press tab to close the popup\n * 2. Focus back to the selection input box\n * 3. Let the native tab going on\n *\n * TreeSelect use 2 design type.\n * In single mode, we should focus on the `span`\n * In multiple mode, we should focus on the `input`\n */\n\nimport shallowEqual from 'shallowequal';\nimport raf from 'raf';\nimport scrollIntoView from 'dom-scroll-into-view';\nimport warning from 'warning';\nimport PropTypes from '../../_util/vue-types';\nimport KeyCode from '../../_util/KeyCode';\n\nimport SelectTrigger from './SelectTrigger';\nimport SingleSelector from './Selector/SingleSelector';\nimport MultipleSelector from './Selector/MultipleSelector';\nimport SinglePopup from './Popup/SinglePopup';\nimport MultiplePopup from './Popup/MultiplePopup';\n\nimport { SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './strategies';\nimport BaseMixin from '../../_util/BaseMixin';\nimport { createRef, generateAriaId, formatInternalValue, formatSelectorValue, parseSimpleTreeData, convertDataToTree, convertTreeToEntities, conductCheck, getHalfCheckedKeys, flatToHierarchy, isPosRelated, isLabelInValue as _isLabelInValue, getFilterTree, cleanEntity, findPopupContainer } from './util';\nimport SelectNode from './SelectNode';\nimport { initDefaultProps, getOptionProps, mergeProps, getPropsData, filterEmpty, getListeners } from '../../_util/props-util';\nfunction getWatch() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var watch = {};\n keys.forEach(function (k) {\n watch[k] = function () {\n this.needSyncKeys[k] = true;\n };\n });\n return watch;\n}\nvar Select = {\n name: 'Select',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n prefixAria: PropTypes.string,\n multiple: PropTypes.bool,\n showArrow: PropTypes.bool,\n open: PropTypes.bool,\n value: PropTypes.any,\n\n autoFocus: PropTypes.bool,\n\n defaultOpen: PropTypes.bool,\n defaultValue: PropTypes.any,\n\n showSearch: PropTypes.bool,\n placeholder: PropTypes.any,\n inputValue: PropTypes.string, // [Legacy] Deprecated. Use `searchValue` instead.\n searchValue: PropTypes.string,\n autoClearSearchValue: PropTypes.bool,\n searchPlaceholder: PropTypes.any, // [Legacy] Confuse with placeholder\n disabled: PropTypes.bool,\n children: PropTypes.any,\n labelInValue: PropTypes.bool,\n maxTagCount: PropTypes.number,\n maxTagPlaceholder: PropTypes.oneOfType([PropTypes.any, PropTypes.func]),\n maxTagTextLength: PropTypes.number,\n showCheckedStrategy: PropTypes.oneOf([SHOW_ALL, SHOW_PARENT, SHOW_CHILD]),\n dropdownClassName: PropTypes.string,\n dropdownStyle: PropTypes.object,\n dropdownVisibleChange: PropTypes.func,\n dropdownMatchSelectWidth: PropTypes.bool,\n treeData: PropTypes.array,\n treeDataSimpleMode: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n treeNodeFilterProp: PropTypes.string,\n treeNodeLabelProp: PropTypes.string,\n treeCheckable: PropTypes.oneOfType([PropTypes.any, PropTypes.object, PropTypes.bool]),\n // treeCheckable: PropTypes.any,\n treeCheckStrictly: PropTypes.bool,\n treeIcon: PropTypes.bool,\n treeLine: PropTypes.bool,\n treeDefaultExpandAll: PropTypes.bool,\n treeDefaultExpandedKeys: PropTypes.array,\n treeExpandedKeys: PropTypes.array,\n loadData: PropTypes.func,\n filterTreeNode: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n\n notFoundContent: PropTypes.any,\n getPopupContainer: PropTypes.func,\n\n // onSearch: PropTypes.func,\n // onSelect: PropTypes.func,\n // onDeselect: PropTypes.func,\n // onChange: PropTypes.func,\n // onDropdownVisibleChange: PropTypes.func,\n\n // onTreeExpand: PropTypes.func,\n allowClear: PropTypes.bool,\n transitionName: PropTypes.string,\n animation: PropTypes.string,\n choiceTransitionName: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n removeIcon: PropTypes.any,\n switcherIcon: PropTypes.any,\n __propsSymbol__: PropTypes.any\n }, {\n prefixCls: 'rc-tree-select',\n prefixAria: 'rc-tree-select',\n showSearch: true,\n autoClearSearchValue: true,\n showCheckedStrategy: SHOW_CHILD,\n\n // dropdownMatchSelectWidth change the origin design, set to false now\n // ref: https://github.com/react-component/select/blob/4cad95e098a341a09de239ad6981067188842020/src/Select.jsx#L344\n // ref: https://github.com/react-component/select/pull/71\n treeNodeFilterProp: 'value',\n treeNodeLabelProp: 'title',\n treeIcon: false,\n notFoundContent: 'Not Found',\n dropdownStyle: {},\n dropdownVisibleChange: function dropdownVisibleChange() {\n return true;\n }\n }),\n\n data: function data() {\n warning(this.$props.__propsSymbol__, 'must pass __propsSymbol__');\n var _$props = this.$props,\n prefixAria = _$props.prefixAria,\n defaultOpen = _$props.defaultOpen,\n open = _$props.open;\n\n this.needSyncKeys = {};\n this.selectorRef = createRef();\n this.selectTriggerRef = createRef();\n\n // ARIA need `aria-controls` props mapping\n // Since this need user input. Let's generate ourselves\n this.ariaId = generateAriaId(prefixAria + '-list');\n\n var state = {\n _open: open || defaultOpen,\n _valueList: [],\n _searchHalfCheckedKeys: [],\n _missValueList: [], // Contains the value not in the tree\n _selectorValueList: [], // Used for multiple selector\n _valueEntities: {},\n _posEntities: new Map(),\n _keyEntities: new Map(),\n _searchValue: '',\n _prevProps: {},\n _init: true,\n _focused: undefined,\n _treeNodes: undefined,\n _filteredTreeNodes: undefined\n };\n var newState = this.getDerivedState(this.$props, state);\n return _extends({}, state, newState);\n },\n provide: function provide() {\n return {\n vcTreeSelect: {\n onSelectorFocus: this.onSelectorFocus,\n onSelectorBlur: this.onSelectorBlur,\n onSelectorKeyDown: this.onComponentKeyDown,\n onSelectorClear: this.onSelectorClear,\n onMultipleSelectorRemove: this.onMultipleSelectorRemove,\n\n onTreeNodeSelect: this.onTreeNodeSelect,\n onTreeNodeCheck: this.onTreeNodeCheck,\n onPopupKeyDown: this.onComponentKeyDown,\n\n onSearchInputChange: this.onSearchInputChange,\n onSearchInputKeyDown: this.onSearchInputKeyDown\n }\n };\n },\n\n watch: _extends({}, getWatch(['treeData', 'defaultValue', 'value']), {\n __propsSymbol__: function __propsSymbol__() {\n var state = this.getDerivedState(this.$props, this.$data);\n this.setState(state);\n this.needSyncKeys = {};\n },\n '$data._valueList': function $data_valueList() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.forcePopupAlign();\n });\n },\n '$data._open': function $data_open(open) {\n var _this2 = this;\n\n setTimeout(function () {\n var prefixCls = _this2.$props.prefixCls;\n var _$data = _this2.$data,\n selectorValueList = _$data._selectorValueList,\n valueEntities = _$data._valueEntities;\n\n var isMultiple = _this2.isMultiple();\n\n // Scroll to value position, only need sync on single mode\n if (!isMultiple && selectorValueList.length && open && _this2.popup) {\n var value = selectorValueList[0].value;\n\n var _popup$getTree = _this2.popup.getTree(),\n domTreeNodes = _popup$getTree.domTreeNodes;\n\n var _ref = valueEntities[value] || {},\n key = _ref.key;\n\n var treeNode = domTreeNodes[key];\n\n if (treeNode) {\n var domNode = treeNode.$el;\n raf(function () {\n var popupNode = _this2.popup.$el;\n var triggerContainer = findPopupContainer(popupNode, prefixCls + '-dropdown');\n var searchNode = _this2.popup.searchRef.current;\n\n if (domNode && triggerContainer && searchNode) {\n scrollIntoView(domNode, triggerContainer, {\n onlyScrollIfNeeded: true,\n offsetTop: searchNode.offsetHeight\n });\n }\n });\n }\n }\n });\n }\n }),\n mounted: function mounted() {\n var _this3 = this;\n\n this.$nextTick(function () {\n var _$props2 = _this3.$props,\n autoFocus = _$props2.autoFocus,\n disabled = _$props2.disabled;\n\n if (autoFocus && !disabled) {\n _this3.focus();\n }\n });\n },\n\n\n methods: {\n getDerivedState: function getDerivedState(nextProps, prevState) {\n var h = this.$createElement;\n var _prevState$_prevProps = prevState._prevProps,\n prevProps = _prevState$_prevProps === undefined ? {} : _prevState$_prevProps;\n var treeCheckable = nextProps.treeCheckable,\n treeCheckStrictly = nextProps.treeCheckStrictly,\n filterTreeNode = nextProps.filterTreeNode,\n treeNodeFilterProp = nextProps.treeNodeFilterProp,\n treeDataSimpleMode = nextProps.treeDataSimpleMode;\n\n var newState = {\n _prevProps: _extends({}, nextProps),\n _init: false\n };\n var self = this;\n // Process the state when props updated\n function processState(propName, updater) {\n if (prevProps[propName] !== nextProps[propName] || self.needSyncKeys[propName]) {\n updater(nextProps[propName], prevProps[propName]);\n return true;\n }\n return false;\n }\n\n var valueRefresh = false;\n\n // Open\n processState('open', function (propValue) {\n newState._open = propValue;\n });\n\n // Tree Nodes\n var treeNodes = void 0;\n var treeDataChanged = false;\n var treeDataModeChanged = false;\n processState('treeData', function (propValue) {\n treeNodes = convertDataToTree(h, propValue);\n treeDataChanged = true;\n });\n\n processState('treeDataSimpleMode', function (propValue, prevValue) {\n if (!propValue) return;\n\n var prev = !prevValue || prevValue === true ? {} : prevValue;\n\n // Shallow equal to avoid dynamic prop object\n if (!shallowEqual(propValue, prev)) {\n treeDataModeChanged = true;\n }\n });\n\n // Parse by `treeDataSimpleMode`\n if (treeDataSimpleMode && (treeDataChanged || treeDataModeChanged)) {\n var simpleMapper = _extends({\n id: 'id',\n pId: 'pId',\n rootPId: null\n }, treeDataSimpleMode !== true ? treeDataSimpleMode : {});\n treeNodes = convertDataToTree(h, parseSimpleTreeData(nextProps.treeData, simpleMapper));\n }\n\n // If `treeData` not provide, use children TreeNodes\n if (!nextProps.treeData) {\n // processState('children', (propValue) => {\n // treeNodes = Array.isArray(propValue) ? propValue : [propValue]\n // })\n treeNodes = filterEmpty(this.$slots['default']);\n }\n\n // Convert `treeData` to entities\n if (treeNodes) {\n var entitiesMap = convertTreeToEntities(treeNodes);\n newState._treeNodes = treeNodes;\n newState._posEntities = entitiesMap.posEntities;\n newState._valueEntities = entitiesMap.valueEntities;\n newState._keyEntities = entitiesMap.keyEntities;\n\n valueRefresh = true;\n }\n\n // Value List\n if (prevState._init) {\n processState('defaultValue', function (propValue) {\n newState._valueList = formatInternalValue(propValue, nextProps);\n valueRefresh = true;\n });\n }\n\n processState('value', function (propValue) {\n newState._valueList = formatInternalValue(propValue, nextProps);\n valueRefresh = true;\n });\n\n // Selector Value List\n if (valueRefresh) {\n // Find out that value not exist in the tree\n var missValueList = [];\n var filteredValueList = [];\n var keyList = [];\n\n // Get latest value list\n var latestValueList = newState._valueList;\n if (!latestValueList) {\n // Also need add prev missValueList to avoid new treeNodes contains the value\n latestValueList = [].concat(_toConsumableArray(prevState._valueList), _toConsumableArray(prevState._missValueList));\n }\n\n // Get key by value\n var valueLabels = {};\n latestValueList.forEach(function (wrapperValue) {\n var value = wrapperValue.value,\n label = wrapperValue.label;\n\n var entity = (newState._valueEntities || prevState._valueEntities)[value];\n valueLabels[value] = label;\n\n if (entity) {\n keyList.push(entity.key);\n filteredValueList.push(wrapperValue);\n return;\n }\n\n // If not match, it may caused by ajax load. We need keep this\n missValueList.push(wrapperValue);\n });\n\n // We need calculate the value when tree is checked tree\n if (treeCheckable && !treeCheckStrictly) {\n // Calculate the keys need to be checked\n var _conductCheck = conductCheck(keyList, true, newState._keyEntities || prevState._keyEntities),\n checkedKeys = _conductCheck.checkedKeys;\n\n // Format value list again for internal usage\n\n\n newState._valueList = checkedKeys.map(function (key) {\n var val = (newState._keyEntities || prevState._keyEntities).get(key).value;\n\n var wrappedValue = {\n value: val\n };\n\n if (valueLabels[val] !== undefined) {\n wrappedValue.label = valueLabels[val];\n }\n\n return wrappedValue;\n });\n } else {\n newState._valueList = filteredValueList;\n }\n\n // Fill the missValueList, we still need display in the selector\n newState._missValueList = missValueList;\n\n // Calculate the value list for `Selector` usage\n newState._selectorValueList = formatSelectorValue(newState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n }\n\n // [Legacy] To align with `Select` component,\n // We use `searchValue` instead of `inputValue` but still keep the api\n // `inputValue` support `null` to work as `autoClearSearchValue`\n processState('inputValue', function (propValue) {\n if (propValue !== null) {\n newState._searchValue = propValue;\n }\n });\n\n // Search value\n processState('searchValue', function (propValue) {\n newState._searchValue = propValue;\n });\n\n // Do the search logic\n if (newState._searchValue !== undefined || prevState._searchValue && treeNodes) {\n var searchValue = newState._searchValue !== undefined ? newState._searchValue : prevState._searchValue;\n var upperSearchValue = String(searchValue).toUpperCase();\n\n var filterTreeNodeFn = filterTreeNode;\n if (filterTreeNode === false) {\n // Don't filter if is false\n filterTreeNodeFn = function filterTreeNodeFn() {\n return true;\n };\n } else if (typeof filterTreeNodeFn !== 'function') {\n // When is not function (true or undefined), use inner filter\n filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n return nodeValue.indexOf(upperSearchValue) !== -1;\n };\n }\n\n newState._filteredTreeNodes = getFilterTree(this.$createElement, newState._treeNodes || prevState._treeNodes, searchValue, filterTreeNodeFn, newState._valueEntities || prevState._valueEntities, SelectNode);\n }\n\n // We should re-calculate the halfCheckedKeys when in search mode\n if (valueRefresh && treeCheckable && !treeCheckStrictly && (newState._searchValue || prevState._searchValue)) {\n newState._searchHalfCheckedKeys = getHalfCheckedKeys(newState._valueList, newState._valueEntities || prevState._valueEntities);\n }\n\n // Checked Strategy\n processState('showCheckedStrategy', function () {\n newState._selectorValueList = newState._selectorValueList || formatSelectorValue(newState._valueList || prevState._valueList, nextProps, newState._valueEntities || prevState._valueEntities);\n });\n\n return newState;\n },\n\n // ==================== Selector ====================\n onSelectorFocus: function onSelectorFocus() {\n this.setState({ _focused: true });\n },\n onSelectorBlur: function onSelectorBlur() {\n this.setState({ _focused: false });\n\n // TODO: Close when Popup is also not focused\n // this.setState({ open: false });\n },\n\n\n // Handle key board event in both Selector and Popup\n onComponentKeyDown: function onComponentKeyDown(event) {\n var open = this.$data._open;\n var keyCode = event.keyCode;\n\n\n if (!open) {\n if ([KeyCode.ENTER, KeyCode.DOWN].indexOf(keyCode) !== -1) {\n this.setOpenState(true);\n }\n } else if (KeyCode.ESC === keyCode) {\n this.setOpenState(false);\n } else if ([KeyCode.UP, KeyCode.DOWN, KeyCode.LEFT, KeyCode.RIGHT].indexOf(keyCode) !== -1) {\n // TODO: Handle `open` state\n event.stopPropagation();\n }\n },\n onDeselect: function onDeselect(wrappedValue, node, nodeEventInfo) {\n this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n },\n onSelectorClear: function onSelectorClear(event) {\n var disabled = this.$props.disabled;\n\n if (disabled) return;\n\n this.triggerChange([], []);\n\n if (!this.isSearchValueControlled()) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n\n event.stopPropagation();\n },\n onMultipleSelectorRemove: function onMultipleSelectorRemove(event, removeValue) {\n event.stopPropagation();\n\n var _$data2 = this.$data,\n valueList = _$data2._valueList,\n missValueList = _$data2._missValueList,\n valueEntities = _$data2._valueEntities;\n var _$props3 = this.$props,\n treeCheckable = _$props3.treeCheckable,\n treeCheckStrictly = _$props3.treeCheckStrictly,\n treeNodeLabelProp = _$props3.treeNodeLabelProp,\n disabled = _$props3.disabled;\n\n if (disabled) return;\n\n // Find trigger entity\n var triggerEntity = valueEntities[removeValue];\n\n // Clean up value\n var newValueList = valueList;\n if (triggerEntity) {\n // If value is in tree\n if (treeCheckable && !treeCheckStrictly) {\n newValueList = valueList.filter(function (_ref2) {\n var value = _ref2.value;\n\n var entity = valueEntities[value];\n return !isPosRelated(entity.pos, triggerEntity.pos);\n });\n } else {\n newValueList = valueList.filter(function (_ref3) {\n var value = _ref3.value;\n return value !== removeValue;\n });\n }\n }\n\n var triggerNode = triggerEntity ? triggerEntity.node : null;\n\n var extraInfo = {\n triggerValue: removeValue,\n triggerNode: triggerNode\n };\n var deselectInfo = {\n node: triggerNode\n };\n\n // [Legacy] Little hack on this to make same action as `onCheck` event.\n if (treeCheckable) {\n var filteredEntityList = newValueList.map(function (_ref4) {\n var value = _ref4.value;\n return valueEntities[value];\n });\n\n deselectInfo.event = 'check';\n deselectInfo.checked = false;\n deselectInfo.checkedNodes = filteredEntityList.map(function (_ref5) {\n var node = _ref5.node;\n return node;\n });\n deselectInfo.checkedNodesPositions = filteredEntityList.map(function (_ref6) {\n var node = _ref6.node,\n pos = _ref6.pos;\n return {\n node: node,\n pos: pos\n };\n });\n\n if (treeCheckStrictly) {\n extraInfo.allCheckedNodes = deselectInfo.checkedNodes;\n } else {\n // TODO: It's too expansive to get `halfCheckedKeys` in onDeselect. Not pass this.\n extraInfo.allCheckedNodes = flatToHierarchy(filteredEntityList).map(function (_ref7) {\n var node = _ref7.node;\n return node;\n });\n }\n } else {\n deselectInfo.event = 'select';\n deselectInfo.selected = false;\n deselectInfo.selectedNodes = newValueList.map(function (_ref8) {\n var value = _ref8.value;\n return (valueEntities[value] || {}).node;\n });\n }\n\n // Some value user pass prop is not in the tree, we also need clean it\n var newMissValueList = missValueList.filter(function (_ref9) {\n var value = _ref9.value;\n return value !== removeValue;\n });\n var wrappedValue = void 0;\n if (this.isLabelInValue()) {\n wrappedValue = {\n label: triggerNode ? getPropsData(triggerNode)[treeNodeLabelProp] : null,\n value: removeValue\n };\n } else {\n wrappedValue = removeValue;\n }\n\n this.onDeselect(wrappedValue, triggerNode, deselectInfo);\n\n this.triggerChange(newMissValueList, newValueList, extraInfo);\n },\n\n\n // ===================== Popup ======================\n onValueTrigger: function onValueTrigger(isAdd, nodeList, nodeEventInfo, nodeExtraInfo) {\n var node = nodeEventInfo.node;\n var value = node.$props.value;\n var _$data3 = this.$data,\n missValueList = _$data3._missValueList,\n valueEntities = _$data3._valueEntities,\n keyEntities = _$data3._keyEntities,\n searchValue = _$data3._searchValue;\n var _$props4 = this.$props,\n disabled = _$props4.disabled,\n inputValue = _$props4.inputValue,\n treeNodeLabelProp = _$props4.treeNodeLabelProp,\n multiple = _$props4.multiple,\n treeCheckable = _$props4.treeCheckable,\n treeCheckStrictly = _$props4.treeCheckStrictly,\n autoClearSearchValue = _$props4.autoClearSearchValue;\n\n var label = node.$props[treeNodeLabelProp];\n\n if (disabled) return;\n\n // Wrap the return value for user\n var wrappedValue = void 0;\n if (this.isLabelInValue()) {\n wrappedValue = {\n value: value,\n label: label\n };\n } else {\n wrappedValue = value;\n }\n\n // [Legacy] Origin code not trigger `onDeselect` every time. Let's align the behaviour.\n if (isAdd) {\n this.__emit('select', wrappedValue, node, nodeEventInfo);\n } else {\n this.__emit('deselect', wrappedValue, node, nodeEventInfo);\n }\n\n // Get wrapped value list.\n // This is a bit hack cause we use key to match the value.\n var newValueList = nodeList.map(function (node) {\n var props = getPropsData(node);\n return {\n value: props.value,\n label: props[treeNodeLabelProp]\n };\n });\n\n // When is `treeCheckable` and with `searchValue`, `valueList` is not full filled.\n // We need calculate the missing nodes.\n if (treeCheckable && !treeCheckStrictly) {\n var keyList = newValueList.map(function (_ref10) {\n var val = _ref10.value;\n return valueEntities[val].key;\n });\n if (isAdd) {\n keyList = conductCheck(keyList, true, keyEntities).checkedKeys;\n } else {\n keyList = conductCheck([valueEntities[value].key], false, keyEntities, {\n checkedKeys: keyList\n }).checkedKeys;\n }\n newValueList = keyList.map(function (key) {\n var props = getPropsData(keyEntities.get(key).node);\n return {\n value: props.value,\n label: props[treeNodeLabelProp]\n };\n });\n }\n\n // Clean up `searchValue` when this prop is set\n if (autoClearSearchValue || inputValue === null) {\n // Clean state `searchValue` if uncontrolled\n if (!this.isSearchValueControlled() && (multiple || treeCheckable)) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n\n // Trigger onSearch if `searchValue` to be empty.\n // We should also trigger onSearch with empty string here\n // since if user use `treeExpandedKeys`, it need user have the ability to reset it.\n if (searchValue && searchValue.length) {\n this.__emit('update:searchValue', '');\n this.__emit('search', '');\n }\n }\n\n // [Legacy] Provide extra info\n var extraInfo = _extends({}, nodeExtraInfo, {\n triggerValue: value,\n triggerNode: node\n });\n\n this.triggerChange(missValueList, newValueList, extraInfo);\n },\n onTreeNodeSelect: function onTreeNodeSelect(_, nodeEventInfo) {\n var _$data4 = this.$data,\n valueList = _$data4._valueList,\n valueEntities = _$data4._valueEntities;\n var _$props5 = this.$props,\n treeCheckable = _$props5.treeCheckable,\n multiple = _$props5.multiple;\n\n if (treeCheckable) return;\n\n if (!multiple) {\n this.setOpenState(false);\n }\n\n var isAdd = nodeEventInfo.selected;\n var selectedValue = nodeEventInfo.node.$props.value;\n\n\n var newValueList = void 0;\n\n if (!multiple) {\n newValueList = [{ value: selectedValue }];\n } else {\n newValueList = valueList.filter(function (_ref11) {\n var value = _ref11.value;\n return value !== selectedValue;\n });\n if (isAdd) {\n newValueList.push({ value: selectedValue });\n }\n }\n\n var selectedNodes = newValueList.map(function (_ref12) {\n var value = _ref12.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref13) {\n var node = _ref13.node;\n return node;\n });\n\n this.onValueTrigger(isAdd, selectedNodes, nodeEventInfo, { selected: isAdd });\n },\n onTreeNodeCheck: function onTreeNodeCheck(_, nodeEventInfo) {\n var _$data5 = this.$data,\n searchValue = _$data5._searchValue,\n keyEntities = _$data5._keyEntities,\n valueEntities = _$data5._valueEntities,\n valueList = _$data5._valueList;\n var treeCheckStrictly = this.$props.treeCheckStrictly;\n var checkedNodes = nodeEventInfo.checkedNodes,\n checkedNodesPositions = nodeEventInfo.checkedNodesPositions;\n\n var isAdd = nodeEventInfo.checked;\n\n var extraInfo = {\n checked: isAdd\n };\n\n var checkedNodeList = checkedNodes;\n\n // [Legacy] Check event provide `allCheckedNodes`.\n // When `treeCheckStrictly` or internal `searchValue` is set, TreeNode will be unrelated:\n // - Related: Show the top checked nodes and has children prop.\n // - Unrelated: Show all the checked nodes.\n if (searchValue) {\n var oriKeyList = valueList.map(function (_ref14) {\n var value = _ref14.value;\n return valueEntities[value];\n }).filter(function (entity) {\n return entity;\n }).map(function (_ref15) {\n var key = _ref15.key;\n return key;\n });\n\n var keyList = void 0;\n if (isAdd) {\n keyList = Array.from(new Set([].concat(_toConsumableArray(oriKeyList), _toConsumableArray(checkedNodeList.map(function (node) {\n var _getPropsData = getPropsData(node),\n value = _getPropsData.value;\n\n return valueEntities[value].key;\n })))));\n } else {\n keyList = conductCheck([getPropsData(nodeEventInfo.node).eventKey], false, keyEntities, {\n checkedKeys: oriKeyList\n }).checkedKeys;\n }\n\n checkedNodeList = keyList.map(function (key) {\n return keyEntities.get(key).node;\n });\n\n // Let's follow as not `treeCheckStrictly` format\n extraInfo.allCheckedNodes = keyList.map(function (key) {\n return cleanEntity(keyEntities.get(key));\n });\n } else if (treeCheckStrictly) {\n extraInfo.allCheckedNodes = nodeEventInfo.checkedNodes;\n } else {\n extraInfo.allCheckedNodes = flatToHierarchy(checkedNodesPositions);\n }\n\n this.onValueTrigger(isAdd, checkedNodeList, nodeEventInfo, extraInfo);\n },\n\n\n // ==================== Trigger =====================\n\n onDropdownVisibleChange: function onDropdownVisibleChange(open) {\n var _$props6 = this.$props,\n multiple = _$props6.multiple,\n treeCheckable = _$props6.treeCheckable;\n var _searchValue = this.$data._searchValue;\n\n // When set open success and single mode,\n // we will reset the input content.\n\n if (open && !multiple && !treeCheckable && _searchValue) {\n this.setUncontrolledState({\n _searchValue: '',\n _filteredTreeNodes: null\n });\n }\n this.setOpenState(open, true);\n },\n onSearchInputChange: function onSearchInputChange(event) {\n var value = event.target.value;\n var _$data6 = this.$data,\n treeNodes = _$data6._treeNodes,\n valueEntities = _$data6._valueEntities;\n var _$props7 = this.$props,\n filterTreeNode = _$props7.filterTreeNode,\n treeNodeFilterProp = _$props7.treeNodeFilterProp;\n\n this.__emit('update:searchValue', value);\n this.__emit('search', value);\n\n var isSet = false;\n\n if (!this.isSearchValueControlled()) {\n isSet = this.setUncontrolledState({\n _searchValue: value\n });\n this.setOpenState(true);\n }\n\n if (isSet) {\n // Do the search logic\n var upperSearchValue = String(value).toUpperCase();\n\n var filterTreeNodeFn = filterTreeNode;\n if (filterTreeNode === false) {\n filterTreeNodeFn = function filterTreeNodeFn() {\n return true;\n };\n } else if (!filterTreeNodeFn) {\n filterTreeNodeFn = function filterTreeNodeFn(_, node) {\n var nodeValue = String(getPropsData(node)[treeNodeFilterProp]).toUpperCase();\n return nodeValue.indexOf(upperSearchValue) !== -1;\n };\n }\n\n this.setState({\n _filteredTreeNodes: getFilterTree(this.$createElement, treeNodes, value, filterTreeNodeFn, valueEntities, SelectNode)\n });\n }\n },\n onSearchInputKeyDown: function onSearchInputKeyDown(event) {\n var _$data7 = this.$data,\n searchValue = _$data7._searchValue,\n valueList = _$data7._valueList;\n var keyCode = event.keyCode;\n\n\n if (KeyCode.BACKSPACE === keyCode && this.isMultiple() && !searchValue && valueList.length) {\n var lastValue = valueList[valueList.length - 1].value;\n this.onMultipleSelectorRemove(event, lastValue);\n }\n },\n onChoiceAnimationLeave: function onChoiceAnimationLeave() {\n var _this4 = this;\n\n raf(function () {\n _this4.forcePopupAlign();\n });\n },\n setPopupRef: function setPopupRef(popup) {\n this.popup = popup;\n },\n\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState: function setUncontrolledState(state) {\n var needSync = false;\n var newState = {};\n var props = getOptionProps(this);\n Object.keys(state).forEach(function (name) {\n if (name.slice(1) in props) return;\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n\n return needSync;\n },\n\n\n // [Legacy] Origin provide `documentClickClose` which triggered by `Trigger`\n // Currently `TreeSelect` align the hide popup logic as `Select` which blur to hide.\n // `documentClickClose` is not accurate anymore. Let's just keep the key word.\n setOpenState: function setOpenState(open) {\n var byTrigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dropdownVisibleChange = this.$props.dropdownVisibleChange;\n\n\n if (dropdownVisibleChange && dropdownVisibleChange(open, { documentClickClose: !open && byTrigger }) === false) {\n return;\n }\n\n this.setUncontrolledState({ _open: open });\n },\n\n\n // Tree checkable is also a multiple case\n isMultiple: function isMultiple() {\n var _$props8 = this.$props,\n multiple = _$props8.multiple,\n treeCheckable = _$props8.treeCheckable;\n\n return !!(multiple || treeCheckable);\n },\n isLabelInValue: function isLabelInValue() {\n return _isLabelInValue(this.$props);\n },\n\n\n // [Legacy] To align with `Select` component,\n // We use `searchValue` instead of `inputValue`\n // but currently still need support that.\n // Add this method the check if is controlled\n isSearchValueControlled: function isSearchValueControlled() {\n var props = getOptionProps(this);\n var inputValue = props.inputValue;\n\n if ('searchValue' in props) return true;\n return 'inputValue' in props && inputValue !== null;\n },\n forcePopupAlign: function forcePopupAlign() {\n var $trigger = this.selectTriggerRef.current;\n if ($trigger) {\n $trigger.forcePopupAlign();\n }\n },\n delayForcePopupAlign: function delayForcePopupAlign() {\n var _this5 = this;\n\n // Wait 2 frame to avoid dom update & dom algin in the same time\n // https://github.com/ant-design/ant-design/issues/12031\n raf(function () {\n raf(_this5.forcePopupAlign);\n });\n },\n\n\n /**\n * 1. Update state valueList.\n * 2. Fire `onChange` event to user.\n */\n triggerChange: function triggerChange(missValueList, valueList) {\n var extraInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _$data8 = this.$data,\n valueEntities = _$data8._valueEntities,\n searchValue = _$data8._searchValue,\n prevSelectorValueList = _$data8._selectorValueList;\n\n var props = getOptionProps(this);\n var disabled = props.disabled,\n treeCheckable = props.treeCheckable,\n treeCheckStrictly = props.treeCheckStrictly;\n\n if (disabled) return;\n\n // Trigger\n var extra = _extends({\n // [Legacy] Always return as array contains label & value\n preValue: prevSelectorValueList.map(function (_ref16) {\n var label = _ref16.label,\n value = _ref16.value;\n return { label: label, value: value };\n })\n }, extraInfo);\n\n // Format value by `treeCheckStrictly`\n var selectorValueList = formatSelectorValue(valueList, props, valueEntities);\n\n if (!('value' in props)) {\n var newState = {\n _missValueList: missValueList,\n _valueList: valueList,\n _selectorValueList: selectorValueList\n };\n\n if (searchValue && treeCheckable && !treeCheckStrictly) {\n newState._searchHalfCheckedKeys = getHalfCheckedKeys(valueList, valueEntities);\n }\n\n this.setState(newState);\n }\n\n // Only do the logic when `onChange` function provided\n if (getListeners(this).change) {\n var connectValueList = void 0;\n\n // Get value by mode\n if (this.isMultiple()) {\n connectValueList = [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList));\n } else {\n connectValueList = selectorValueList.slice(0, 1);\n }\n\n var labelList = null;\n var returnValue = void 0;\n\n if (this.isLabelInValue()) {\n returnValue = connectValueList.map(function (_ref17) {\n var label = _ref17.label,\n value = _ref17.value;\n return { label: label, value: value };\n });\n } else {\n labelList = [];\n returnValue = connectValueList.map(function (_ref18) {\n var label = _ref18.label,\n value = _ref18.value;\n\n labelList.push(label);\n return value;\n });\n }\n\n if (!this.isMultiple()) {\n returnValue = returnValue[0];\n }\n this.__emit('change', returnValue, labelList, extra);\n }\n },\n focus: function focus() {\n this.selectorRef.current.focus();\n },\n blur: function blur() {\n this.selectorRef.current.blur();\n }\n },\n\n // ===================== Render =====================\n\n render: function render() {\n var h = arguments[0];\n var _$data9 = this.$data,\n valueList = _$data9._valueList,\n missValueList = _$data9._missValueList,\n selectorValueList = _$data9._selectorValueList,\n searchHalfCheckedKeys = _$data9._searchHalfCheckedKeys,\n valueEntities = _$data9._valueEntities,\n keyEntities = _$data9._keyEntities,\n searchValue = _$data9._searchValue,\n open = _$data9._open,\n focused = _$data9._focused,\n treeNodes = _$data9._treeNodes,\n filteredTreeNodes = _$data9._filteredTreeNodes;\n\n var props = getOptionProps(this);\n var prefixCls = props.prefixCls,\n treeExpandedKeys = props.treeExpandedKeys;\n\n var isMultiple = this.isMultiple();\n\n var passProps = {\n props: _extends({}, props, {\n isMultiple: isMultiple,\n valueList: valueList,\n searchHalfCheckedKeys: searchHalfCheckedKeys,\n selectorValueList: [].concat(_toConsumableArray(missValueList), _toConsumableArray(selectorValueList)),\n valueEntities: valueEntities,\n keyEntities: keyEntities,\n searchValue: searchValue,\n upperSearchValue: (searchValue || '').toUpperCase(), // Perf save\n open: open,\n focused: focused,\n dropdownPrefixCls: prefixCls + '-dropdown',\n ariaId: this.ariaId\n }),\n on: _extends({}, getListeners(this), {\n choiceAnimationLeave: this.onChoiceAnimationLeave\n }),\n scopedSlots: this.$scopedSlots\n };\n var popupProps = mergeProps(passProps, {\n props: {\n treeNodes: treeNodes,\n filteredTreeNodes: filteredTreeNodes,\n // Tree expanded control\n treeExpandedKeys: treeExpandedKeys,\n __propsSymbol__: Symbol()\n },\n on: {\n treeExpanded: this.delayForcePopupAlign\n },\n directives: [{\n name: 'ant-ref',\n value: this.setPopupRef\n }]\n });\n\n var Popup = isMultiple ? MultiplePopup : SinglePopup;\n var $popup = h(Popup, popupProps);\n\n var Selector = isMultiple ? MultipleSelector : SingleSelector;\n var $selector = h(Selector, _mergeJSXProps([passProps, {\n directives: [{\n name: 'ant-ref',\n value: this.selectorRef\n }]\n }]));\n var selectTriggerProps = mergeProps(passProps, {\n props: {\n popupElement: $popup,\n dropdownVisibleChange: this.onDropdownVisibleChange\n },\n directives: [{\n name: 'ant-ref',\n value: this.selectTriggerRef\n }]\n });\n return h(\n SelectTrigger,\n selectTriggerProps,\n [$selector]\n );\n }\n};\n\nSelect.TreeNode = SelectNode;\nSelect.SHOW_ALL = SHOW_ALL;\nSelect.SHOW_PARENT = SHOW_PARENT;\nSelect.SHOW_CHILD = SHOW_CHILD;\n\n// Let warning show correct component name\nSelect.name = 'TreeSelect';\n\nexport default Select;","import Select from './Select';\nimport SelectNode from './SelectNode';\n\nexport { SHOW_ALL, SHOW_CHILD, SHOW_PARENT } from './strategies';\nexport var TreeNode = SelectNode;\n\nexport default Select;","// based on rc-tree 2.1.3\n'use strict';\n\nmodule.exports = require('./src/');","export var SHOW_ALL = 'SHOW_ALL';\nexport var SHOW_PARENT = 'SHOW_PARENT';\nexport var SHOW_CHILD = 'SHOW_CHILD';","import _mergeJSXProps from 'babel-helper-vue-jsx-merge-props';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport moment from 'moment';\n\nvar Header = {\n mixins: [BaseMixin],\n props: {\n format: PropTypes.string,\n prefixCls: PropTypes.string,\n disabledDate: PropTypes.func,\n placeholder: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n inputReadOnly: PropTypes.bool.def(false),\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n // onChange: PropTypes.func,\n // onClear: PropTypes.func,\n // onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n defaultOpenValue: PropTypes.object,\n currentSelectPanel: PropTypes.string,\n focusOnOpen: PropTypes.bool,\n // onKeyDown: PropTypes.func,\n clearIcon: PropTypes.any\n },\n data: function data() {\n var value = this.value,\n format = this.format;\n\n return {\n str: value && value.format(format) || '',\n invalid: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n if (this.focusOnOpen) {\n // Wait one frame for the panel to be positioned before focusing\n var requestAnimationFrame = window.requestAnimationFrame || window.setTimeout;\n requestAnimationFrame(function () {\n _this.$refs.input.focus();\n _this.$refs.input.select();\n });\n }\n },\n\n watch: {\n value: function value(val) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setState({\n str: val && val.format(_this2.format) || '',\n invalid: false\n });\n });\n }\n },\n\n methods: {\n onInputChange: function onInputChange(e) {\n var _e$target = e.target,\n str = _e$target.value,\n composing = _e$target.composing;\n var _str = this.str,\n oldStr = _str === undefined ? '' : _str;\n\n if (e.isComposing || composing || oldStr === str) return;\n\n this.setState({\n str: str\n });\n var format = this.format,\n hourOptions = this.hourOptions,\n minuteOptions = this.minuteOptions,\n secondOptions = this.secondOptions,\n disabledHours = this.disabledHours,\n disabledMinutes = this.disabledMinutes,\n disabledSeconds = this.disabledSeconds,\n originalValue = this.value;\n\n\n if (str) {\n var value = this.getProtoValue().clone();\n var parsed = moment(str, format, true);\n if (!parsed.isValid()) {\n this.setState({\n invalid: true\n });\n return;\n }\n value.hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());\n\n // if time value not allowed, response warning.\n if (hourOptions.indexOf(value.hour()) < 0 || minuteOptions.indexOf(value.minute()) < 0 || secondOptions.indexOf(value.second()) < 0) {\n this.setState({\n invalid: true\n });\n return;\n }\n\n // if time value is disabled, response warning.\n var disabledHourOptions = disabledHours();\n var disabledMinuteOptions = disabledMinutes(value.hour());\n var disabledSecondOptions = disabledSeconds(value.hour(), value.minute());\n if (disabledHourOptions && disabledHourOptions.indexOf(value.hour()) >= 0 || disabledMinuteOptions && disabledMinuteOptions.indexOf(value.minute()) >= 0 || disabledSecondOptions && disabledSecondOptions.indexOf(value.second()) >= 0) {\n this.setState({\n invalid: true\n });\n return;\n }\n\n if (originalValue) {\n if (originalValue.hour() !== value.hour() || originalValue.minute() !== value.minute() || originalValue.second() !== value.second()) {\n // keep other fields for rc-calendar\n var changedValue = originalValue.clone();\n changedValue.hour(value.hour());\n changedValue.minute(value.minute());\n changedValue.second(value.second());\n this.__emit('change', changedValue);\n }\n } else if (originalValue !== value) {\n this.__emit('change', value);\n }\n } else {\n this.__emit('change', null);\n }\n\n this.setState({\n invalid: false\n });\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === 27) {\n this.__emit('esc');\n }\n this.__emit('keydown', e);\n },\n getProtoValue: function getProtoValue() {\n return this.value || this.defaultOpenValue;\n },\n getInput: function getInput() {\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n inputReadOnly = this.inputReadOnly,\n invalid = this.invalid,\n str = this.str;\n\n var invalidClass = invalid ? prefixCls + '-input-invalid' : '';\n return h('input', _mergeJSXProps([{\n 'class': prefixCls + '-input ' + invalidClass,\n ref: 'input',\n on: {\n 'keydown': this.onKeyDown,\n 'input': this.onInputChange\n },\n domProps: {\n 'value': str\n },\n attrs: {\n placeholder: placeholder,\n\n readOnly: !!inputReadOnly\n }\n }, {\n directives: [{\n name: 'ant-input'\n }]\n }]));\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls;\n\n return h(\n 'div',\n { 'class': prefixCls + '-input-wrap' },\n [this.getInput()]\n );\n }\n};\n\nexport default Header;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport classnames from 'classnames';\nimport raf from 'raf';\n\nfunction noop() {}\nvar scrollTo = function scrollTo(element, to, duration) {\n // jump to target if duration zero\n if (duration <= 0) {\n raf(function () {\n element.scrollTop = to;\n });\n return;\n }\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n\n raf(function () {\n element.scrollTop += perTick;\n if (element.scrollTop === to) return;\n scrollTo(element, to, duration - 10);\n });\n};\n\nvar Select = {\n mixins: [BaseMixin],\n props: {\n prefixCls: PropTypes.string,\n options: PropTypes.array,\n selectedIndex: PropTypes.number,\n type: PropTypes.string\n // onSelect: PropTypes.func,\n // onMouseEnter: PropTypes.func,\n },\n data: function data() {\n return {\n active: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // jump to selected option\n _this.scrollToSelected(0);\n });\n },\n\n watch: {\n selectedIndex: function selectedIndex() {\n var _this2 = this;\n\n this.$nextTick(function () {\n // smooth scroll to selected option\n _this2.scrollToSelected(120);\n });\n }\n },\n methods: {\n onSelect: function onSelect(value) {\n var type = this.type;\n\n this.__emit('select', type, value);\n },\n onEsc: function onEsc(e) {\n this.__emit('esc', e);\n },\n getOptions: function getOptions() {\n var _this3 = this;\n\n var h = this.$createElement;\n var options = this.options,\n selectedIndex = this.selectedIndex,\n prefixCls = this.prefixCls;\n\n return options.map(function (item, index) {\n var _classnames;\n\n var cls = classnames((_classnames = {}, _defineProperty(_classnames, prefixCls + '-select-option-selected', selectedIndex === index), _defineProperty(_classnames, prefixCls + '-select-option-disabled', item.disabled), _classnames));\n var onClick = item.disabled ? noop : function () {\n _this3.onSelect(item.value);\n };\n var onKeyDown = function onKeyDown(e) {\n if (e.keyCode === 13) onClick();else if (e.keyCode === 27) _this3.onEsc();\n };\n return h(\n 'li',\n {\n attrs: {\n role: 'button',\n\n disabled: item.disabled,\n tabIndex: '0'\n },\n on: {\n 'click': onClick,\n 'keydown': onKeyDown\n },\n\n 'class': cls,\n key: index },\n [item.value]\n );\n });\n },\n handleMouseEnter: function handleMouseEnter(e) {\n this.setState({ active: true });\n this.__emit('mouseenter', e);\n },\n handleMouseLeave: function handleMouseLeave() {\n this.setState({ active: false });\n },\n scrollToSelected: function scrollToSelected(duration) {\n // move to selected item\n var select = this.$el;\n var list = this.$refs.list;\n if (!list) {\n return;\n }\n var index = this.selectedIndex;\n if (index < 0) {\n index = 0;\n }\n var topOption = list.children[index];\n var to = topOption.offsetTop;\n scrollTo(select, to, duration);\n }\n },\n\n render: function render() {\n var _cls;\n\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n options = this.options,\n active = this.active;\n\n if (options.length === 0) {\n return null;\n }\n\n var cls = (_cls = {}, _defineProperty(_cls, prefixCls + '-select', 1), _defineProperty(_cls, prefixCls + '-select-active', active), _cls);\n\n return h(\n 'div',\n { 'class': cls, on: {\n 'mouseenter': this.handleMouseEnter,\n 'mouseleave': this.handleMouseLeave\n }\n },\n [h(\n 'ul',\n { ref: 'list' },\n [this.getOptions()]\n )]\n );\n }\n};\n\nexport default Select;","import PropTypes from '../_util/vue-types';\nimport Select from './Select';\nimport BaseMixin from '../_util/BaseMixin';\n\nvar formatOption = function formatOption(option, disabledOptions) {\n var value = '' + option;\n if (option < 10) {\n value = '0' + option;\n }\n\n var disabled = false;\n if (disabledOptions && disabledOptions.indexOf(option) >= 0) {\n disabled = true;\n }\n\n return {\n value: value,\n disabled: disabled\n };\n};\n\nvar Combobox = {\n mixins: [BaseMixin],\n name: 'Combobox',\n props: {\n format: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n prefixCls: PropTypes.string,\n value: PropTypes.object,\n // onChange: PropTypes.func,\n // onAmPmChange: PropTypes.func,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n // onCurrentSelectPanelChange: PropTypes.func,\n use12Hours: PropTypes.bool,\n isAM: PropTypes.bool\n },\n methods: {\n onItemChange: function onItemChange(type, itemValue) {\n var defaultOpenValue = this.defaultOpenValue,\n use12Hours = this.use12Hours,\n propValue = this.value,\n isAM = this.isAM;\n\n var value = (propValue || defaultOpenValue).clone();\n\n if (type === 'hour') {\n if (use12Hours) {\n if (isAM) {\n value.hour(+itemValue % 12);\n } else {\n value.hour(+itemValue % 12 + 12);\n }\n } else {\n value.hour(+itemValue);\n }\n } else if (type === 'minute') {\n value.minute(+itemValue);\n } else if (type === 'ampm') {\n var ampm = itemValue.toUpperCase();\n if (use12Hours) {\n if (ampm === 'PM' && value.hour() < 12) {\n value.hour(value.hour() % 12 + 12);\n }\n\n if (ampm === 'AM') {\n if (value.hour() >= 12) {\n value.hour(value.hour() - 12);\n }\n }\n }\n this.__emit('amPmChange', ampm);\n } else {\n value.second(+itemValue);\n }\n this.__emit('change', value);\n },\n onEnterSelectPanel: function onEnterSelectPanel(range) {\n this.__emit('currentSelectPanelChange', range);\n },\n onEsc: function onEsc(e) {\n this.__emit('esc', e);\n },\n getHourSelect: function getHourSelect(hour) {\n var _this = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n hourOptions = this.hourOptions,\n disabledHours = this.disabledHours,\n showHour = this.showHour,\n use12Hours = this.use12Hours;\n\n if (!showHour) {\n return null;\n }\n var disabledOptions = disabledHours();\n var hourOptionsAdj = void 0;\n var hourAdj = void 0;\n if (use12Hours) {\n hourOptionsAdj = [12].concat(hourOptions.filter(function (h) {\n return h < 12 && h > 0;\n }));\n hourAdj = hour % 12 || 12;\n } else {\n hourOptionsAdj = hourOptions;\n hourAdj = hour;\n }\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: hourOptionsAdj.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: hourOptionsAdj.indexOf(hourAdj),\n type: 'hour'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this.onEnterSelectPanel('hour');\n },\n 'esc': this.onEsc\n }\n });\n },\n getMinuteSelect: function getMinuteSelect(minute) {\n var _this2 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n minuteOptions = this.minuteOptions,\n disabledMinutes = this.disabledMinutes,\n defaultOpenValue = this.defaultOpenValue,\n showMinute = this.showMinute,\n propValue = this.value;\n\n if (!showMinute) {\n return null;\n }\n var value = propValue || defaultOpenValue;\n var disabledOptions = disabledMinutes(value.hour());\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: minuteOptions.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: minuteOptions.indexOf(minute),\n type: 'minute'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this2.onEnterSelectPanel('minute');\n },\n 'esc': this.onEsc\n }\n });\n },\n getSecondSelect: function getSecondSelect(second) {\n var _this3 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n secondOptions = this.secondOptions,\n disabledSeconds = this.disabledSeconds,\n showSecond = this.showSecond,\n defaultOpenValue = this.defaultOpenValue,\n propValue = this.value;\n\n if (!showSecond) {\n return null;\n }\n var value = propValue || defaultOpenValue;\n var disabledOptions = disabledSeconds(value.hour(), value.minute());\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: secondOptions.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: secondOptions.indexOf(second),\n type: 'second'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this3.onEnterSelectPanel('second');\n },\n 'esc': this.onEsc\n }\n });\n },\n getAMPMSelect: function getAMPMSelect() {\n var _this4 = this;\n\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n use12Hours = this.use12Hours,\n format = this.format,\n isAM = this.isAM;\n\n if (!use12Hours) {\n return null;\n }\n\n var AMPMOptions = ['am', 'pm'] // If format has A char, then we should uppercase AM/PM\n .map(function (c) {\n return format.match(/\\sA/) ? c.toUpperCase() : c;\n }).map(function (c) {\n return { value: c };\n });\n\n var selected = isAM ? 0 : 1;\n\n return h(Select, {\n attrs: {\n prefixCls: prefixCls,\n options: AMPMOptions,\n selectedIndex: selected,\n type: 'ampm'\n },\n on: {\n 'select': this.onItemChange,\n 'mouseenter': function mouseenter() {\n return _this4.onEnterSelectPanel('ampm');\n },\n 'esc': this.onEsc\n }\n });\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n defaultOpenValue = this.defaultOpenValue,\n propValue = this.value;\n\n var value = propValue || defaultOpenValue;\n return h(\n 'div',\n { 'class': prefixCls + '-combobox' },\n [this.getHourSelect(value.hour()), this.getMinuteSelect(value.minute()), this.getSecondSelect(value.second()), this.getAMPMSelect(value.hour())]\n );\n }\n};\n\nexport default Combobox;","import moment from 'moment';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport Header from './Header';\nimport Combobox from './Combobox';\nimport { getComponentFromProp, getListeners } from '../_util/props-util';\n\nfunction noop() {}\n\nfunction generateOptions(length, disabledOptions, hideDisabledOptions) {\n var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n var arr = [];\n for (var value = 0; value < length; value += step) {\n if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) {\n arr.push(value);\n }\n }\n return arr;\n}\n\nfunction toNearestValidTime(time, hourOptions, minuteOptions, secondOptions) {\n var hour = hourOptions.slice().sort(function (a, b) {\n return Math.abs(time.hour() - a) - Math.abs(time.hour() - b);\n })[0];\n var minute = minuteOptions.slice().sort(function (a, b) {\n return Math.abs(time.minute() - a) - Math.abs(time.minute() - b);\n })[0];\n var second = secondOptions.slice().sort(function (a, b) {\n return Math.abs(time.second() - a) - Math.abs(time.second() - b);\n })[0];\n return moment(hour + ':' + minute + ':' + second, 'HH:mm:ss');\n}\n\nvar Panel = {\n mixins: [BaseMixin],\n props: {\n clearText: PropTypes.string,\n prefixCls: PropTypes.string.def('rc-time-picker-panel'),\n defaultOpenValue: {\n type: Object,\n 'default': function _default() {\n return moment();\n }\n },\n value: PropTypes.any,\n defaultValue: PropTypes.any,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n inputReadOnly: PropTypes.bool.def(false),\n disabledHours: PropTypes.func.def(noop),\n disabledMinutes: PropTypes.func.def(noop),\n disabledSeconds: PropTypes.func.def(noop),\n hideDisabledOptions: PropTypes.bool,\n // onChange: PropTypes.func,\n // onEsc: PropTypes.func,\n allowEmpty: PropTypes.bool,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n // onClear: PropTypes.func,\n use12Hours: PropTypes.bool.def(false),\n hourStep: PropTypes.number,\n minuteStep: PropTypes.number,\n secondStep: PropTypes.number,\n addon: PropTypes.func.def(noop),\n focusOnOpen: PropTypes.bool,\n // onKeydown: PropTypes.func,\n clearIcon: PropTypes.any\n },\n data: function data() {\n return {\n sValue: this.value,\n selectionRange: [],\n currentSelectPanel: ''\n };\n },\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n }\n },\n\n methods: {\n onChange: function onChange(newValue) {\n this.setState({ sValue: newValue });\n this.__emit('change', newValue);\n },\n onAmPmChange: function onAmPmChange(ampm) {\n this.__emit('amPmChange', ampm);\n },\n onCurrentSelectPanelChange: function onCurrentSelectPanelChange(currentSelectPanel) {\n this.setState({ currentSelectPanel: currentSelectPanel });\n },\n\n\n // https://github.com/ant-design/ant-design/issues/5829\n close: function close() {\n this.__emit('esc');\n },\n onEsc: function onEsc(e) {\n this.__emit('esc', e);\n },\n disabledHours2: function disabledHours2() {\n var use12Hours = this.use12Hours,\n disabledHours = this.disabledHours;\n\n var disabledOptions = disabledHours();\n if (use12Hours && Array.isArray(disabledOptions)) {\n if (this.isAM()) {\n disabledOptions = disabledOptions.filter(function (h) {\n return h < 12;\n }).map(function (h) {\n return h === 0 ? 12 : h;\n });\n } else {\n disabledOptions = disabledOptions.map(function (h) {\n return h === 12 ? 12 : h - 12;\n });\n }\n }\n return disabledOptions;\n },\n isAM: function isAM() {\n var value = this.sValue || this.defaultOpenValue;\n return value.hour() >= 0 && value.hour() < 12;\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n disabledMinutes = this.disabledMinutes,\n addon = this.addon,\n disabledSeconds = this.disabledSeconds,\n hideDisabledOptions = this.hideDisabledOptions,\n showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n format = this.format,\n defaultOpenValue = this.defaultOpenValue,\n clearText = this.clearText,\n use12Hours = this.use12Hours,\n focusOnOpen = this.focusOnOpen,\n hourStep = this.hourStep,\n minuteStep = this.minuteStep,\n secondStep = this.secondStep,\n inputReadOnly = this.inputReadOnly,\n sValue = this.sValue,\n currentSelectPanel = this.currentSelectPanel;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n\n var _getListeners = getListeners(this),\n _getListeners$esc = _getListeners.esc,\n esc = _getListeners$esc === undefined ? noop : _getListeners$esc,\n _getListeners$keydown = _getListeners.keydown,\n keydown = _getListeners$keydown === undefined ? noop : _getListeners$keydown;\n\n var disabledHourOptions = this.disabledHours2();\n var disabledMinuteOptions = disabledMinutes(sValue ? sValue.hour() : null);\n var disabledSecondOptions = disabledSeconds(sValue ? sValue.hour() : null, sValue ? sValue.minute() : null);\n var hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions, hourStep);\n var minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions, minuteStep);\n var secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions, secondStep);\n var validDefaultOpenValue = toNearestValidTime(defaultOpenValue, hourOptions, minuteOptions, secondOptions);\n return h(\n 'div',\n { 'class': prefixCls + '-inner' },\n [h(Header, {\n attrs: {\n clearText: clearText,\n prefixCls: prefixCls,\n defaultOpenValue: validDefaultOpenValue,\n value: sValue,\n currentSelectPanel: currentSelectPanel,\n\n format: format,\n placeholder: placeholder,\n hourOptions: hourOptions,\n minuteOptions: minuteOptions,\n secondOptions: secondOptions,\n disabledHours: this.disabledHours2,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n\n focusOnOpen: focusOnOpen,\n\n inputReadOnly: inputReadOnly,\n clearIcon: clearIcon\n },\n on: {\n 'esc': esc,\n 'change': this.onChange,\n 'keydown': keydown\n }\n }), h(Combobox, {\n attrs: {\n prefixCls: prefixCls,\n value: sValue,\n defaultOpenValue: validDefaultOpenValue,\n format: format,\n\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n hourOptions: hourOptions,\n minuteOptions: minuteOptions,\n secondOptions: secondOptions,\n disabledHours: this.disabledHours2,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n\n use12Hours: use12Hours,\n\n isAM: this.isAM()\n },\n on: {\n 'change': this.onChange,\n 'amPmChange': this.onAmPmChange,\n 'currentSelectPanelChange': this.onCurrentSelectPanelChange,\n 'esc': this.onEsc\n }\n }), addon(this)]\n );\n }\n};\n\nexport default Panel;","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 _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _slicedToArray from 'babel-runtime/helpers/slicedToArray';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\n/* eslint no-loop-func: 0*/\nimport warning from 'warning';\nimport omit from 'omit.js';\nimport TreeNode from './TreeNode';\nimport { getSlotOptions, getOptionProps } from '../../_util/props-util';\nvar DRAG_SIDE_RANGE = 0.25;\nvar DRAG_MIN_GAP = 2;\n\nvar onlyTreeNodeWarned = false;\n\nexport function warnOnlyTreeNode() {\n if (onlyTreeNodeWarned) return;\n\n onlyTreeNodeWarned = true;\n warning(false, 'Tree only accept TreeNode as children.');\n}\n\nexport function arrDel(list, value) {\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list, value) {\n var clone = list.slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos) {\n return pos.split('-');\n}\n\nexport function getPosition(level, index) {\n return level + '-' + index;\n}\n\nexport function isTreeNode(node) {\n return getSlotOptions(node).isTreeNode;\n}\n\nexport function getNodeChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n return children.filter(isTreeNode);\n}\n\nexport function isCheckDisabled(node) {\n var _ref = getOptionProps(node) || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n\nexport function traverseTreeNodes(treeNodes, callback) {\n function processNode(node, index, parent) {\n var children = node ? node.componentOptions.children : treeNodes;\n var pos = node ? getPosition(parent.pos, index) : 0;\n\n // Filter children\n var childList = getNodeChildren(children);\n\n // Process node if is not root\n if (node) {\n var key = node.key;\n if (!key && (key === undefined || key === null)) {\n key = pos;\n }\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null\n };\n callback(data);\n }\n\n // Process children node\n childList.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, { node: node, pos: pos });\n });\n }\n\n processNode(null);\n}\n\n/**\n * Use `rc-util` `toArray` to get the children list which keeps the key.\n * And return single node if children is only one(This can avoid `key` missing check).\n */\nexport function mapChildren() {\n var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var func = arguments[1];\n\n var list = children.map(func);\n if (list.length === 1) {\n return list[0];\n }\n return list;\n}\n\nexport function getDragNodesKeys(treeNodes, node) {\n var _getOptionProps = getOptionProps(node),\n eventKey = _getOptionProps.eventKey,\n pos = _getOptionProps.pos;\n\n var dragNodesKeys = [];\n\n traverseTreeNodes(treeNodes, function (_ref2) {\n var key = _ref2.key;\n\n dragNodesKeys.push(key);\n });\n dragNodesKeys.push(eventKey || pos);\n return dragNodesKeys;\n}\n\nexport function calcDropPosition(event, treeNode) {\n var clientY = event.clientY;\n\n var _treeNode$$refs$selec = treeNode.$refs.selectHandle.getBoundingClientRect(),\n top = _treeNode$$refs$selec.top,\n bottom = _treeNode$$refs$selec.bottom,\n height = _treeNode$$refs$selec.height;\n\n var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n }\n if (clientY >= bottom - des) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) {\n return undefined;\n }\n\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\n/**\n * Since React internal will convert key to string,\n * we need do this to avoid `checkStrictly` use number match\n */\n// function keyListToString (keyList) {\n// if (!keyList) return keyList\n// return keyList.map(key => String(key))\n// }\n\nvar internalProcessProps = function internalProcessProps() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return {\n props: omit(props, ['on', 'key', 'class', 'className', 'style']),\n on: props.on || {},\n 'class': props['class'] || props.className,\n style: props.style,\n key: props.key\n };\n};\nexport function convertDataToTree(h, treeData, processor) {\n if (!treeData) return [];\n\n var _ref3 = processor || {},\n _ref3$processProps = _ref3.processProps,\n processProps = _ref3$processProps === undefined ? internalProcessProps : _ref3$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref4) {\n var children = _ref4.children,\n props = _objectWithoutProperties(_ref4, ['children']);\n\n var childrenNodes = convertDataToTree(h, children, processor);\n return h(\n TreeNode,\n processProps(props),\n [childrenNodes]\n );\n });\n}\n\n// TODO: ========================= NEW LOGIC =========================\n/**\n * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select`\n * @param treeNodes\n * @param processTreeEntity User can customize the entity\n */\nexport function convertTreeToEntities(treeNodes) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref5.initWrapper,\n processEntity = _ref5.processEntity,\n onProcessFinished = _ref5.onProcessFinished;\n\n var posEntities = new Map();\n var keyEntities = new Map();\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseTreeNodes(treeNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos;\n\n var entity = { node: node, index: index, key: key, pos: pos };\n\n posEntities.set(pos, entity);\n keyEntities.set(key, entity);\n\n // Fill children\n entity.parent = posEntities.get(parentPos);\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n var keyProps = void 0;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if ((typeof keys === 'undefined' ? 'undefined' : _typeof(keys)) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n // keyProps.checkedKeys = keyListToString(keyProps.checkedKeys)\n // keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys)\n\n return keyProps;\n}\n\n/**\n * Conduct check state by the keyList. It will conduct up & from the provided key.\n * If the conduct path reach the disabled or already checked / unchecked node will stop conduct.\n * @param keyList list of keys\n * @param isCheck is check the node or not\n * @param keyEntities parsed by `convertTreeToEntities` function in Tree\n * @param checkStatus Can pass current checked status for process (usually for uncheck operation)\n * @returns {{checkedKeys: [], halfCheckedKeys: []}}\n */\nexport function conductCheck(keyList, isCheck, keyEntities) {\n var checkStatus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var checkedKeys = new Map();\n var halfCheckedKeys = new Map(); // Record the key has some child checked (include child half checked)\n\n (checkStatus.checkedKeys || []).forEach(function (key) {\n checkedKeys.set(key, true);\n });\n\n (checkStatus.halfCheckedKeys || []).forEach(function (key) {\n halfCheckedKeys.set(key, true);\n });\n\n // Conduct up\n function conductUp(key) {\n if (checkedKeys.get(key) === isCheck) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n // Check child node checked status\n var everyChildChecked = true;\n var someChildChecked = false; // Child checked or half checked\n\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (_ref6) {\n var childKey = _ref6.key;\n\n var childChecked = checkedKeys.get(childKey);\n var childHalfChecked = halfCheckedKeys.get(childKey);\n\n if (childChecked || childHalfChecked) someChildChecked = true;\n if (!childChecked) everyChildChecked = false;\n });\n\n // Update checked status\n if (isCheck) {\n checkedKeys.set(key, everyChildChecked);\n } else {\n checkedKeys.set(key, false);\n }\n halfCheckedKeys.set(key, someChildChecked);\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n // Conduct down\n function conductDown(key) {\n if (checkedKeys.get(key) === isCheck) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n var children = entity.children,\n node = entity.node;\n\n\n if (isCheckDisabled(node)) return;\n\n checkedKeys.set(key, isCheck);\n\n (children || []).forEach(function (child) {\n conductDown(child.key);\n });\n }\n\n function conduct(key) {\n var entity = keyEntities.get(key);\n\n if (!entity) {\n warning(false, '\\'' + key + '\\' does not exist in the tree.');\n return;\n }\n var children = entity.children,\n parent = entity.parent,\n node = entity.node;\n\n checkedKeys.set(key, isCheck);\n\n if (isCheckDisabled(node)) return;\n\n // Conduct down\n (children || []).filter(function (child) {\n return !isCheckDisabled(child.node);\n }).forEach(function (child) {\n conductDown(child.key);\n });\n\n // Conduct up\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conduct(key);\n });\n\n var checkedKeyList = [];\n var halfCheckedKeyList = [];\n\n // Fill checked list\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = checkedKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref7 = _step.value;\n\n var _ref8 = _slicedToArray(_ref7, 2);\n\n var key = _ref8[0];\n var value = _ref8[1];\n\n if (value) {\n checkedKeyList.push(key);\n }\n }\n\n // Fill half checked list\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = halfCheckedKeys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref9 = _step2.value;\n\n var _ref10 = _slicedToArray(_ref9, 2);\n\n var _key = _ref10[0];\n var _value = _ref10[1];\n\n if (!checkedKeys.get(_key) && _value) {\n halfCheckedKeyList.push(_key);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2['return']) {\n _iterator2['return']();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return {\n checkedKeys: checkedKeyList,\n halfCheckedKeys: halfCheckedKeyList\n };\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Map();\n\n function conductUp(key) {\n if (expandedKeys.get(key)) return;\n\n var entity = keyEntities.get(key);\n if (!entity) return;\n\n expandedKeys.set(key, true);\n\n var parent = entity.parent,\n node = entity.node;\n\n var props = getOptionProps(node);\n if (props && props.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n\n return [].concat(_toConsumableArray(expandedKeys.keys()));\n}\n\n/**\n * Returns only the data- and aria- key/value pairs\n * @param {object} props\n */\nexport function getDataAndAria(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _extends from 'babel-runtime/helpers/extends';\nimport PropTypes from '../../_util/vue-types';\nimport classNames from 'classnames';\nimport { getNodeChildren as _getNodeChildren, mapChildren, warnOnlyTreeNode } from './util';\nimport { initDefaultProps, filterEmpty, getComponentFromProp } from '../../_util/props-util';\nimport BaseMixin from '../../_util/BaseMixin';\nimport getTransitionProps from '../../_util/getTransitionProps';\n\nfunction noop() {}\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\n\nvar defaultTitle = '---';\n\nvar TreeNode = {\n name: 'TreeNode',\n mixins: [BaseMixin],\n __ANT_TREE_NODE: true,\n props: initDefaultProps({\n eventKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // Pass by parent `cloneElement`\n prefixCls: PropTypes.string,\n // className: PropTypes.string,\n root: PropTypes.object,\n // onSelect: PropTypes.func,\n\n // By parent\n expanded: PropTypes.bool,\n selected: PropTypes.bool,\n checked: PropTypes.bool,\n loaded: PropTypes.bool,\n loading: PropTypes.bool,\n halfChecked: PropTypes.bool,\n title: PropTypes.any,\n pos: PropTypes.string,\n dragOver: PropTypes.bool,\n dragOverGapTop: PropTypes.bool,\n dragOverGapBottom: PropTypes.bool,\n\n // By user\n isLeaf: PropTypes.bool,\n checkable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n disableCheckbox: PropTypes.bool,\n icon: PropTypes.any,\n dataRef: PropTypes.object,\n switcherIcon: PropTypes.any,\n label: PropTypes.any,\n value: PropTypes.any\n }, {}),\n\n data: function data() {\n return {\n dragNodeHighlight: false\n };\n },\n\n inject: {\n vcTree: { 'default': function _default() {\n return {};\n } },\n vcTreeNode: { 'default': function _default() {\n return {};\n } }\n },\n provide: function provide() {\n return {\n vcTreeNode: this\n };\n },\n\n\n // Isomorphic needn't load data in server side\n mounted: function mounted() {\n var eventKey = this.eventKey,\n registerTreeNode = this.vcTree.registerTreeNode;\n\n this.syncLoadData(this.$props);\n registerTreeNode && registerTreeNode(eventKey, this);\n },\n updated: function updated() {\n this.syncLoadData(this.$props);\n },\n beforeDestroy: function beforeDestroy() {\n var eventKey = this.eventKey,\n registerTreeNode = this.vcTree.registerTreeNode;\n\n registerTreeNode && registerTreeNode(eventKey, null);\n },\n\n\n methods: {\n onSelectorClick: function onSelectorClick(e) {\n // Click trigger before select/check operation\n var onNodeClick = this.vcTree.onNodeClick;\n\n onNodeClick(e, this);\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n },\n onSelectorDoubleClick: function onSelectorDoubleClick(e) {\n var onNodeDoubleClick = this.vcTree.onNodeDoubleClick;\n\n onNodeDoubleClick(e, this);\n },\n onSelect: function onSelect(e) {\n if (this.isDisabled()) return;\n\n var onNodeSelect = this.vcTree.onNodeSelect;\n\n e.preventDefault();\n onNodeSelect(e, this);\n },\n onCheck: function onCheck(e) {\n if (this.isDisabled()) return;\n\n var disableCheckbox = this.disableCheckbox,\n checked = this.checked;\n var onNodeCheck = this.vcTree.onNodeCheck;\n\n\n if (!this.isCheckable() || disableCheckbox) return;\n\n e.preventDefault();\n var targetChecked = !checked;\n onNodeCheck(e, this, targetChecked);\n },\n onMouseEnter: function onMouseEnter(e) {\n var onNodeMouseEnter = this.vcTree.onNodeMouseEnter;\n\n onNodeMouseEnter(e, this);\n },\n onMouseLeave: function onMouseLeave(e) {\n var onNodeMouseLeave = this.vcTree.onNodeMouseLeave;\n\n onNodeMouseLeave(e, this);\n },\n onContextMenu: function onContextMenu(e) {\n var onNodeContextMenu = this.vcTree.onNodeContextMenu;\n\n onNodeContextMenu(e, this);\n },\n onDragStart: function onDragStart(e) {\n var onNodeDragStart = this.vcTree.onNodeDragStart;\n\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n },\n onDragEnter: function onDragEnter(e) {\n var onNodeDragEnter = this.vcTree.onNodeDragEnter;\n\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n },\n onDragOver: function onDragOver(e) {\n var onNodeDragOver = this.vcTree.onNodeDragOver;\n\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n },\n onDragLeave: function onDragLeave(e) {\n var onNodeDragLeave = this.vcTree.onNodeDragLeave;\n\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n },\n onDragEnd: function onDragEnd(e) {\n var onNodeDragEnd = this.vcTree.onNodeDragEnd;\n\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, this);\n },\n onDrop: function onDrop(e) {\n var onNodeDrop = this.vcTree.onNodeDrop;\n\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, this);\n },\n\n\n // Disabled item still can be switch\n onExpand: function onExpand(e) {\n var onNodeExpand = this.vcTree.onNodeExpand;\n\n onNodeExpand(e, this);\n },\n getNodeChildren: function getNodeChildren() {\n var children = this.$slots['default'];\n\n var originList = filterEmpty(children);\n var targetList = _getNodeChildren(originList);\n\n if (originList.length !== targetList.length) {\n warnOnlyTreeNode();\n }\n\n return targetList;\n },\n getNodeState: function getNodeState() {\n var expanded = this.expanded;\n\n\n if (this.isLeaf2()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n },\n isLeaf2: function isLeaf2() {\n var isLeaf = this.isLeaf,\n loaded = this.loaded;\n var loadData = this.vcTree.loadData;\n\n\n var hasChildren = this.getNodeChildren().length !== 0;\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n },\n isDisabled: function isDisabled() {\n var disabled = this.disabled;\n var treeDisabled = this.vcTree.disabled;\n\n // Follow the logic of Selectable\n\n if (disabled === false) {\n return false;\n }\n\n return !!(treeDisabled || disabled);\n },\n isCheckable: function isCheckable() {\n var checkable = this.$props.checkable;\n var treeCheckable = this.vcTree.checkable;\n\n // Return false if tree or treeNode is not checkable\n\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n },\n\n\n // Load data to avoid default expanded tree without data\n syncLoadData: function syncLoadData(props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _vcTree = this.vcTree,\n loadData = _vcTree.loadData,\n onNodeLoad = _vcTree.onNodeLoad;\n\n if (loading) return;\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf2()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n var hasChildren = this.getNodeChildren().length !== 0;\n if (!hasChildren && !loaded) {\n onNodeLoad(this);\n }\n }\n },\n isSelectable: function isSelectable() {\n var selectable = this.selectable;\n var treeSelectable = this.vcTree.selectable;\n\n // Ignore when selectable is undefined or null\n\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n },\n\n\n // Switcher\n renderSwitcher: function renderSwitcher() {\n var h = this.$createElement;\n var expanded = this.expanded;\n var prefixCls = this.vcTree.prefixCls;\n\n var switcherIcon = getComponentFromProp(this, 'switcherIcon', {}, false) || getComponentFromProp(this.vcTree, 'switcherIcon', {}, false);\n if (this.isLeaf2()) {\n return h(\n 'span',\n {\n key: 'switcher',\n 'class': classNames(prefixCls + '-switcher', prefixCls + '-switcher-noop')\n },\n [typeof switcherIcon === 'function' ? switcherIcon(_extends({}, this.$props, this.$props.dataRef, { isLeaf: true })) : switcherIcon]\n );\n }\n\n var switcherCls = classNames(prefixCls + '-switcher', prefixCls + '-switcher_' + (expanded ? ICON_OPEN : ICON_CLOSE));\n return h(\n 'span',\n { key: 'switcher', on: {\n 'click': this.onExpand\n },\n 'class': switcherCls },\n [typeof switcherIcon === 'function' ? switcherIcon(_extends({}, this.$props, this.$props.dataRef, { isLeaf: false })) : switcherIcon]\n );\n },\n\n\n // Checkbox\n renderCheckbox: function renderCheckbox() {\n var h = this.$createElement;\n var checked = this.checked,\n halfChecked = this.halfChecked,\n disableCheckbox = this.disableCheckbox;\n var prefixCls = this.vcTree.prefixCls;\n\n var disabled = this.isDisabled();\n var checkable = this.isCheckable();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return h(\n 'span',\n {\n key: 'checkbox',\n 'class': classNames(prefixCls + '-checkbox', checked && prefixCls + '-checkbox-checked', !checked && halfChecked && prefixCls + '-checkbox-indeterminate', (disabled || disableCheckbox) && prefixCls + '-checkbox-disabled'),\n on: {\n 'click': this.onCheck\n }\n },\n [$custom]\n );\n },\n renderIcon: function renderIcon() {\n var h = this.$createElement;\n var loading = this.loading;\n var prefixCls = this.vcTree.prefixCls;\n\n\n return h('span', {\n key: 'icon',\n 'class': classNames(prefixCls + '-iconEle', prefixCls + '-icon__' + (this.getNodeState() || 'docu'), loading && prefixCls + '-icon_loading')\n });\n },\n\n\n // Icon + Title\n renderSelector: function renderSelector(h) {\n var selected = this.selected,\n loading = this.loading,\n dragNodeHighlight = this.dragNodeHighlight;\n\n var icon = getComponentFromProp(this, 'icon', {}, false);\n var _vcTree2 = this.vcTree,\n prefixCls = _vcTree2.prefixCls,\n showIcon = _vcTree2.showIcon,\n treeIcon = _vcTree2.icon,\n draggable = _vcTree2.draggable,\n loadData = _vcTree2.loadData;\n\n var disabled = this.isDisabled();\n var title = getComponentFromProp(this, 'title', {}, false);\n var wrapClass = prefixCls + '-node-content-wrapper';\n\n // Icon - Still show loading icon when loading without showIcon\n var $icon = void 0;\n\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? h(\n 'span',\n { 'class': classNames(prefixCls + '-iconEle', prefixCls + '-icon__customize') },\n [typeof currentIcon === 'function' ? currentIcon(_extends({}, this.$props, this.$props.dataRef), h) : currentIcon]\n ) : this.renderIcon();\n } else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n\n var currentTitle = title;\n var $title = currentTitle ? h(\n 'span',\n { 'class': prefixCls + '-title' },\n [typeof currentTitle === 'function' ? currentTitle(_extends({}, this.$props, this.$props.dataRef), h) : currentTitle]\n ) : h(\n 'span',\n { 'class': prefixCls + '-title' },\n [defaultTitle]\n );\n\n return h(\n 'span',\n {\n key: 'selector',\n ref: 'selectHandle',\n attrs: { title: typeof title === 'string' ? title : '',\n\n draggable: !disabled && draggable || undefined,\n 'aria-grabbed': !disabled && draggable || undefined\n },\n 'class': classNames('' + wrapClass, wrapClass + '-' + (this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && prefixCls + '-node-selected', !disabled && draggable && 'draggable'), on: {\n 'mouseenter': this.onMouseEnter,\n 'mouseleave': this.onMouseLeave,\n 'contextmenu': this.onContextMenu,\n 'click': this.onSelectorClick,\n 'dblclick': this.onSelectorDoubleClick,\n 'dragstart': draggable ? this.onDragStart : noop\n }\n },\n [$icon, $title]\n );\n },\n\n\n // Children list wrapped with `Animation`\n renderChildren: function renderChildren() {\n var h = this.$createElement;\n var expanded = this.expanded,\n pos = this.pos;\n var _vcTree3 = this.vcTree,\n prefixCls = _vcTree3.prefixCls,\n openTransitionName = _vcTree3.openTransitionName,\n openAnimation = _vcTree3.openAnimation,\n renderTreeNode = _vcTree3.renderTreeNode;\n\n\n var animProps = {};\n if (openTransitionName) {\n animProps = getTransitionProps(openTransitionName);\n } else if ((typeof openAnimation === 'undefined' ? 'undefined' : _typeof(openAnimation)) === 'object') {\n animProps = _extends({}, openAnimation);\n animProps.props = _extends({ css: false }, animProps.props);\n }\n\n // Children TreeNode\n var nodeList = this.getNodeChildren();\n\n if (nodeList.length === 0) {\n return null;\n }\n\n var $children = void 0;\n if (expanded) {\n $children = h(\n 'ul',\n {\n 'class': classNames(prefixCls + '-child-tree', expanded && prefixCls + '-child-tree-open'),\n attrs: { 'data-expanded': expanded,\n role: 'group'\n }\n },\n [mapChildren(nodeList, function (node, index) {\n return renderTreeNode(node, index, pos);\n })]\n );\n }\n\n return h(\n 'transition',\n animProps,\n [$children]\n );\n }\n },\n\n render: function render(h) {\n var _ref;\n\n var _$props = this.$props,\n dragOver = _$props.dragOver,\n dragOverGapTop = _$props.dragOverGapTop,\n dragOverGapBottom = _$props.dragOverGapBottom,\n isLeaf = _$props.isLeaf,\n expanded = _$props.expanded,\n selected = _$props.selected,\n checked = _$props.checked,\n halfChecked = _$props.halfChecked,\n loading = _$props.loading;\n var _vcTree4 = this.vcTree,\n prefixCls = _vcTree4.prefixCls,\n filterTreeNode = _vcTree4.filterTreeNode,\n draggable = _vcTree4.draggable;\n\n var disabled = this.isDisabled();\n return h(\n 'li',\n {\n 'class': (_ref = {}, _defineProperty(_ref, prefixCls + '-treenode-disabled', disabled), _defineProperty(_ref, prefixCls + '-treenode-switcher-' + (expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_ref, prefixCls + '-treenode-checkbox-checked', checked), _defineProperty(_ref, prefixCls + '-treenode-checkbox-indeterminate', halfChecked), _defineProperty(_ref, prefixCls + '-treenode-selected', selected), _defineProperty(_ref, prefixCls + '-treenode-loading', loading), _defineProperty(_ref, 'drag-over', !disabled && dragOver), _defineProperty(_ref, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_ref, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_ref, 'filter-node', filterTreeNode && filterTreeNode(this)), _ref),\n attrs: { role: 'treeitem'\n },\n on: {\n 'dragenter': draggable ? this.onDragEnter : noop,\n 'dragover': draggable ? this.onDragOver : noop,\n 'dragleave': draggable ? this.onDragLeave : noop,\n 'drop': draggable ? this.onDrop : noop,\n 'dragend': draggable ? this.onDragEnd : noop\n }\n },\n [this.renderSwitcher(), this.renderCheckbox(), this.renderSelector(h), this.renderChildren()]\n );\n }\n};\n\nTreeNode.isTreeNode = 1;\n\nexport default TreeNode;","// export this package's api\n// base 2.9.3\nimport Vue from 'vue';\nimport TreeSelect from './src';\nimport ref from 'vue-ref';\n\nVue.use(ref, { name: 'ant-ref' });\nexport default TreeSelect;\n\nexport { TreeNode, SHOW_ALL, SHOW_PARENT, SHOW_CHILD } from './src';","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nvar placements = {\n bottomLeft: {\n points: ['tl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport PropTypes from '../_util/vue-types';\nimport BaseMixin from '../_util/BaseMixin';\nimport { initDefaultProps, hasProp, getComponentFromProp, isValidElement, getEvents } from '../_util/props-util';\nimport { cloneElement } from '../_util/vnode';\nimport Trigger from '../vc-trigger';\nimport Panel from './Panel';\nimport placements from './placements';\n\nfunction noop() {}\n\nexport default {\n name: 'VcTimePicker',\n mixins: [BaseMixin],\n props: initDefaultProps({\n prefixCls: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.any,\n defaultOpenValue: {\n type: Object,\n 'default': function _default() {\n return moment();\n }\n },\n inputReadOnly: PropTypes.bool,\n disabled: PropTypes.bool,\n allowEmpty: PropTypes.bool,\n defaultValue: PropTypes.any,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n align: PropTypes.object,\n placement: PropTypes.any,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n popupClassName: PropTypes.string,\n popupStyle: PropTypes.object,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n // onChange: PropTypes.func,\n // onAmPmChange: PropTypes.func,\n // onOpen: PropTypes.func,\n // onClose: PropTypes.func,\n // onFocus: PropTypes.func,\n // onBlur: PropTypes.func,\n name: PropTypes.string,\n autoComplete: PropTypes.string,\n use12Hours: PropTypes.bool,\n hourStep: PropTypes.number,\n minuteStep: PropTypes.number,\n secondStep: PropTypes.number,\n focusOnOpen: PropTypes.bool,\n // onKeyDown: PropTypes.func,\n autoFocus: PropTypes.bool,\n id: PropTypes.string,\n inputIcon: PropTypes.any,\n clearIcon: PropTypes.any,\n addon: PropTypes.func\n }, {\n clearText: 'clear',\n prefixCls: 'rc-time-picker',\n defaultOpen: false,\n inputReadOnly: false,\n popupClassName: '',\n popupStyle: {},\n align: {},\n allowEmpty: true,\n showHour: true,\n showMinute: true,\n showSecond: true,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n hideDisabledOptions: false,\n placement: 'bottomLeft',\n use12Hours: false,\n focusOnOpen: false\n }),\n data: function data() {\n var defaultOpen = this.defaultOpen,\n defaultValue = this.defaultValue,\n _open = this.open,\n open = _open === undefined ? defaultOpen : _open,\n _value = this.value,\n value = _value === undefined ? defaultValue : _value;\n\n return {\n sOpen: open,\n sValue: value\n };\n },\n\n\n watch: {\n value: function value(val) {\n this.setState({\n sValue: val\n });\n },\n open: function open(val) {\n if (val !== undefined) {\n this.setState({\n sOpen: val\n });\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.autoFocus) {\n _this.focus();\n }\n });\n },\n\n methods: {\n onPanelChange: function onPanelChange(value) {\n this.setValue(value);\n },\n onAmPmChange: function onAmPmChange(ampm) {\n this.__emit('amPmChange', ampm);\n },\n onClear: function onClear(event) {\n event.stopPropagation();\n this.setValue(null);\n this.setOpen(false);\n },\n onVisibleChange: function onVisibleChange(open) {\n this.setOpen(open);\n },\n onEsc: function onEsc() {\n this.setOpen(false);\n this.focus();\n },\n onKeyDown: function onKeyDown(e) {\n if (e.keyCode === 40) {\n this.setOpen(true);\n }\n },\n onKeyDown2: function onKeyDown2(e) {\n this.__emit('keydown', e);\n },\n setValue: function setValue(value) {\n if (!hasProp(this, 'value')) {\n this.setState({\n sValue: value\n });\n }\n this.__emit('change', value);\n },\n getFormat: function getFormat() {\n var format = this.format,\n showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n use12Hours = this.use12Hours;\n\n if (format) {\n return format;\n }\n\n if (use12Hours) {\n var fmtString = [showHour ? 'h' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {\n return !!item;\n }).join(':');\n\n return fmtString.concat(' a');\n }\n\n return [showHour ? 'HH' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {\n return !!item;\n }).join(':');\n },\n getPanelElement: function getPanelElement() {\n var h = this.$createElement;\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n disabledHours = this.disabledHours,\n addon = this.addon,\n disabledMinutes = this.disabledMinutes,\n disabledSeconds = this.disabledSeconds,\n hideDisabledOptions = this.hideDisabledOptions,\n inputReadOnly = this.inputReadOnly,\n showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n defaultOpenValue = this.defaultOpenValue,\n clearText = this.clearText,\n use12Hours = this.use12Hours,\n focusOnOpen = this.focusOnOpen,\n onKeyDown2 = this.onKeyDown2,\n hourStep = this.hourStep,\n minuteStep = this.minuteStep,\n secondStep = this.secondStep,\n sValue = this.sValue;\n\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n return h(Panel, {\n attrs: {\n clearText: clearText,\n prefixCls: prefixCls + '-panel',\n\n value: sValue,\n inputReadOnly: inputReadOnly,\n\n defaultOpenValue: defaultOpenValue,\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n\n format: this.getFormat(),\n placeholder: placeholder,\n disabledHours: disabledHours,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n hideDisabledOptions: hideDisabledOptions,\n use12Hours: use12Hours,\n hourStep: hourStep,\n minuteStep: minuteStep,\n secondStep: secondStep,\n focusOnOpen: focusOnOpen,\n\n clearIcon: clearIcon,\n addon: addon\n },\n ref: 'panel', on: {\n 'change': this.onPanelChange,\n 'amPmChange': this.onAmPmChange,\n 'esc': this.onEsc,\n 'keydown': onKeyDown2\n }\n });\n },\n getPopupClassName: function getPopupClassName() {\n var showHour = this.showHour,\n showMinute = this.showMinute,\n showSecond = this.showSecond,\n use12Hours = this.use12Hours,\n prefixCls = this.prefixCls,\n popupClassName = this.popupClassName;\n\n\n var selectColumnCount = 0;\n if (showHour) {\n selectColumnCount += 1;\n }\n if (showMinute) {\n selectColumnCount += 1;\n }\n if (showSecond) {\n selectColumnCount += 1;\n }\n if (use12Hours) {\n selectColumnCount += 1;\n }\n // Keep it for old compatibility\n return classNames(popupClassName, _defineProperty({}, prefixCls + '-panel-narrow', (!showHour || !showMinute || !showSecond) && !use12Hours), prefixCls + '-panel-column-' + selectColumnCount);\n },\n setOpen: function setOpen(open) {\n if (this.sOpen !== open) {\n if (!hasProp(this, 'open')) {\n this.setState({ sOpen: open });\n }\n if (open) {\n this.__emit('open', { open: open });\n } else {\n this.__emit('close', { open: open });\n }\n }\n },\n focus: function focus() {\n this.$refs.picker.focus();\n },\n blur: function blur() {\n this.$refs.picker.blur();\n },\n onFocus: function onFocus(e) {\n this.__emit('focus', e);\n },\n onBlur: function onBlur(e) {\n this.__emit('blur', e);\n },\n renderClearButton: function renderClearButton() {\n var _this2 = this;\n\n var h = this.$createElement;\n var sValue = this.sValue;\n var _$props = this.$props,\n prefixCls = _$props.prefixCls,\n allowEmpty = _$props.allowEmpty,\n clearText = _$props.clearText,\n disabled = _$props.disabled;\n\n if (!allowEmpty || !sValue || disabled) {\n return null;\n }\n var clearIcon = getComponentFromProp(this, 'clearIcon');\n if (isValidElement(clearIcon)) {\n var _ref = getEvents(clearIcon) || {},\n _click = _ref.click;\n\n return cloneElement(clearIcon, {\n on: {\n click: function click() {\n if (_click) _click.apply(undefined, arguments);\n _this2.onClear.apply(_this2, arguments);\n }\n }\n });\n }\n\n return h(\n 'a',\n {\n attrs: {\n role: 'button',\n\n title: clearText,\n\n tabIndex: 0\n },\n 'class': prefixCls + '-clear', on: {\n 'click': this.onClear\n }\n },\n [clearIcon || h('i', { 'class': prefixCls + '-clear-icon' })]\n );\n }\n },\n\n render: function render() {\n var h = arguments[0];\n var prefixCls = this.prefixCls,\n placeholder = this.placeholder,\n placement = this.placement,\n align = this.align,\n id = this.id,\n disabled = this.disabled,\n transitionName = this.transitionName,\n getPopupContainer = this.getPopupContainer,\n name = this.name,\n autoComplete = this.autoComplete,\n autoFocus = this.autoFocus,\n sOpen = this.sOpen,\n sValue = this.sValue,\n onFocus = this.onFocus,\n onBlur = this.onBlur,\n popupStyle = this.popupStyle;\n\n var popupClassName = this.getPopupClassName();\n var inputIcon = getComponentFromProp(this, 'inputIcon');\n return h(\n Trigger,\n {\n attrs: {\n prefixCls: prefixCls + '-panel',\n popupClassName: popupClassName,\n popupStyle: popupStyle,\n popupAlign: align,\n builtinPlacements: placements,\n popupPlacement: placement,\n action: disabled ? [] : ['click'],\n destroyPopupOnHide: true,\n getPopupContainer: getPopupContainer,\n popupTransitionName: transitionName,\n popupVisible: sOpen\n },\n on: {\n 'popupVisibleChange': this.onVisibleChange\n }\n },\n [h(\n 'template',\n { slot: 'popup' },\n [this.getPanelElement()]\n ), h(\n 'span',\n { 'class': '' + prefixCls },\n [h('input', {\n 'class': prefixCls + '-input',\n ref: 'picker',\n attrs: { type: 'text',\n placeholder: placeholder,\n name: name,\n\n disabled: disabled,\n\n autoComplete: autoComplete,\n\n autoFocus: autoFocus,\n readOnly: true,\n id: id\n },\n on: {\n 'keydown': this.onKeyDown,\n 'focus': onFocus,\n 'blur': onBlur\n },\n domProps: {\n 'value': sValue && sValue.format(this.getFormat()) || ''\n }\n }), inputIcon || h('span', { 'class': prefixCls + '-icon' }), this.renderClearButton()]\n )]\n );\n }\n};"],"sourceRoot":""}