PromoCursed/node_modules/.cache/babel-loader/795ead428b8b2bce6d6e110a8d62a219d2f9cc6f78f35d1431d0666e34d72b18.json
2024-08-20 23:25:37 +04:00

1 line
143 KiB
JSON

{"ast":null,"code":"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 newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\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;","map":{"version":3,"names":["_extends","_typeof","_objectSpread","_toConsumableArray","_classCallCheck","_createClass","_assertThisInitialized","_inherits","_createSuper","_defineProperty","classNames","KeyCode","pickAttrs","warning","React","TreeContext","DropIndicator","NodeList","MOTION_KEY","MotionEntity","TreeNode","arrAdd","arrDel","calcDropPosition","calcSelectedKeys","conductExpandParent","getDragChildrenKeys","parseCheckedKeys","posToArr","conductCheck","getEntity","convertDataToEntities","convertNodePropsToEventData","convertTreeToData","fillFieldNames","flattenTreeData","getTreeNodeProps","warningWithoutKey","MAX_RETRY_TIMES","Tree","_React$Component","_super","_this","_len","arguments","length","_args","Array","_key","call","apply","concat","keyEntities","indent","selectedKeys","checkedKeys","halfCheckedKeys","loadedKeys","loadingKeys","expandedKeys","draggingNodeKey","dragChildrenKeys","dropTargetKey","dropPosition","dropContainerKey","dropLevelOffset","dropTargetPos","dropAllowed","dragOverNodeKey","treeData","flattenNodes","focused","activeKey","listChanging","prevProps","fieldNames","createRef","event","node","_this$state","state","onDragStart","props","eventKey","dragNode","dragStartMousePosition","x","clientX","y","clientY","newExpandedKeys","setState","listRef","current","getIndentWidth","setExpandedKeys","window","addEventListener","onWindowDragEnd","_this$state2","_this$props","onDragEnter","onExpand","allowDrop","direction","_node$props","pos","_assertThisInitialize","currentMouseOverDroppableNodeKey","resetDragState","_calcDropPosition","indexOf","delayedDragEnterLogic","Object","keys","forEach","key","clearTimeout","persist","setTimeout","entity","children","expanded","nativeEvent","_this$state3","_this$props2","onDragOver","_assertThisInitialize2","_calcDropPosition2","currentTarget","contains","relatedTarget","onDragLeave","onNodeDragEnd","removeEventListener","onDragEnd","cleanDragState","_this$getActiveItem","outsideTree","undefined","_this$state4","onDrop","abstractDropNodeProps","getTreeNodeRequiredProps","active","getActiveItem","data","dropToChild","posArr","dropResult","dragNodesKeys","dropToGap","Number","e","treeNode","_this$state5","isLeaf","shiftKey","metaKey","ctrlKey","filter","nodeItem","eventNode","onNodeExpand","_this$props3","onClick","expandAction","triggerExpandActionExpand","_this$props4","onDoubleClick","_this$state6","_this$props5","onSelect","multiple","selected","targetSelected","selectedNodes","map","selectedKey","setUncontrolledState","checked","_this$state7","oriCheckedKeys","oriHalfCheckedKeys","_this$props6","checkStrictly","onCheck","checkedObj","eventObj","halfChecked","checkedNodes","checkedKey","_conductCheck","_checkedKeys","_halfCheckedKeys","keySet","Set","delete","_conductCheck2","from","checkedNodesPositions","push","_entity$children","loadPromise","Promise","resolve","reject","_ref","_ref$loadedKeys","_ref$loadingKeys","_this$props7","loadData","onLoad","promise","then","currentLoadedKeys","newLoadedKeys","prevState","catch","loadingRetryTimes","onMouseEnter","onMouseLeave","onRightClick","preventDefault","onFocus","_len2","args","_key2","onBlur","onActiveChange","_len3","_key3","_this$state8","_this$state9","_this$state10","_this$props8","index","targetExpanded","onNodeLoad","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","_this$props9","_this$props9$itemScro","itemScrollOffset","scrollTo","offset","_this$state11","find","_ref2","_this$state12","findIndex","_ref3","item","_key4","_this$state13","_this$props10","onKeyDown","checkable","selectable","which","UP","offsetActiveKey","DOWN","activeItem","treeNodeRequiredProps","expandable","LEFT","includes","parent","RIGHT","ENTER","SPACE","disabled","disableCheckbox","onNodeCheck","onNodeSelect","atomic","forceState","destroyed","needSync","allPassed","newState","name","scroll","value","componentDidMount","onUpdated","componentDidUpdate","_this$props11","_this$props11$itemScr","componentWillUnmount","render","_this$state14","_this$props12","prefixCls","className","style","showLine","focusable","_this$props12$tabInde","tabIndex","showIcon","icon","switcherIcon","draggable","motion","filterTreeNode","height","itemHeight","virtual","titleRender","dropIndicatorRender","onContextMenu","onScroll","rootClassName","rootStyle","domProps","aria","draggableConfig","nodeDraggable","createElement","Provider","onNodeClick","onNodeDoubleClick","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDrop","role","ref","dragging","onListChangeStart","onListChangeEnd","getDerivedStateFromProps","entitiesMap","process","env","NODE_ENV","autoExpandParent","defaultExpandParent","defaultExpandAll","cloneKeyEntities","defaultExpandedKeys","defaultSelectedKeys","checkedKeyEntity","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","Component"],"sources":["C:/Users/Аришина)/Desktop/promo/node_modules/rc-tree/es/Tree.js"],"sourcesContent":["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 newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\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;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}