{"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","keys","arguments","length","forEach","k","getWatch","setState","$data","methods","prevState","newState","self","needSync","treeNode","$createElement","entitiesMap","keyEntities","concat","checkedKeyEntity","halfCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","onNodeDragStart","event","node","eventKey","dragNode","__emit","onNodeDragEnter","_this","pos","$refs","selectHandle","dropPosition","setTimeout","delayedDragEnterLogic","Object","key","clearTimeout","newExpandedKeys","onNodeDragOver","_$data","onNodeDragLeave","onNodeDragEnd","onNodeDrop","_$data2","_$data2$_dragNodesKey","indexOf","posArr","dropResult","dragNodesKeys","slice","Number","dropToGap","onNodeClick","e","onNodeDoubleClick","onNodeSelect","_getOptionProps","selected","targetSelected","selectedNodes","map","entity","get","filter","setUncontrolledState","eventObj","nativeEvent","onNodeCheck","checked","_$data3","oriCheckedKeys","oriHalfCheckedKeys","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","$popup","Selector","$selector","selectTriggerProps","SHOW_ALL","SHOW_PARENT","SHOW_CHILD","module","exports","Header","format","disabledDate","clearText","inputReadOnly","def","hourOptions","minuteOptions","secondOptions","disabledHours","disabledMinutes","disabledSeconds","allowEmpty","defaultOpenValue","currentSelectPanel","focusOnOpen","str","invalid","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","onlyTreeNodeWarned","warnOnlyTreeNode","arrDel","splice","arrAdd","posToArr","getPosition","getNodeChildren","isCheckDisabled","disableCheckbox","traverseTreeNodes","callback","processNode","componentOptions","childList","subNode","subIndex","mapChildren","getDragNodesKeys","calcDropPosition","clientY","_treeNode$$refs$selec","getBoundingClientRect","height","des","max","calcSelectedKeys","internalProcessProps","processor","_ref3$processProps","childrenNodes","onProcessFinished","set","parseCheckedKeys","keyProps","isCheck","checkStatus","conductUp","everyChildChecked","someChildChecked","childKey","childChecked","childHalfChecked","conductDown","conduct","checkedKeyList","halfCheckedKeyList","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","err","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_value","conductExpandParent","ICON_OPEN","ICON_CLOSE","__ANT_TREE_NODE","root","isLeaf","dataRef","dragNodeHighlight","vcTreeNode","syncLoadData","beforeDestroy","onSelectorClick","isSelectable","onCheck","onSelectorDoubleClick","isDisabled","isCheckable","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.e39eed0c.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":""}