{"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","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","this","$props","__propsSymbol__","needSyncKeys","domTreeNodes","state","_posEntities","Map","_keyEntities","_expandedKeys","_selectedKeys","_checkedKeys","_halfCheckedKeys","_loadedKeys","_loadingKeys","_treeNode","_prevProps","_dragOverNodeKey","_dropPosition","_dragNodesKeys","getDerivedState","provide","vcTree","watch","arguments","length","forEach","k","getWatch","setState","$data","methods","prevState","newState","self","needSync","treeNode","$createElement","entitiesMap","keyEntities","concat","keys","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","checkedObj","halfChecked","checkedNodes","_conductCheck","checkedNodesPositions","push","onNodeLoad","_this2","Promise","resolve","_ref","_ref$_loadedKeys","_ref$_loadingKeys","loadingKeys","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","m","proxyComponent","TreeNode","warnDeprecatedLabel","toTitle","title","createRef","current","UNSELECTABLE_STYLE","userSelect","WebkitUserSelect","UNSELECTABLE_ATTRIBUTE","flatToHierarchy","positionList","entrances","posMap","parsedList","clone","fields","split","sort","a","b","parentPos","join","parentEntity","treeCheckable","treeCheckStrictly","labelInValue","cleanEntity","_ref2","instance","getFilterTree","treeNodes","searchValue","filterFunc","valueEntities","Component","mapFilteredNodeToData","match","n","value","formatInternalValue","valueList","Array","isArray","toArray","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","parent","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","MultipleSelector","maxTagCount","maxTagPlaceholder","onPlaceholderClick","_renderPlaceholder","searchPlaceholder","currentPlaceholder","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","id","SinglePopup","searchRef","popupRef","_renderSearch","functional","isTreeNode","context","slots","scopedSlots","slotsKey","scopedSlotsTemp","treeNodeProps","nativeOn","Select","prefixAria","autoFocus","defaultOpen","defaultValue","inputValue","autoClearSearchValue","oneOf","treeDataSimpleMode","selectTriggerRef","prefix","generateAriaId","_open","_valueList","_searchHalfCheckedKeys","_missValueList","_selectorValueList","_valueEntities","_init","_focused","_treeNodes","_filteredTreeNodes","onComponentKeyDown","domNode","$el","triggerContainer","prefixClass","parentNode","findPopupContainer","searchNode","onlyScrollIfNeeded","offsetTop","offsetHeight","_prevState$_prevProps","processState","propName","updater","valueRefresh","propValue","treeDataChanged","treeDataModeChanged","prevValue","prev","simpleMapper","pId","rootPId","keyNodes","rootNodeList","nodeList","parentKey","parseSimpleTreeData","posEntities","missValueList","filteredValueList","latestValueList","valueLabels","wrapperValue","String","filterTreeNodeFn","_","SelectNode","keyCode","KeyCode","ESC","setOpenState","UP","DOWN","LEFT","RIGHT","ENTER","onDeselect","nodeEventInfo","triggerChange","isSearchValueControlled","removeValue","triggerEntity","newValueList","pos1","pos2","fields1","fields2","minLen","Math","min","i","isPosRelated","triggerNode","extraInfo","triggerValue","deselectInfo","filteredEntityList","allCheckedNodes","_ref8","newMissValueList","_ref9","isLabelInValue","onValueTrigger","isAdd","nodeExtraInfo","_ref10","selectedValue","_ref11","_ref12","_ref13","checkedNodeList","oriKeyList","_ref14","_ref15","from","Set","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","$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","window","requestAnimationFrame","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","perTick","options","selectedIndex","active","scrollToSelected","onSelect","onEsc","getOptions","item","_classnames","onClick","handleMouseEnter","handleMouseLeave","list","_cls","formatOption","option","disabledOptions","Combobox","showHour","showMinute","showSecond","use12Hours","isAM","onItemChange","itemValue","ampm","onEnterSelectPanel","range","getHourSelect","hourOptionsAdj","hourAdj","getMinuteSelect","getSecondSelect","getAMPMSelect","AMPMOptions","c","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","undefined","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","__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.b02606a8.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":""}