{"version":3,"file":"chunk-klb-pay41.js","sources":["../node_modules/rc-tree/es/utils/keyUtil.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/rc-tree/es/util.js","../node_modules/rc-tree/es/DropIndicator.js","../node_modules/rc-tree/es/useUnmount.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/Tree.js"],"sourcesContent":["export default function getEntity(keyEntities, key) {\n return keyEntities[key];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nimport getEntity from \"./keyUtil\";\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n\n // Add FlattenDataNode into list\n // We use `Object.assign` here to save perf since babel's `objectSpread` has perf issue\n var flattenNode = Object.assign(omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren])), {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var _data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(_data);\n }\n\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = getEntity(keyEntities, key);\n var treeNodeProps = {\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: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import warning from \"rc-util/es/warning\";\nimport getEntity from \"./keyUtil\";\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!getEntity(keyEntities, key);\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, _defineProperty(_defineProperty({}, \"\".concat(baseClassName, \"-start\"), isStart[i]), \"\".concat(baseClassName, \"-end\"), isEnd[i]))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext } from \"./contextTypes\";\nimport Indent from \"./Indent\";\nimport getEntity from \"./utils/keyUtil\";\nimport { convertNodePropsToEventData } from \"./utils/treeUtil\";\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dragNodeHighlight: false\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandle\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"cacheIndent\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"onSelectorClick\", function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onSelectorDoubleClick\", function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n });\n _defineProperty(_assertThisInitialized(_this), \"onSelect\", function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n });\n _defineProperty(_assertThisInitialized(_this), \"onCheck\", function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n });\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n });\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n });\n _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n });\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n });\n _defineProperty(_assertThisInitialized(_this), \"onDragOver\", function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n });\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n });\n _defineProperty(_assertThisInitialized(_this), \"onDragEnd\", function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n });\n _defineProperty(_assertThisInitialized(_this), \"onDrop\", function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n });\n // Disabled item still can be switch\n _defineProperty(_assertThisInitialized(_this), \"onExpand\", function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n });\n // Drag usage\n _defineProperty(_assertThisInitialized(_this), \"setSelectHandle\", function (node) {\n _this.selectHandle = node;\n });\n _defineProperty(_assertThisInitialized(_this), \"getNodeState\", function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n });\n _defineProperty(_assertThisInitialized(_this), \"hasChildren\", function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = getEntity(keyEntities, eventKey) || {},\n children = _ref.children;\n return !!(children || []).length;\n });\n _defineProperty(_assertThisInitialized(_this), \"isLeaf\", function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n });\n _defineProperty(_assertThisInitialized(_this), \"isDisabled\", function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n });\n _defineProperty(_assertThisInitialized(_this), \"isCheckable\", function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n });\n // Load data to avoid default expanded tree without data\n _defineProperty(_assertThisInitialized(_this), \"syncLoadData\", function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf() && !loaded) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"isDraggable\", function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n });\n // ==================== Render: Drag Handler ====================\n _defineProperty(_assertThisInitialized(_this), \"renderDragHandler\", function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return draggable !== null && draggable !== void 0 && draggable.icon ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n });\n // ====================== Render: Switcher ======================\n _defineProperty(_assertThisInitialized(_this), \"renderSwitcherIconDom\", function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n });\n // Switcher\n _defineProperty(_assertThisInitialized(_this), \"renderSwitcher\", function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n });\n // ====================== Render: Checkbox ======================\n // Checkbox\n _defineProperty(_assertThisInitialized(_this), \"renderCheckbox\", function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\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 return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n });\n // ==================== Render: Title + Icon ====================\n _defineProperty(_assertThisInitialized(_this), \"renderIcon\", function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n });\n // Icon + Title\n _defineProperty(_assertThisInitialized(_this), \"renderSelector\", function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n _this$props6$title = _this$props6.title,\n title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n });\n // =================== Render: Drop Indicator ===================\n _defineProperty(_assertThisInitialized(_this), \"renderDropIndicator\", function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n var mergedIndent = indent !== null && indent !== void 0 ? indent : _this.cacheIndent;\n _this.cacheIndent = indent;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: mergedIndent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n });\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = getEntity(keyEntities, eventKey) || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), \"\".concat(prefixCls, \"-treenode-selected\"), selected), \"\".concat(prefixCls, \"-treenode-loading\"), loading), \"\".concat(prefixCls, \"-treenode-active\"), active), \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), \"dragging\", dragging), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), 'drop-container', dropContainerKey === eventKey), 'drag-over', !disabled && dragOver), 'drag-over-gap-top', !disabled && dragOverGapTop), 'drag-over-gap-bottom', !disabled && dragOverGapBottom), 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))))),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport default ContextTreeNode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport TreeNode from \"./TreeNode\";\nimport getEntity from \"./utils/keyUtil\";\nexport { getPosition, isTreeNode } from \"./utils/treeUtil\";\nexport function arrDel(list, value) {\n if (!list) return [];\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}\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}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = getEntity(keyEntities, dragNodeKey);\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _getBoundingClientRec = event.target.getBoundingClientRect(),\n top = _getBoundingClientRec.top,\n height = _getBoundingClientRec.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n\n // Filter the expanded keys to exclude the node that not has children currently (like async nodes).\n var filteredExpandKeys = expandKeys.filter(function (key) {\n var _keyEntities$key;\n return (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 || (_keyEntities$key = _keyEntities$key.children) === null || _keyEntities$key === void 0 ? void 0 : _keyEntities$key.length;\n });\n\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = getEntity(keyEntities, targetNode.props.eventKey);\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n\n // Only allow cross level drop when dragging on a non-expanded node\n if (!filteredExpandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && filteredExpandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\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) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\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;\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) === '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 return keyProps;\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 Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = getEntity(keyEntities, key);\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\n\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart, triggerEnd) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstMount = _React$useState2[0],\n setFirstMount = _React$useState2[1];\n useLayoutEffect(function () {\n if (firstMount) {\n triggerStart();\n return function () {\n triggerEnd();\n };\n }\n }, [firstMount]);\n useLayoutEffect(function () {\n setFirstMount(true);\n return function () {\n setFirstMount(false);\n };\n }, []);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from \"./contextTypes\";\nimport TreeNode from \"./TreeNode\";\nimport useUnmount from \"./useUnmount\";\nimport { getTreeNodeProps } from \"./utils/treeUtil\";\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n var triggerMotionStart = function triggerMotionStart() {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = Object.assign({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\n\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from \"./MotionTreeNode\";\nimport { findExpandedKeys, getExpandRange } from \"./utils/diffUtil\";\nimport { getKey, getTreeNodeProps } from \"./utils/treeUtil\";\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList) {\n // The best match is using `fullList` - `originList` = `restList`\n // and check the `restList` to see if has the MOTION_KEY node\n // but this will cause performance issue for long list compare\n // we just check `originList` and repeat trigger `onMotionEnd`\n if (originList.every(function (item) {\n return itemKey(item) !== MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = Object.assign({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\n\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { TreeContext } from \"./contextTypes\";\nimport DropIndicator from \"./DropIndicator\";\nimport NodeList, { MOTION_KEY, MotionEntity } from \"./NodeList\";\nimport TreeNode from \"./TreeNode\";\nimport { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDragChildrenKeys, parseCheckedKeys, posToArr } from \"./util\";\nimport { conductCheck } from \"./utils/conductUtil\";\nimport getEntity from \"./utils/keyUtil\";\nimport { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, fillFieldNames, flattenTreeData, getTreeNodeProps, warningWithoutKey } from \"./utils/treeUtil\";\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(_args));\n _defineProperty(_assertThisInitialized(_this), \"destroyed\", false);\n _defineProperty(_assertThisInitialized(_this), \"delayedDragEnterLogic\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"loadingRetryTimes\", {});\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n // the drop position of abstract-drop-node, inside 0, top -1, bottom 1\n dropContainerKey: null,\n // the container key of abstract-drop-node if dropPosition is -1 or 1\n dropLevelOffset: null,\n // the drop level offset of abstract-drag-over-node\n dropTargetPos: null,\n // the pos of abstract-drop-node\n dropAllowed: true,\n // if drop to abstract-drop-node is allowed\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n });\n _defineProperty(_assertThisInitialized(_this), \"dragStartMousePosition\", null);\n _defineProperty(_assertThisInitialized(_this), \"dragNode\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"currentMouseOverDroppableNodeKey\", null);\n _defineProperty(_assertThisInitialized(_this), \"listRef\", /*#__PURE__*/React.createRef());\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragStart\", function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 || onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n });\n /**\n * [Legacy] Select handler is smaller 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 _defineProperty(_assertThisInitialized(_this), \"onNodeDragEnter\", function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\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 if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = getEntity(keyEntities, node.props.eventKey);\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 || onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 || onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragOver\", function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed calculated by calcDropPosition\n return;\n }\n\n // Update drag position\n\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 || onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragLeave\", function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 || onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n });\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _defineProperty(_assertThisInitialized(_this), \"onWindowDragEnd\", function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n });\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragEnd\", function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDrop\", function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: getEntity(_this.state.keyEntities, dropTargetKey).node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 || onDrop(dropResult);\n }\n _this.dragNode = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"cleanDragState\", function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"triggerExpandActionExpand\", function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeClick\", function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 || onClick(e, treeNode);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDoubleClick\", function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 || onDoubleClick(e, treeNode);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeSelect\", function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = getEntity(keyEntities, selectedKey);\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 || onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeCheck\", function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return getEntity(keyEntities, checkedKey);\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.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 _checkedKeys.forEach(function (checkedKey) {\n var entity = getEntity(keyEntities, checkedKey);\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 || onCheck(checkedObj, eventObj);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeLoad\", function (treeNode) {\n var _entity$children;\n var key = treeNode.key;\n var keyEntities = _this.state.keyEntities;\n\n // Skip if has children already\n var entity = getEntity(keyEntities, key);\n if (entity !== null && entity !== void 0 && (_entity$children = entity.children) !== null && _entity$children !== void 0 && _entity$children.length) {\n return;\n }\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 || onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeMouseEnter\", function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n event: event,\n node: node\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeMouseLeave\", function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n event: event,\n node: node\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeContextMenu\", function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 || onFocus.apply(void 0, args);\n });\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 || onBlur.apply(void 0, args);\n });\n _defineProperty(_assertThisInitialized(_this), \"getTreeNodeRequiredProps\", function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n });\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _defineProperty(_assertThisInitialized(_this), \"setExpandedKeys\", function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeExpand\", function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 || onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onListChangeStart\", function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onListChangeEnd\", function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n });\n // =========================== Keyboard ===========================\n _defineProperty(_assertThisInitialized(_this), \"onActiveChange\", function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var _this$props9 = _this.props,\n onActiveChange = _this$props9.onActiveChange,\n _this$props9$itemScro = _this$props9.itemScrollOffset,\n itemScrollOffset = _this$props9$itemScro === void 0 ? 0 : _this$props9$itemScro;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey,\n offset: itemScrollOffset\n });\n }\n onActiveChange === null || onActiveChange === void 0 || onActiveChange(newActiveKey);\n });\n _defineProperty(_assertThisInitialized(_this), \"getActiveItem\", function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n });\n _defineProperty(_assertThisInitialized(_this), \"offsetActiveKey\", function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var _key4 = item.key;\n _this.onActiveChange(_key4);\n } else {\n _this.onActiveChange(null);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props10 = _this.props,\n onKeyDown = _this$props10.onKeyDown,\n checkable = _this$props10.checkable,\n selectable = _this$props10.selectable;\n\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);\n });\n /**\n * Only update the value which is not in props\n */\n _defineProperty(_assertThisInitialized(_this), \"setUncontrolledState\", function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"scrollTo\", function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n });\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var _this$props11 = this.props,\n activeKey = _this$props11.activeKey,\n _this$props11$itemScr = _this$props11.itemScrollOffset,\n itemScrollOffset = _this$props11$itemScr === void 0 ? 0 : _this$props11$itemScr;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey,\n offset: itemScrollOffset\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props12 = this.props,\n prefixCls = _this$props12.prefixCls,\n className = _this$props12.className,\n style = _this$props12.style,\n showLine = _this$props12.showLine,\n focusable = _this$props12.focusable,\n _this$props12$tabInde = _this$props12.tabIndex,\n tabIndex = _this$props12$tabInde === void 0 ? 0 : _this$props12$tabInde,\n selectable = _this$props12.selectable,\n showIcon = _this$props12.showIcon,\n icon = _this$props12.icon,\n switcherIcon = _this$props12.switcherIcon,\n draggable = _this$props12.draggable,\n checkable = _this$props12.checkable,\n checkStrictly = _this$props12.checkStrictly,\n disabled = _this$props12.disabled,\n motion = _this$props12.motion,\n loadData = _this$props12.loadData,\n filterTreeNode = _this$props12.filterTreeNode,\n height = _this$props12.height,\n itemHeight = _this$props12.itemHeight,\n virtual = _this$props12.virtual,\n titleRender = _this$props12.titleRender,\n dropIndicatorRender = _this$props12.dropIndicatorRender,\n onContextMenu = _this$props12.onContextMenu,\n onScroll = _this$props12.onScroll,\n direction = _this$props12.direction,\n rootClassName = _this$props12.rootClassName,\n rootStyle = _this$props12.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-show-line\"), showLine), \"\".concat(prefixCls, \"-focused\"), focused), \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n\n // ================== Tree Node ==================\n var treeData;\n\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\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 var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n\n // Only take the key who has the children to enhance the performance\n var nextExpandedKeys = [];\n Object.keys(cloneKeyEntities).forEach(function (key) {\n var entity = cloneKeyEntities[key];\n if (entity.children && entity.children.length) {\n nextExpandedKeys.push(entity.key);\n }\n });\n newState.expandedKeys = nextExpandedKeys;\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\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;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\n_defineProperty(Tree, \"defaultProps\", {\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 dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n});\n_defineProperty(Tree, \"TreeNode\", TreeNode);\nexport default Tree;"],"names":["getEntity","keyEntities","key","_excluded","getPosition","level","index","isTreeNode","node","getKey","pos","fillFieldNames","fieldNames","_ref","title","_title","children","mergedTitle","convertTreeToData","rootNodes","dig","treeNodes","toArray","treeNode","warning","_treeNode$props","rest","_objectWithoutProperties","dataNode","_objectSpread","parsedChildren","flattenTreeData","treeNodeList","expandedKeys","_fillFieldNames","fieldTitles","fieldKey","fieldChildren","expandedKeySet","flattenList","list","parent","mergedKey","i","fieldTitle","flattenNode","omit","_toConsumableArray","traverseDataNodes","dataNodes","callback","config","mergedConfig","_typeof","_mergedConfig","childrenPropName","externalGetKey","_fillFieldNames2","mergeChildrenPropName","syntheticGetKey","processNode","pathNodes","connectNodes","_data","subNode","subIndex","convertDataToEntities","_ref2","initWrapper","processEntity","onProcessFinished","legacyExternalGetKey","mergedExternalGetKey","posEntities","wrapper","item","parentPos","nodes","entity","getTreeNodeProps","_ref3","selectedKeys","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","dropPosition","treeNodeProps","convertNodePropsToEventData","props","data","expanded","selected","checked","loaded","loading","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","active","eventKey","eventData","removeFromCheckedKeys","filteredKeys","isCheckDisabled","disabled","disableCheckbox","checkable","fillConductCheck","keys","levelEntities","maxLevel","syntheticGetCheckDisabled","entities","_entity$children","childEntity","visitedKeys","_level","_entities","allChecked","partialChecked","cleanConductCheck","halfKeys","_entity$children2","_level2","_entities2","conductCheck","keyList","getCheckDisabled","warningMissKeys","hasEntity","levelSet","result","TreeContext","React.createContext","Indent","prefixCls","isStart","isEnd","baseClassName","React.createElement","classNames","_defineProperty","Indent$1","React.memo","ICON_OPEN","ICON_CLOSE","defaultTitle","InternalTreeNode","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","_key","_assertThisInitialized","e","onNodeClick","onNodeDoubleClick","onNodeSelect","_this$props","onNodeCheck","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","_this$props2","onNodeExpand","_this$props3","isLeaf","loadData","hasChildren","treeDisabled","treeCheckable","_this$props$context","onNodeLoad","_this$props4","draggable","_this$props$context2","switcherIconFromProps","switcherIconFromCtx","switcherIcon","_switcherIconDom","switcherCls","switcherIconDom","_this$props5","$custom","dragNodeHighlight","_this$props6","_this$props6$title","icon","_this$props$context3","showIcon","treeIcon","titleRender","wrapClass","$icon","currentIcon","titleNode","$title","_this$props7","_this$props$context4","dropLevelOffset","indent","dropIndicatorRender","direction","rootDraggable","showIndicator","mergedIndent","_createClass","selectable","treeSelectable","_classNames","_this$props8","className","style","domRef","onMouseMove","otherProps","_this$props$context5","filterTreeNode","dropContainerKey","dropTargetKey","draggingNodeKey","dataOrAriaAttributeProps","pickAttrs","isEndNode","mergedDraggable","draggableWithoutDisabled","dragging","ariaSelected","_extends","React.Component","ContextTreeNode","context","arrDel","value","clone","arrAdd","posToArr","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","posArr","isFirstChild","calcDropPosition","event","dragNode","targetNode","startMousePosition","allowDrop","flattenedNodes","expandKeys","_abstractDropNodeEnti","clientX","clientY","_getBoundingClientRec","top","height","horizontalMouseOffset","rawDropLevelOffset","filteredExpandKeys","_keyEntities$key","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeIndex","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","abstractDragDataNode","abstractDropDataNode","dropAllowed","calcSelectedKeys","multiple","parseCheckedKeys","keyProps","conductExpandParent","conductUp","DropIndicator","useUnmount","triggerStart","triggerEnd","_React$useState","React.useState","_React$useState2","_slicedToArray","firstMount","setFirstMount","useLayoutEffect","MotionTreeNode","ref","motion","motionNodes","motionType","onOriginMotionStart","onOriginMotionEnd","treeNodeRequiredProps","visible","setVisible","_React$useContext","React.useContext","targetVisible","triggerMotionStart","triggerMotionEndRef","React.useRef","triggerMotionEnd","onVisibleChanged","nextVisible","CSSMotion","motionRef","motionClassName","motionStyle","restProps","_objectDestructuringEmpty","TreeNode","RefMotionTreeNode","React.forwardRef","findExpandedKeys","prev","next","prevLen","nextLen","find","shorter","longer","cache","getExpandRange","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","noop","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","virtual","itemHeight","itemKey","getAccessibilityPath","path","current","NodeList","focusable","activeItem","focused","tabIndex","onKeyDown","onFocus","onBlur","onActiveChange","onListChangeStart","onListChangeEnd","domProps","listRef","indentMeasurerRef","React.useImperativeHandle","scroll","prevExpandedKeys","setPrevExpandedKeys","_React$useState3","_React$useState4","prevData","setPrevData","_React$useState5","_React$useState6","transitionData","setTransitionData","_React$useState7","_React$useState8","transitionRange","setTransitionRange","_React$useState9","_React$useState10","setMotionType","dataRef","onMotionEnd","latestData","diffExpanded","keyIndex","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","React.useEffect","mergedData","React.Fragment","VirtualList","originList","MAX_RETRY_TIMES","Tree","_args","React.createRef","_this$state","onDragStart","newExpandedKeys","_this$state2","flattenNodes","onDragEnter","onExpand","_node$props","_assertThisInitialize","_calcDropPosition","dropTargetPos","_this$state3","onDragOver","_assertThisInitialize2","_calcDropPosition2","onDragLeave","onDragEnd","_this$getActiveItem","outsideTree","_this$state4","onDrop","abstractDropNodeProps","dropToChild","dropResult","_this$state5","nodeItem","eventNode","onClick","expandAction","onDoubleClick","_this$state6","onSelect","targetSelected","selectedNodes","selectedKey","_this$state7","oriCheckedKeys","oriHalfCheckedKeys","checkStrictly","onCheck","checkedObj","eventObj","checkedKey","_conductCheck","_checkedKeys","_halfCheckedKeys","keySet","_conductCheck2","loadPromise","resolve","reject","_ref$loadedKeys","_ref$loadingKeys","onLoad","promise","currentLoadedKeys","newLoadedKeys","prevState","onMouseEnter","onMouseLeave","onRightClick","_len2","_key2","_len3","_key3","_this$state8","_this$state9","treeData","_this$state10","listChanging","targetExpanded","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","activeKey","_this$props9","_this$props9$itemScro","itemScrollOffset","_this$state11","offset","_this$state12","_key4","_this$state13","_this$props10","KeyCode","expandable","state","atomic","forceState","needSync","allPassed","newState","name","_this$props11","_this$props11$itemScr","_this$state14","_this$props12","showLine","_this$props12$tabInde","onContextMenu","onScroll","rootClassName","rootStyle","draggableConfig","prevProps","entitiesMap","cloneKeyEntities","nextExpandedKeys","checkedKeyEntity","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}