Socket
Socket
Sign inDemoInstall

rc-tree

Package Overview
Dependencies
5
Maintainers
11
Versions
305
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 5.7.0 to 5.7.1

8

es/contextTypes.d.ts

@@ -8,12 +8,12 @@ /**

import { DraggableConfig } from './Tree';
export declare type NodeMouseEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = {
export type NodeMouseEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = {
event: React.MouseEvent<T>;
node: EventDataNode<TreeDataType>;
};
export declare type NodeDragEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = {
export type NodeDragEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = {
event: React.DragEvent<T>;
node: EventDataNode<TreeDataType>;
};
export declare type NodeMouseEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = (e: React.MouseEvent<T>, node: EventDataNode<TreeDataType>) => void;
export declare type NodeDragEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = (e: React.DragEvent<T>, node: NodeInstance<TreeDataType>, outsideTree?: boolean) => void;
export type NodeMouseEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = (e: React.MouseEvent<T>, node: EventDataNode<TreeDataType>) => void;
export type NodeDragEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = (e: React.DragEvent<T>, node: NodeInstance<TreeDataType>, outsideTree?: boolean) => void;
export interface TreeContextProps<TreeDataType extends BasicDataNode = DataNode> {

@@ -20,0 +20,0 @@ prefixCls: string;

import * as React from 'react';
export default function DropIndicator(_ref) {
var dropPosition = _ref.dropPosition,
dropLevelOffset = _ref.dropLevelOffset,
indent = _ref.indent;
dropLevelOffset = _ref.dropLevelOffset,
indent = _ref.indent;
var style = {

@@ -13,3 +13,2 @@ pointerEvents: 'none',

};
switch (dropPosition) {

@@ -20,3 +19,2 @@ case -1:

break;
case 1:

@@ -26,3 +24,2 @@ style.bottom = 0;

break;
case 0:

@@ -33,3 +30,2 @@ style.bottom = 0;

}
return /*#__PURE__*/React.createElement("div", {

@@ -36,0 +32,0 @@ style: style

import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import * as React from 'react';
import classNames from 'classnames';
var Indent = function Indent(_ref) {
var prefixCls = _ref.prefixCls,
level = _ref.level,
isStart = _ref.isStart,
isEnd = _ref.isEnd;
level = _ref.level,
isStart = _ref.isStart,
isEnd = _ref.isEnd;
var baseClassName = "".concat(prefixCls, "-indent-unit");
var list = [];
for (var i = 0; i < level; i += 1) {
var _classNames;
list.push( /*#__PURE__*/React.createElement("span", {

@@ -21,3 +18,2 @@ key: i,

}
return /*#__PURE__*/React.createElement("span", {

@@ -28,3 +24,2 @@ "aria-hidden": "true",

};
export default /*#__PURE__*/React.memo(Indent);

@@ -18,8 +18,8 @@ import * as React from 'react';

/** Provide a wrap type define for developer to wrap with customize fieldNames data type */
export declare type FieldDataNode<T, ChildFieldName extends string = 'children'> = BasicDataNode & T & Partial<Record<ChildFieldName, FieldDataNode<T, ChildFieldName>[]>>;
export declare type DataNode = FieldDataNode<{
export type FieldDataNode<T, ChildFieldName extends string = 'children'> = BasicDataNode & T & Partial<Record<ChildFieldName, FieldDataNode<T, ChildFieldName>[]>>;
export type DataNode = FieldDataNode<{
key: string | number;
title?: React.ReactNode | ((data: DataNode) => React.ReactNode);
}>;
export declare type EventDataNode<TreeDataType> = {
export type EventDataNode<TreeDataType> = {
key: React.Key;

@@ -38,5 +38,5 @@ expanded: boolean;

} & TreeDataType & BasicDataNode;
export declare type IconType = React.ReactNode | ((props: TreeNodeProps) => React.ReactNode);
export declare type Key = string | number;
export declare type NodeElement = React.ReactElement<TreeNodeProps> & {
export type IconType = React.ReactNode | ((props: TreeNodeProps) => React.ReactNode);
export type Key = string | number;
export type NodeElement = React.ReactElement<TreeNodeProps> & {
selectHandle?: HTMLSpanElement;

@@ -47,3 +47,3 @@ type: {

};
export declare type NodeInstance<TreeDataType extends BasicDataNode = DataNode> = React.Component<TreeNodeProps<TreeDataType>> & {
export type NodeInstance<TreeDataType extends BasicDataNode = DataNode> = React.Component<TreeNodeProps<TreeDataType>> & {
selectHandle?: HTMLSpanElement;

@@ -76,5 +76,5 @@ };

}
export declare type GetKey<RecordType> = (record: RecordType, index?: number) => Key;
export declare type GetCheckDisabled<RecordType> = (record: RecordType) => boolean;
export declare type Direction = 'ltr' | 'rtl' | undefined;
export type GetKey<RecordType> = (record: RecordType, index?: number) => Key;
export type GetCheckDisabled<RecordType> = (record: RecordType) => boolean;
export type Direction = 'ltr' | 'rtl' | undefined;
export interface FieldNames {

@@ -81,0 +81,0 @@ title?: string;

@@ -0,1 +1,2 @@

import _objectDestructuringEmpty from "@babel/runtime/helpers/esm/objectDestructuringEmpty";
import _extends from "@babel/runtime/helpers/esm/extends";

@@ -12,25 +13,20 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";

import { TreeContext } from './contextTypes';
var MotionTreeNode = function MotionTreeNode(_ref, ref) {
var className = _ref.className,
style = _ref.style,
motion = _ref.motion,
motionNodes = _ref.motionNodes,
motionType = _ref.motionType,
onOriginMotionStart = _ref.onMotionStart,
onOriginMotionEnd = _ref.onMotionEnd,
active = _ref.active,
treeNodeRequiredProps = _ref.treeNodeRequiredProps,
props = _objectWithoutProperties(_ref, _excluded);
style = _ref.style,
motion = _ref.motion,
motionNodes = _ref.motionNodes,
motionType = _ref.motionType,
onOriginMotionStart = _ref.onMotionStart,
onOriginMotionEnd = _ref.onMotionEnd,
active = _ref.active,
treeNodeRequiredProps = _ref.treeNodeRequiredProps,
props = _objectWithoutProperties(_ref, _excluded);
var _React$useState = React.useState(true),
_React$useState2 = _slicedToArray(_React$useState, 2),
visible = _React$useState2[0],
setVisible = _React$useState2[1];
_React$useState2 = _slicedToArray(_React$useState, 2),
visible = _React$useState2[0],
setVisible = _React$useState2[1];
var _React$useContext = React.useContext(TreeContext),
prefixCls = _React$useContext.prefixCls;
prefixCls = _React$useContext.prefixCls;
var motionedRef = React.useRef(false);
var onMotionEnd = function onMotionEnd() {

@@ -40,6 +36,4 @@ if (!motionedRef.current) {

}
motionedRef.current = true;
};
useEffect(function () {

@@ -55,3 +49,2 @@ if (motionNodes && motionType === 'hide' && visible) {

}
return function () {

@@ -63,3 +56,2 @@ if (motionNodes) {

}, []);
if (motionNodes) {

@@ -75,3 +67,3 @@ return /*#__PURE__*/React.createElement(CSSMotion, _extends({

var motionClassName = _ref2.className,
motionStyle = _ref2.style;
motionStyle = _ref2.style;
return /*#__PURE__*/React.createElement("div", {

@@ -82,8 +74,7 @@ ref: motionRef,

}, motionNodes.map(function (treeNode) {
var restProps = _extends({}, treeNode.data),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
delete restProps.children;

@@ -102,3 +93,2 @@ var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);

}
return /*#__PURE__*/React.createElement(TreeNode, _extends({

@@ -112,5 +102,4 @@ domRef: ref,

};
MotionTreeNode.displayName = 'MotionTreeNode';
var RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);
export default RefMotionTreeNode;

@@ -5,3 +5,3 @@ /**

import * as React from 'react';
import { FlattenNode, Key, DataEntity, DataNode, ScrollTo } from './interface';
import { BasicDataNode, FlattenNode, Key, DataEntity, DataNode, ScrollTo } from './interface';
export declare const MOTION_KEY: string;

@@ -13,3 +13,3 @@ export declare const MotionEntity: DataEntity;

}
interface NodeListProps<TreeDataType> {
interface NodeListProps<TreeDataType extends BasicDataNode> {
prefixCls: string;

@@ -16,0 +16,0 @@ style: React.CSSProperties;

@@ -0,1 +1,2 @@

import _objectDestructuringEmpty from "@babel/runtime/helpers/esm/objectDestructuringEmpty";
import _extends from "@babel/runtime/helpers/esm/extends";

@@ -5,3 +6,2 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";

var _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"];
/**

@@ -25,5 +25,3 @@ * Handle virtual list of the TreeNodes.

};
var noop = function noop() {};
export var MOTION_KEY = "RC_TREE_MOTION_".concat(Math.random());

@@ -48,3 +46,2 @@ var MotionNode = {

key: MOTION_KEY,
/** Hold empty list here since we do not use it */

@@ -57,3 +54,2 @@ isStart: [],

*/
export function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {

@@ -63,16 +59,12 @@ if (virtual === false || !height) {

}
return list.slice(0, Math.ceil(height / itemHeight) + 1);
}
function itemKey(item) {
var key = item.key,
pos = item.pos;
pos = item.pos;
return getKey(key, pos);
}
function getAccessibilityPath(item) {
var path = String(item.data.key);
var current = item;
while (current.parent) {

@@ -82,39 +74,36 @@ current = current.parent;

}
return path;
}
var NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {
var prefixCls = props.prefixCls,
data = props.data,
selectable = props.selectable,
checkable = props.checkable,
expandedKeys = props.expandedKeys,
selectedKeys = props.selectedKeys,
checkedKeys = props.checkedKeys,
loadedKeys = props.loadedKeys,
loadingKeys = props.loadingKeys,
halfCheckedKeys = props.halfCheckedKeys,
keyEntities = props.keyEntities,
disabled = props.disabled,
dragging = props.dragging,
dragOverNodeKey = props.dragOverNodeKey,
dropPosition = props.dropPosition,
motion = props.motion,
height = props.height,
itemHeight = props.itemHeight,
virtual = props.virtual,
focusable = props.focusable,
activeItem = props.activeItem,
focused = props.focused,
tabIndex = props.tabIndex,
onKeyDown = props.onKeyDown,
onFocus = props.onFocus,
onBlur = props.onBlur,
onActiveChange = props.onActiveChange,
onListChangeStart = props.onListChangeStart,
onListChangeEnd = props.onListChangeEnd,
domProps = _objectWithoutProperties(props, _excluded); // =============================== Ref ================================
data = props.data,
selectable = props.selectable,
checkable = props.checkable,
expandedKeys = props.expandedKeys,
selectedKeys = props.selectedKeys,
checkedKeys = props.checkedKeys,
loadedKeys = props.loadedKeys,
loadingKeys = props.loadingKeys,
halfCheckedKeys = props.halfCheckedKeys,
keyEntities = props.keyEntities,
disabled = props.disabled,
dragging = props.dragging,
dragOverNodeKey = props.dragOverNodeKey,
dropPosition = props.dropPosition,
motion = props.motion,
height = props.height,
itemHeight = props.itemHeight,
virtual = props.virtual,
focusable = props.focusable,
activeItem = props.activeItem,
focused = props.focused,
tabIndex = props.tabIndex,
onKeyDown = props.onKeyDown,
onFocus = props.onFocus,
onBlur = props.onBlur,
onActiveChange = props.onActiveChange,
onListChangeStart = props.onListChangeStart,
onListChangeEnd = props.onListChangeEnd,
domProps = _objectWithoutProperties(props, _excluded);
// =============================== Ref ================================
var listRef = React.useRef(null);

@@ -131,33 +120,27 @@ var indentMeasurerRef = React.useRef(null);

};
}); // ============================== Motion ==============================
});
// ============================== Motion ==============================
var _React$useState = React.useState(expandedKeys),
_React$useState2 = _slicedToArray(_React$useState, 2),
prevExpandedKeys = _React$useState2[0],
setPrevExpandedKeys = _React$useState2[1];
_React$useState2 = _slicedToArray(_React$useState, 2),
prevExpandedKeys = _React$useState2[0],
setPrevExpandedKeys = _React$useState2[1];
var _React$useState3 = React.useState(data),
_React$useState4 = _slicedToArray(_React$useState3, 2),
prevData = _React$useState4[0],
setPrevData = _React$useState4[1];
_React$useState4 = _slicedToArray(_React$useState3, 2),
prevData = _React$useState4[0],
setPrevData = _React$useState4[1];
var _React$useState5 = React.useState(data),
_React$useState6 = _slicedToArray(_React$useState5, 2),
transitionData = _React$useState6[0],
setTransitionData = _React$useState6[1];
_React$useState6 = _slicedToArray(_React$useState5, 2),
transitionData = _React$useState6[0],
setTransitionData = _React$useState6[1];
var _React$useState7 = React.useState([]),
_React$useState8 = _slicedToArray(_React$useState7, 2),
transitionRange = _React$useState8[0],
setTransitionRange = _React$useState8[1];
_React$useState8 = _slicedToArray(_React$useState7, 2),
transitionRange = _React$useState8[0],
setTransitionRange = _React$useState8[1];
var _React$useState9 = React.useState(null),
_React$useState10 = _slicedToArray(_React$useState9, 2),
motionType = _React$useState10[0],
setMotionType = _React$useState10[1]; // When motion end but data change, this will makes data back to previous one
_React$useState10 = _slicedToArray(_React$useState9, 2),
motionType = _React$useState10[0],
setMotionType = _React$useState10[1];
// When motion end but data change, this will makes data back to previous one
var dataRef = React.useRef(data);
dataRef.current = data;
function onMotionEnd() {

@@ -170,9 +153,7 @@ var latestData = dataRef.current;

onListChangeEnd();
} // Do animation if expanded keys changed
}
// Do animation if expanded keys changed
React.useEffect(function () {
setPrevExpandedKeys(expandedKeys);
var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);
if (diffExpanded.key !== null) {

@@ -195,9 +176,5 @@ if (diffExpanded.add) {

});
var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);
var _newTransitionData = data.slice();
_newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);
setTransitionData(_newTransitionData);

@@ -212,4 +189,4 @@ setTransitionRange(_rangeNodes);

}
}, [expandedKeys, data]); // We should clean up motion if is changed by dragging
}, [expandedKeys, data]);
// We should clean up motion if is changed by dragging
React.useEffect(function () {

@@ -273,4 +250,4 @@ if (!dragging) {

return !originSet.has(item);
}); // Motion node is not render. Skip motion
});
// Motion node is not render. Skip motion
if (restList.some(function (item) {

@@ -284,8 +261,7 @@ return itemKey(item) === MOTION_KEY;

var pos = treeNode.pos,
restProps = _extends({}, treeNode.data),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
var mergedKey = getKey(key, pos);

@@ -292,0 +268,0 @@ delete restProps.key;

@@ -23,9 +23,9 @@ import * as React from 'react';

}
export declare type AllowDrop<TreeDataType extends BasicDataNode = DataNode> = (options: AllowDropOptions<TreeDataType>) => boolean;
export declare type DraggableFn = (node: DataNode) => boolean;
export declare type DraggableConfig = {
export type AllowDrop<TreeDataType extends BasicDataNode = DataNode> = (options: AllowDropOptions<TreeDataType>) => boolean;
export type DraggableFn = (node: DataNode) => boolean;
export type DraggableConfig = {
icon?: React.ReactNode | false;
nodeDraggable?: DraggableFn;
};
export declare type ExpandAction = false | 'click' | 'doubleClick';
export type ExpandAction = false | 'click' | 'doubleClick';
export interface TreeProps<TreeDataType extends BasicDataNode = DataNode> {

@@ -36,3 +36,3 @@ prefixCls: string;

focusable?: boolean;
activeKey?: Key;
activeKey?: Key | null;
tabIndex?: number;

@@ -157,3 +157,3 @@ children?: React.ReactNode;

focused: boolean;
activeKey: Key;
activeKey: Key | null;
listChanging: boolean;

@@ -241,3 +241,3 @@ prevProps: TreeProps;

onListChangeEnd: () => void;
onActiveChange: (newActiveKey: Key) => void;
onActiveChange: (newActiveKey: Key | null) => void;
getActiveItem: () => FlattenNode<TreeDataType>;

@@ -244,0 +244,0 @@ offsetActiveKey: (offset: number) => void;

@@ -26,17 +26,11 @@ import _extends from "@babel/runtime/helpers/esm/extends";

var MAX_RETRY_TIMES = 10;
var Tree = /*#__PURE__*/function (_React$Component) {
_inherits(Tree, _React$Component);
var _super = _createSuper(Tree);
function Tree() {
var _this;
_classCallCheck(this, Tree);
for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
_args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(_args));

@@ -82,7 +76,6 @@ _this.destroyed = false;

_this.listRef = /*#__PURE__*/React.createRef();
_this.onNodeDragStart = function (event, node) {
var _this$state = _this.state,
expandedKeys = _this$state.expandedKeys,
keyEntities = _this$state.keyEntities;
expandedKeys = _this$state.expandedKeys,
keyEntities = _this$state.keyEntities;
var onDragStart = _this.props.onDragStart;

@@ -96,3 +89,2 @@ var eventKey = node.props.eventKey;

var newExpandedKeys = arrDel(expandedKeys, eventKey);
_this.setState({

@@ -103,5 +95,3 @@ draggingNodeKey: eventKey,

});
_this.setExpandedKeys(newExpandedKeys);
window.addEventListener('dragend', _this.onWindowDragEnd);

@@ -113,59 +103,50 @@ onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({

};
_this.onNodeDragEnter = function (event, node) {
var _this$state2 = _this.state,
expandedKeys = _this$state2.expandedKeys,
keyEntities = _this$state2.keyEntities,
dragChildrenKeys = _this$state2.dragChildrenKeys,
flattenNodes = _this$state2.flattenNodes,
indent = _this$state2.indent;
expandedKeys = _this$state2.expandedKeys,
keyEntities = _this$state2.keyEntities,
dragChildrenKeys = _this$state2.dragChildrenKeys,
flattenNodes = _this$state2.flattenNodes,
indent = _this$state2.indent;
var _this$props = _this.props,
onDragEnter = _this$props.onDragEnter,
onExpand = _this$props.onExpand,
allowDrop = _this$props.allowDrop,
direction = _this$props.direction;
onDragEnter = _this$props.onDragEnter,
onExpand = _this$props.onExpand,
allowDrop = _this$props.allowDrop,
direction = _this$props.direction;
var _node$props = node.props,
pos = _node$props.pos,
eventKey = _node$props.eventKey;
pos = _node$props.pos,
eventKey = _node$props.eventKey;
var _assertThisInitialize = _assertThisInitialized(_this),
dragNode = _assertThisInitialize.dragNode; // record the key of node which is latest entered, used in dragleave event.
dragNode = _assertThisInitialize.dragNode;
// record the key of node which is latest entered, used in dragleave event.
if (_this.currentMouseOverDroppableNodeKey !== eventKey) {
_this.currentMouseOverDroppableNodeKey = eventKey;
}
if (!dragNode) {
_this.resetDragState();
return;
}
var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),
dropPosition = _calcDropPosition.dropPosition,
dropLevelOffset = _calcDropPosition.dropLevelOffset,
dropTargetKey = _calcDropPosition.dropTargetKey,
dropContainerKey = _calcDropPosition.dropContainerKey,
dropTargetPos = _calcDropPosition.dropTargetPos,
dropAllowed = _calcDropPosition.dropAllowed,
dragOverNodeKey = _calcDropPosition.dragOverNodeKey;
if ( // don't allow drop inside its children
dragChildrenKeys.indexOf(dropTargetKey) !== -1 || // don't allow drop when drop is not allowed caculated by calcDropPosition
dropPosition = _calcDropPosition.dropPosition,
dropLevelOffset = _calcDropPosition.dropLevelOffset,
dropTargetKey = _calcDropPosition.dropTargetKey,
dropContainerKey = _calcDropPosition.dropContainerKey,
dropTargetPos = _calcDropPosition.dropTargetPos,
dropAllowed = _calcDropPosition.dropAllowed,
dragOverNodeKey = _calcDropPosition.dragOverNodeKey;
if (
// don't allow drop inside its children
dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||
// don't allow drop when drop is not allowed caculated by calcDropPosition
!dropAllowed) {
_this.resetDragState();
return;
} // Side effect for delay drag
}
// Side effect for delay drag
if (!_this.delayedDragEnterLogic) {
_this.delayedDragEnterLogic = {};
}
Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {
clearTimeout(_this.delayedDragEnterLogic[key]);
});
if (dragNode.props.eventKey !== node.props.eventKey) {

@@ -179,15 +160,10 @@ // hoist expand logic here

if (_this.state.draggingNodeKey === null) return;
var newExpandedKeys = _toConsumableArray(expandedKeys);
var entity = keyEntities[node.props.eventKey];
if (entity && (entity.children || []).length) {
newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);
}
if (!('expandedKeys' in _this.props)) {
_this.setExpandedKeys(newExpandedKeys);
}
onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {

@@ -199,12 +175,9 @@ node: convertNodePropsToEventData(node.props),

}, 800);
} // Skip if drag node is self
}
// Skip if drag node is self
if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {
_this.resetDragState();
return;
} // Update drag over node and drag state
}
// Update drag over node and drag state
_this.setState({

@@ -219,3 +192,2 @@ dragOverNodeKey: dragOverNodeKey,

});
onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({

@@ -227,31 +199,26 @@ event: event,

};
_this.onNodeDragOver = function (event, node) {
var _this$state3 = _this.state,
dragChildrenKeys = _this$state3.dragChildrenKeys,
flattenNodes = _this$state3.flattenNodes,
keyEntities = _this$state3.keyEntities,
expandedKeys = _this$state3.expandedKeys,
indent = _this$state3.indent;
dragChildrenKeys = _this$state3.dragChildrenKeys,
flattenNodes = _this$state3.flattenNodes,
keyEntities = _this$state3.keyEntities,
expandedKeys = _this$state3.expandedKeys,
indent = _this$state3.indent;
var _this$props2 = _this.props,
onDragOver = _this$props2.onDragOver,
allowDrop = _this$props2.allowDrop,
direction = _this$props2.direction;
onDragOver = _this$props2.onDragOver,
allowDrop = _this$props2.allowDrop,
direction = _this$props2.direction;
var _assertThisInitialize2 = _assertThisInitialized(_this),
dragNode = _assertThisInitialize2.dragNode;
dragNode = _assertThisInitialize2.dragNode;
if (!dragNode) {
return;
}
var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),
dropPosition = _calcDropPosition2.dropPosition,
dropLevelOffset = _calcDropPosition2.dropLevelOffset,
dropTargetKey = _calcDropPosition2.dropTargetKey,
dropContainerKey = _calcDropPosition2.dropContainerKey,
dropAllowed = _calcDropPosition2.dropAllowed,
dropTargetPos = _calcDropPosition2.dropTargetPos,
dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;
dropPosition = _calcDropPosition2.dropPosition,
dropLevelOffset = _calcDropPosition2.dropLevelOffset,
dropTargetKey = _calcDropPosition2.dropTargetKey,
dropContainerKey = _calcDropPosition2.dropContainerKey,
dropAllowed = _calcDropPosition2.dropAllowed,
dropTargetPos = _calcDropPosition2.dropTargetPos,
dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;
if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {

@@ -261,5 +228,4 @@ // don't allow drop inside its children

return;
} // Update drag position
}
// Update drag position
if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {

@@ -280,3 +246,2 @@ 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)) {

}
onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({

@@ -287,3 +252,2 @@ event: event,

};
_this.onNodeDragLeave = function (event, node) {

@@ -294,6 +258,4 @@ // if it is outside the droppable area

_this.resetDragState();
_this.currentMouseOverDroppableNodeKey = null;
}
var onDragLeave = _this.props.onDragLeave;

@@ -305,18 +267,12 @@ onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({

};
_this.onWindowDragEnd = function (event) {
_this.onNodeDragEnd(event, null, true);
window.removeEventListener('dragend', _this.onWindowDragEnd);
};
_this.onNodeDragEnd = function (event, node) {
var onDragEnd = _this.props.onDragEnd;
_this.setState({
dragOverNodeKey: null
});
_this.cleanDragState();
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({

@@ -329,24 +285,18 @@ event: event,

};
_this.onNodeDrop = function (event, node) {
var _this$getActiveItem;
var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var _this$state4 = _this.state,
dragChildrenKeys = _this$state4.dragChildrenKeys,
dropPosition = _this$state4.dropPosition,
dropTargetKey = _this$state4.dropTargetKey,
dropTargetPos = _this$state4.dropTargetPos,
dropAllowed = _this$state4.dropAllowed;
dragChildrenKeys = _this$state4.dragChildrenKeys,
dropPosition = _this$state4.dropPosition,
dropTargetKey = _this$state4.dropTargetKey,
dropTargetPos = _this$state4.dropTargetPos,
dropAllowed = _this$state4.dropAllowed;
if (!dropAllowed) return;
var onDrop = _this.props.onDrop;
_this.setState({
dragOverNodeKey: null
});
_this.cleanDragState();
if (dropTargetKey === null) return;
var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {

@@ -356,3 +306,2 @@ active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,

});
var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;

@@ -369,13 +318,9 @@ warning(!dropToChild, "Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.");

};
if (!outsideTree) {
onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);
}
_this.dragNode = null;
};
_this.cleanDragState = function () {
var draggingNodeKey = _this.state.draggingNodeKey;
if (draggingNodeKey !== null) {

@@ -392,19 +337,15 @@ _this.setState({

}
_this.dragStartMousePosition = null;
_this.currentMouseOverDroppableNodeKey = null;
};
_this.triggerExpandActionExpand = function (e, treeNode) {
var _this$state5 = _this.state,
expandedKeys = _this$state5.expandedKeys,
flattenNodes = _this$state5.flattenNodes;
expandedKeys = _this$state5.expandedKeys,
flattenNodes = _this$state5.flattenNodes;
var expanded = treeNode.expanded,
key = treeNode.key,
isLeaf = treeNode.isLeaf;
key = treeNode.key,
isLeaf = treeNode.isLeaf;
if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {
return;
}
var node = flattenNodes.filter(function (nodeItem) {

@@ -416,44 +357,35 @@ return nodeItem.key === key;

}));
_this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));
_this.onNodeExpand(e, eventNode);
};
_this.onNodeClick = function (e, treeNode) {
var _this$props3 = _this.props,
onClick = _this$props3.onClick,
expandAction = _this$props3.expandAction;
onClick = _this$props3.onClick,
expandAction = _this$props3.expandAction;
if (expandAction === 'click') {
_this.triggerExpandActionExpand(e, treeNode);
}
onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);
};
_this.onNodeDoubleClick = function (e, treeNode) {
var _this$props4 = _this.props,
onDoubleClick = _this$props4.onDoubleClick,
expandAction = _this$props4.expandAction;
onDoubleClick = _this$props4.onDoubleClick,
expandAction = _this$props4.expandAction;
if (expandAction === 'doubleClick') {
_this.triggerExpandActionExpand(e, treeNode);
}
onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);
};
_this.onNodeSelect = function (e, treeNode) {
var selectedKeys = _this.state.selectedKeys;
var _this$state6 = _this.state,
keyEntities = _this$state6.keyEntities,
fieldNames = _this$state6.fieldNames;
keyEntities = _this$state6.keyEntities,
fieldNames = _this$state6.fieldNames;
var _this$props5 = _this.props,
onSelect = _this$props5.onSelect,
multiple = _this$props5.multiple;
onSelect = _this$props5.onSelect,
multiple = _this$props5.multiple;
var selected = treeNode.selected;
var key = treeNode[fieldNames.key];
var targetSelected = !selected; // Update selected keys
var targetSelected = !selected;
// Update selected keys
if (!targetSelected) {

@@ -465,5 +397,4 @@ selectedKeys = arrDel(selectedKeys, key);

selectedKeys = arrAdd(selectedKeys, key);
} // [Legacy] Not found related usage in doc or upper libs
}
// [Legacy] Not found related usage in doc or upper libs
var selectedNodes = selectedKeys.map(function (selectedKey) {

@@ -476,7 +407,5 @@ var entity = keyEntities[selectedKey];

});
_this.setUncontrolledState({
selectedKeys: selectedKeys
});
onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {

@@ -490,13 +419,12 @@ event: 'select',

};
_this.onNodeCheck = function (e, treeNode, checked) {
var _this$state7 = _this.state,
keyEntities = _this$state7.keyEntities,
oriCheckedKeys = _this$state7.checkedKeys,
oriHalfCheckedKeys = _this$state7.halfCheckedKeys;
keyEntities = _this$state7.keyEntities,
oriCheckedKeys = _this$state7.checkedKeys,
oriHalfCheckedKeys = _this$state7.halfCheckedKeys;
var _this$props6 = _this.props,
checkStrictly = _this$props6.checkStrictly,
onCheck = _this$props6.onCheck;
var key = treeNode.key; // Prepare trigger arguments
checkStrictly = _this$props6.checkStrictly,
onCheck = _this$props6.onCheck;
var key = treeNode.key;
// Prepare trigger arguments
var checkedObj;

@@ -509,3 +437,2 @@ var eventObj = {

};
if (checkStrictly) {

@@ -525,3 +452,2 @@ var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);

});
_this.setUncontrolledState({

@@ -533,10 +459,8 @@ checkedKeys: checkedKeys

var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),
_checkedKeys = _conductCheck.checkedKeys,
_halfCheckedKeys = _conductCheck.halfCheckedKeys; // If remove, we do it again to correction
_checkedKeys = _conductCheck.checkedKeys,
_halfCheckedKeys = _conductCheck.halfCheckedKeys;
// If remove, we do it again to correction
if (!checked) {
var keySet = new Set(_checkedKeys);
keySet.delete(key);
var _conductCheck2 = conductCheck(Array.from(keySet), {

@@ -546,13 +470,10 @@ checked: false,

}, keyEntities);
_checkedKeys = _conductCheck2.checkedKeys;
_halfCheckedKeys = _conductCheck2.halfCheckedKeys;
}
checkedObj = _checkedKeys; // [Legacy] This is used for `rc-tree-select`
checkedObj = _checkedKeys;
// [Legacy] This is used for `rc-tree-select`
eventObj.checkedNodes = [];
eventObj.checkedNodesPositions = [];
eventObj.halfCheckedKeys = _halfCheckedKeys;
_checkedKeys.forEach(function (checkedKey) {

@@ -562,3 +483,3 @@ var entity = keyEntities[checkedKey];

var node = entity.node,
pos = entity.pos;
pos = entity.pos;
eventObj.checkedNodes.push(node);

@@ -570,3 +491,2 @@ eventObj.checkedNodesPositions.push({

});
_this.setUncontrolledState({

@@ -578,6 +498,4 @@ checkedKeys: _checkedKeys

}
onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);
};
_this.onNodeLoad = function (treeNode) {

@@ -589,20 +507,18 @@ var key = treeNode.key;

var _ref$loadedKeys = _ref.loadedKeys,
loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,
_ref$loadingKeys = _ref.loadingKeys,
loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;
loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,
_ref$loadingKeys = _ref.loadingKeys,
loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;
var _this$props7 = _this.props,
loadData = _this$props7.loadData,
onLoad = _this$props7.onLoad;
loadData = _this$props7.loadData,
onLoad = _this$props7.onLoad;
if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {
return null;
} // Process load data
}
// Process load data
var promise = loadData(treeNode);
promise.then(function () {
var currentLoadedKeys = _this.state.loadedKeys;
var newLoadedKeys = arrAdd(currentLoadedKeys, key); // onLoad should trigger before internal setState to avoid `loadData` trigger twice.
var newLoadedKeys = arrAdd(currentLoadedKeys, key);
// onLoad should trigger before internal setState to avoid `loadData` trigger twice.
// https://github.com/ant-design/ant-design/issues/12464
onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {

@@ -612,7 +528,5 @@ event: 'load',

});
_this.setUncontrolledState({
loadedKeys: newLoadedKeys
});
_this.setState(function (prevState) {

@@ -623,3 +537,2 @@ return {

});
resolve();

@@ -631,18 +544,13 @@ }).catch(function (e) {

};
}); // If exceed max retry times, we give up retry
});
// If exceed max retry times, we give up retry
_this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;
if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {
var currentLoadedKeys = _this.state.loadedKeys;
warning(false, 'Retry for `loadData` many times but still failed. No more retry.');
_this.setUncontrolledState({
loadedKeys: arrAdd(currentLoadedKeys, key)
});
resolve();
}
reject(e);

@@ -654,8 +562,7 @@ });

});
}); // Not care warning if we ignore this
});
// Not care warning if we ignore this
loadPromise.catch(function () {});
return loadPromise;
};
_this.onNodeMouseEnter = function (event, node) {

@@ -668,3 +575,2 @@ var onMouseEnter = _this.props.onMouseEnter;

};
_this.onNodeMouseLeave = function (event, node) {

@@ -677,6 +583,4 @@ var onMouseLeave = _this.props.onMouseLeave;

};
_this.onNodeContextMenu = function (event, node) {
var onRightClick = _this.props.onRightClick;
if (onRightClick) {

@@ -690,44 +594,34 @@ event.preventDefault();

};
_this.onFocus = function () {
var onFocus = _this.props.onFocus;
_this.setState({
focused: true
});
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);
};
_this.onBlur = function () {
var onBlur = _this.props.onBlur;
_this.setState({
focused: false
});
_this.onActiveChange(null);
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);
};
_this.getTreeNodeRequiredProps = function () {
var _this$state8 = _this.state,
expandedKeys = _this$state8.expandedKeys,
selectedKeys = _this$state8.selectedKeys,
loadedKeys = _this$state8.loadedKeys,
loadingKeys = _this$state8.loadingKeys,
checkedKeys = _this$state8.checkedKeys,
halfCheckedKeys = _this$state8.halfCheckedKeys,
dragOverNodeKey = _this$state8.dragOverNodeKey,
dropPosition = _this$state8.dropPosition,
keyEntities = _this$state8.keyEntities;
expandedKeys = _this$state8.expandedKeys,
selectedKeys = _this$state8.selectedKeys,
loadedKeys = _this$state8.loadedKeys,
loadingKeys = _this$state8.loadingKeys,
checkedKeys = _this$state8.checkedKeys,
halfCheckedKeys = _this$state8.halfCheckedKeys,
dragOverNodeKey = _this$state8.dragOverNodeKey,
dropPosition = _this$state8.dropPosition,
keyEntities = _this$state8.keyEntities;
return {

@@ -745,9 +639,7 @@ expandedKeys: expandedKeys || [],

};
_this.setExpandedKeys = function (expandedKeys) {
var _this$state9 = _this.state,
treeData = _this$state9.treeData,
fieldNames = _this$state9.fieldNames;
treeData = _this$state9.treeData,
fieldNames = _this$state9.fieldNames;
var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);
_this.setUncontrolledState({

@@ -758,23 +650,20 @@ expandedKeys: expandedKeys,

};
_this.onNodeExpand = function (e, treeNode) {
var expandedKeys = _this.state.expandedKeys;
var _this$state10 = _this.state,
listChanging = _this$state10.listChanging,
fieldNames = _this$state10.fieldNames;
listChanging = _this$state10.listChanging,
fieldNames = _this$state10.fieldNames;
var _this$props8 = _this.props,
onExpand = _this$props8.onExpand,
loadData = _this$props8.loadData;
onExpand = _this$props8.onExpand,
loadData = _this$props8.loadData;
var expanded = treeNode.expanded;
var key = treeNode[fieldNames.key]; // Do nothing when motion is in progress
var key = treeNode[fieldNames.key];
// Do nothing when motion is in progress
if (listChanging) {
return;
} // Update selected keys
}
// Update selected keys
var index = expandedKeys.indexOf(key);
var targetExpanded = !expanded;
warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');
if (targetExpanded) {

@@ -785,5 +674,3 @@ expandedKeys = arrAdd(expandedKeys, key);

}
_this.setExpandedKeys(expandedKeys);
onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {

@@ -793,7 +680,6 @@ node: treeNode,

nativeEvent: e.nativeEvent
}); // Async Load data
});
// Async Load data
if (targetExpanded && loadData) {
var loadPromise = _this.onNodeLoad(treeNode);
if (loadPromise) {

@@ -803,3 +689,2 @@ loadPromise.then(function () {

var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);
_this.setUncontrolledState({

@@ -811,3 +696,2 @@ flattenNodes: newFlattenTreeData

var expandedKeysToRestore = arrDel(currentExpandedKeys, key);
_this.setExpandedKeys(expandedKeysToRestore);

@@ -818,3 +702,2 @@ });

};
_this.onListChangeStart = function () {

@@ -825,3 +708,2 @@ _this.setUncontrolledState({

};
_this.onListChangeEnd = function () {

@@ -834,15 +716,11 @@ setTimeout(function () {

};
_this.onActiveChange = function (newActiveKey) {
var activeKey = _this.state.activeKey;
var onActiveChange = _this.props.onActiveChange;
if (activeKey === newActiveKey) {
return;
}
_this.setState({
activeKey: newActiveKey
});
if (newActiveKey !== null) {

@@ -853,15 +731,11 @@ _this.scrollTo({

}
onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);
};
_this.getActiveItem = function () {
var _this$state11 = _this.state,
activeKey = _this$state11.activeKey,
flattenNodes = _this$state11.flattenNodes;
activeKey = _this$state11.activeKey,
flattenNodes = _this$state11.flattenNodes;
if (activeKey === null) {
return null;
}
return flattenNodes.find(function (_ref2) {

@@ -872,22 +746,18 @@ var key = _ref2.key;

};
_this.offsetActiveKey = function (offset) {
var _this$state12 = _this.state,
flattenNodes = _this$state12.flattenNodes,
activeKey = _this$state12.activeKey;
flattenNodes = _this$state12.flattenNodes,
activeKey = _this$state12.activeKey;
var index = flattenNodes.findIndex(function (_ref3) {
var key = _ref3.key;
return key === activeKey;
}); // Align with index
});
// Align with index
if (index === -1 && offset < 0) {
index = flattenNodes.length;
}
index = (index + offset + flattenNodes.length) % flattenNodes.length;
var item = flattenNodes[index];
if (item) {
var key = item.key;
_this.onActiveChange(key);

@@ -898,14 +768,13 @@ } else {

};
_this.onKeyDown = function (event) {
var _this$state13 = _this.state,
activeKey = _this$state13.activeKey,
expandedKeys = _this$state13.expandedKeys,
checkedKeys = _this$state13.checkedKeys,
fieldNames = _this$state13.fieldNames;
activeKey = _this$state13.activeKey,
expandedKeys = _this$state13.expandedKeys,
checkedKeys = _this$state13.checkedKeys,
fieldNames = _this$state13.fieldNames;
var _this$props9 = _this.props,
onKeyDown = _this$props9.onKeyDown,
checkable = _this$props9.checkable,
selectable = _this$props9.selectable; // >>>>>>>>>> Direction
onKeyDown = _this$props9.onKeyDown,
checkable = _this$props9.checkable,
selectable = _this$props9.selectable;
// >>>>>>>>>> Direction
switch (event.which) {

@@ -915,22 +784,16 @@ case KeyCode.UP:

_this.offsetActiveKey(-1);
event.preventDefault();
break;
}
case KeyCode.DOWN:
{
_this.offsetActiveKey(1);
event.preventDefault();
break;
}
} // >>>>>>>>>> Expand & Selection
}
// >>>>>>>>>> Expand & Selection
var activeItem = _this.getActiveItem();
if (activeItem && activeItem.data) {
var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();
var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;

@@ -941,3 +804,2 @@ var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {

}));
switch (event.which) {

@@ -953,7 +815,5 @@ // >>> Expand

}
event.preventDefault();
break;
}
case KeyCode.RIGHT:

@@ -967,3 +827,2 @@ {

}
event.preventDefault();

@@ -973,3 +832,2 @@ break;

// Selection
case KeyCode.ENTER:

@@ -983,3 +841,2 @@ case KeyCode.SPACE:

}
break;

@@ -989,10 +846,7 @@ }

}
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
};
_this.setUncontrolledState = function (state) {
var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
if (!_this.destroyed) {

@@ -1007,7 +861,5 @@ var needSync = false;

}
needSync = true;
newState[name] = state[name];
});
if (needSync && (!atomic || allPassed)) {

@@ -1018,10 +870,7 @@ _this.setState(_objectSpread(_objectSpread({}, newState), forceState));

};
_this.scrollTo = function (scroll) {
_this.listRef.current.scrollTo(scroll);
};
return _this;
}
_createClass(Tree, [{

@@ -1042,3 +891,2 @@ key: "componentDidMount",

var activeKey = this.props.activeKey;
if (activeKey !== undefined && activeKey !== this.state.activeKey) {

@@ -1048,3 +896,2 @@ this.setState({

});
if (activeKey !== null) {

@@ -1080,51 +927,49 @@ this.scrollTo({

var _classNames;
var _this$state14 = this.state,
focused = _this$state14.focused,
flattenNodes = _this$state14.flattenNodes,
keyEntities = _this$state14.keyEntities,
draggingNodeKey = _this$state14.draggingNodeKey,
activeKey = _this$state14.activeKey,
dropLevelOffset = _this$state14.dropLevelOffset,
dropContainerKey = _this$state14.dropContainerKey,
dropTargetKey = _this$state14.dropTargetKey,
dropPosition = _this$state14.dropPosition,
dragOverNodeKey = _this$state14.dragOverNodeKey,
indent = _this$state14.indent;
focused = _this$state14.focused,
flattenNodes = _this$state14.flattenNodes,
keyEntities = _this$state14.keyEntities,
draggingNodeKey = _this$state14.draggingNodeKey,
activeKey = _this$state14.activeKey,
dropLevelOffset = _this$state14.dropLevelOffset,
dropContainerKey = _this$state14.dropContainerKey,
dropTargetKey = _this$state14.dropTargetKey,
dropPosition = _this$state14.dropPosition,
dragOverNodeKey = _this$state14.dragOverNodeKey,
indent = _this$state14.indent;
var _this$props10 = this.props,
prefixCls = _this$props10.prefixCls,
className = _this$props10.className,
style = _this$props10.style,
showLine = _this$props10.showLine,
focusable = _this$props10.focusable,
_this$props10$tabInde = _this$props10.tabIndex,
tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,
selectable = _this$props10.selectable,
showIcon = _this$props10.showIcon,
icon = _this$props10.icon,
switcherIcon = _this$props10.switcherIcon,
draggable = _this$props10.draggable,
checkable = _this$props10.checkable,
checkStrictly = _this$props10.checkStrictly,
disabled = _this$props10.disabled,
motion = _this$props10.motion,
loadData = _this$props10.loadData,
filterTreeNode = _this$props10.filterTreeNode,
height = _this$props10.height,
itemHeight = _this$props10.itemHeight,
virtual = _this$props10.virtual,
titleRender = _this$props10.titleRender,
dropIndicatorRender = _this$props10.dropIndicatorRender,
onContextMenu = _this$props10.onContextMenu,
onScroll = _this$props10.onScroll,
direction = _this$props10.direction,
rootClassName = _this$props10.rootClassName,
rootStyle = _this$props10.rootStyle;
prefixCls = _this$props10.prefixCls,
className = _this$props10.className,
style = _this$props10.style,
showLine = _this$props10.showLine,
focusable = _this$props10.focusable,
_this$props10$tabInde = _this$props10.tabIndex,
tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,
selectable = _this$props10.selectable,
showIcon = _this$props10.showIcon,
icon = _this$props10.icon,
switcherIcon = _this$props10.switcherIcon,
draggable = _this$props10.draggable,
checkable = _this$props10.checkable,
checkStrictly = _this$props10.checkStrictly,
disabled = _this$props10.disabled,
motion = _this$props10.motion,
loadData = _this$props10.loadData,
filterTreeNode = _this$props10.filterTreeNode,
height = _this$props10.height,
itemHeight = _this$props10.itemHeight,
virtual = _this$props10.virtual,
titleRender = _this$props10.titleRender,
dropIndicatorRender = _this$props10.dropIndicatorRender,
onContextMenu = _this$props10.onContextMenu,
onScroll = _this$props10.onScroll,
direction = _this$props10.direction,
rootClassName = _this$props10.rootClassName,
rootStyle = _this$props10.rootStyle;
var domProps = pickAttrs(this.props, {
aria: true,
data: true
}); // It's better move to hooks but we just simply keep here
});
// It's better move to hooks but we just simply keep here
var draggableConfig;
if (draggable) {

@@ -1141,3 +986,2 @@ if (_typeof(draggable) === 'object') {

}
return /*#__PURE__*/React.createElement(TreeContext.Provider, {

@@ -1221,18 +1065,14 @@ value: {

};
function needSync(name) {
return !prevProps && name in props || prevProps && prevProps[name] !== props[name];
} // ================== Tree Node ==================
var treeData; // fieldNames
}
// ================== Tree Node ==================
var treeData;
// fieldNames
var fieldNames = prevState.fieldNames;
if (needSync('fieldNames')) {
fieldNames = fillFieldNames(props.fieldNames);
newState.fieldNames = fieldNames;
} // Check if `treeData` or `children` changed and save into the state.
}
// Check if `treeData` or `children` changed and save into the state.
if (needSync('treeData')) {

@@ -1243,5 +1083,4 @@ treeData = props.treeData;

treeData = convertTreeToData(props.children);
} // Save flatten nodes info and convert `treeData` into keyEntities
}
// Save flatten nodes info and convert `treeData` into keyEntities
if (treeData) {

@@ -1252,4 +1091,4 @@ newState.treeData = treeData;

});
newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities); // Warning if treeNode not provide key
newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);
// Warning if treeNode not provide key
if (process.env.NODE_ENV !== 'production') {

@@ -1259,5 +1098,4 @@ warningWithoutKey(treeData, fieldNames);

}
var keyEntities = newState.keyEntities || prevState.keyEntities; // ================ expandedKeys =================
var keyEntities = newState.keyEntities || prevState.keyEntities;
// ================ expandedKeys =================
if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {

@@ -1267,3 +1105,2 @@ newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;

var cloneKeyEntities = _objectSpread({}, keyEntities);
delete cloneKeyEntities[MOTION_KEY];

@@ -1276,14 +1113,11 @@ newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {

}
if (!newState.expandedKeys) {
delete newState.expandedKeys;
} // ================ flattenNodes =================
}
// ================ flattenNodes =================
if (treeData || newState.expandedKeys) {
var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);
newState.flattenNodes = flattenNodes;
} // ================ selectedKeys =================
}
// ================ selectedKeys =================
if (props.selectable) {

@@ -1295,8 +1129,6 @@ if (needSync('selectedKeys')) {

}
} // ================= checkedKeys =================
}
// ================= checkedKeys =================
if (props.checkable) {
var checkedKeyEntity;
if (needSync('checkedKeys')) {

@@ -1313,10 +1145,8 @@ checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};

}
if (checkedKeyEntity) {
var _checkedKeyEntity = checkedKeyEntity,
_checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,
checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,
_checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,
halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;
_checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,
checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,
_checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,
halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;
if (!props.checkStrictly) {

@@ -1327,20 +1157,15 @@ var conductKeys = conductCheck(checkedKeys, true, keyEntities);

}
newState.checkedKeys = checkedKeys;
newState.halfCheckedKeys = halfCheckedKeys;
}
} // ================= loadedKeys ==================
}
// ================= loadedKeys ==================
if (needSync('loadedKeys')) {
newState.loadedKeys = props.loadedKeys;
}
return newState;
}
}]);
return Tree;
}(React.Component);
Tree.defaultProps = {

@@ -1347,0 +1172,0 @@ prefixCls: 'rc-tree',

@@ -13,4 +13,4 @@ import _extends from "@babel/runtime/helpers/esm/extends";

import classNames from 'classnames';
import pickAttrs from "rc-util/es/pickAttrs"; // @ts-ignore
import pickAttrs from "rc-util/es/pickAttrs";
// @ts-ignore
import { TreeContext } from './contextTypes';

@@ -22,17 +22,11 @@ import Indent from './Indent';

var defaultTitle = '---';
var InternalTreeNode = /*#__PURE__*/function (_React$Component) {
_inherits(InternalTreeNode, _React$Component);
var _super = _createSuper(InternalTreeNode);
function InternalTreeNode() {
var _this;
_classCallCheck(this, InternalTreeNode);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));

@@ -43,3 +37,2 @@ _this.state = {

_this.selectHandle = void 0;
_this.onSelectorClick = function (e) {

@@ -49,3 +42,2 @@ // Click trigger before select/check operation

onNodeClick(e, convertNodePropsToEventData(_this.props));
if (_this.isSelectable()) {

@@ -57,3 +49,2 @@ _this.onSelect(e);

};
_this.onSelectorDoubleClick = function (e) {

@@ -63,3 +54,2 @@ var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;

};
_this.onSelect = function (e) {

@@ -71,8 +61,7 @@ if (_this.isDisabled()) return;

};
_this.onCheck = function (e) {
if (_this.isDisabled()) return;
var _this$props = _this.props,
disableCheckbox = _this$props.disableCheckbox,
checked = _this$props.checked;
disableCheckbox = _this$props.disableCheckbox,
checked = _this$props.checked;
var onNodeCheck = _this.props.context.onNodeCheck;

@@ -84,3 +73,2 @@ if (!_this.isCheckable() || disableCheckbox) return;

};
_this.onMouseEnter = function (e) {

@@ -90,3 +78,2 @@ var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;

};
_this.onMouseLeave = function (e) {

@@ -96,3 +83,2 @@ var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;

};
_this.onContextMenu = function (e) {

@@ -102,13 +88,9 @@ var onNodeContextMenu = _this.props.context.onNodeContextMenu;

};
_this.onDragStart = function (e) {
var onNodeDragStart = _this.props.context.onNodeDragStart;
e.stopPropagation();
_this.setState({
dragNodeHighlight: true
});
onNodeDragStart(e, _assertThisInitialized(_this));
try {

@@ -118,6 +100,6 @@ // ie throw error

e.dataTransfer.setData('text/plain', '');
} catch (error) {// empty
} catch (error) {
// empty
}
};
_this.onDragEnter = function (e) {

@@ -129,3 +111,2 @@ var onNodeDragEnter = _this.props.context.onNodeDragEnter;

};
_this.onDragOver = function (e) {

@@ -137,3 +118,2 @@ var onNodeDragOver = _this.props.context.onNodeDragOver;

};
_this.onDragLeave = function (e) {

@@ -144,14 +124,10 @@ var onNodeDragLeave = _this.props.context.onNodeDragLeave;

};
_this.onDragEnd = function (e) {
var onNodeDragEnd = _this.props.context.onNodeDragEnd;
e.stopPropagation();
_this.setState({
dragNodeHighlight: false
});
onNodeDragEnd(e, _assertThisInitialized(_this));
};
_this.onDrop = function (e) {

@@ -161,57 +137,42 @@ var onNodeDrop = _this.props.context.onNodeDrop;

e.stopPropagation();
_this.setState({
dragNodeHighlight: false
});
onNodeDrop(e, _assertThisInitialized(_this));
};
_this.onExpand = function (e) {
var _this$props2 = _this.props,
loading = _this$props2.loading,
onNodeExpand = _this$props2.context.onNodeExpand;
loading = _this$props2.loading,
onNodeExpand = _this$props2.context.onNodeExpand;
if (loading) return;
onNodeExpand(e, convertNodePropsToEventData(_this.props));
};
_this.setSelectHandle = function (node) {
_this.selectHandle = node;
};
_this.getNodeState = function () {
var expanded = _this.props.expanded;
if (_this.isLeaf()) {
return null;
}
return expanded ? ICON_OPEN : ICON_CLOSE;
};
_this.hasChildren = function () {
var eventKey = _this.props.eventKey;
var keyEntities = _this.props.context.keyEntities;
var _ref = keyEntities[eventKey] || {},
children = _ref.children;
children = _ref.children;
return !!(children || []).length;
};
_this.isLeaf = function () {
var _this$props3 = _this.props,
isLeaf = _this$props3.isLeaf,
loaded = _this$props3.loaded;
isLeaf = _this$props3.isLeaf,
loaded = _this$props3.loaded;
var loadData = _this.props.context.loadData;
var hasChildren = _this.hasChildren();
if (isLeaf === false) {
return false;
}
return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;
};
_this.isDisabled = function () {

@@ -222,24 +183,20 @@ var disabled = _this.props.disabled;

};
_this.isCheckable = function () {
var checkable = _this.props.checkable;
var treeCheckable = _this.props.context.checkable; // Return false if tree or treeNode is not checkable
var treeCheckable = _this.props.context.checkable;
// Return false if tree or treeNode is not checkable
if (!treeCheckable || checkable === false) return false;
return treeCheckable;
};
_this.syncLoadData = function (props) {
var expanded = props.expanded,
loading = props.loading,
loaded = props.loaded;
loading = props.loading,
loaded = props.loaded;
var _this$props$context = _this.props.context,
loadData = _this$props$context.loadData,
onNodeLoad = _this$props$context.onNodeLoad;
loadData = _this$props$context.loadData,
onNodeLoad = _this$props$context.onNodeLoad;
if (loading) {
return;
} // read from state to avoid loadData at same time
}
// read from state to avoid loadData at same time
if (loadData && expanded && !_this.isLeaf()) {

@@ -253,14 +210,12 @@ // We needn't reload data when has children in sync logic

};
_this.isDraggable = function () {
var _this$props4 = _this.props,
data = _this$props4.data,
draggable = _this$props4.context.draggable;
data = _this$props4.data,
draggable = _this$props4.context.draggable;
return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));
};
_this.renderDragHandler = function () {
var _this$props$context2 = _this.props.context,
draggable = _this$props$context2.draggable,
prefixCls = _this$props$context2.prefixCls;
draggable = _this$props$context2.draggable,
prefixCls = _this$props$context2.prefixCls;
return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement("span", {

@@ -270,8 +225,7 @@ className: "".concat(prefixCls, "-draggable-icon")

};
_this.renderSwitcherIconDom = function (isLeaf) {
var switcherIconFromProps = _this.props.switcherIcon;
var switcherIconFromCtx = _this.props.context.switcherIcon;
var switcherIcon = switcherIconFromProps || switcherIconFromCtx; // if switcherIconDom is null, no render switcher span
var switcherIcon = switcherIconFromProps || switcherIconFromCtx;
// if switcherIconDom is null, no render switcher span
if (typeof switcherIcon === 'function') {

@@ -282,14 +236,10 @@ return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {

}
return switcherIcon;
};
_this.renderSwitcher = function () {
var expanded = _this.props.expanded;
var prefixCls = _this.props.context.prefixCls;
if (_this.isLeaf()) {
// if switcherIconDom is null, no render switcher span
var _switcherIconDom = _this.renderSwitcherIconDom(true);
return _switcherIconDom !== false ? /*#__PURE__*/React.createElement("span", {

@@ -299,7 +249,4 @@ className: classNames("".concat(prefixCls, "-switcher"), "".concat(prefixCls, "-switcher-noop"))

}
var switcherCls = classNames("".concat(prefixCls, "-switcher"), "".concat(prefixCls, "-switcher_").concat(expanded ? ICON_OPEN : ICON_CLOSE));
var switcherIconDom = _this.renderSwitcherIconDom(false);
return switcherIconDom !== false ? /*#__PURE__*/React.createElement("span", {

@@ -310,16 +257,12 @@ onClick: _this.onExpand,

};
_this.renderCheckbox = function () {
var _this$props5 = _this.props,
checked = _this$props5.checked,
halfChecked = _this$props5.halfChecked,
disableCheckbox = _this$props5.disableCheckbox;
checked = _this$props5.checked,
halfChecked = _this$props5.halfChecked,
disableCheckbox = _this$props5.disableCheckbox;
var prefixCls = _this.props.context.prefixCls;
var disabled = _this.isDisabled();
var checkable = _this.isCheckable();
if (!checkable) return null; // [Legacy] Custom element should be separate with `checkable` in future
if (!checkable) return null;
// [Legacy] Custom element should be separate with `checkable` in future
var $custom = typeof checkable !== 'boolean' ? checkable : null;

@@ -331,3 +274,2 @@ return /*#__PURE__*/React.createElement("span", {

};
_this.renderIcon = function () {

@@ -340,24 +282,20 @@ var loading = _this.props.loading;

};
_this.renderSelector = function () {
var dragNodeHighlight = _this.state.dragNodeHighlight;
var _this$props6 = _this.props,
title = _this$props6.title,
selected = _this$props6.selected,
icon = _this$props6.icon,
loading = _this$props6.loading,
data = _this$props6.data;
title = _this$props6.title,
selected = _this$props6.selected,
icon = _this$props6.icon,
loading = _this$props6.loading,
data = _this$props6.data;
var _this$props$context3 = _this.props.context,
prefixCls = _this$props$context3.prefixCls,
showIcon = _this$props$context3.showIcon,
treeIcon = _this$props$context3.icon,
loadData = _this$props$context3.loadData,
titleRender = _this$props$context3.titleRender;
prefixCls = _this$props$context3.prefixCls,
showIcon = _this$props$context3.showIcon,
treeIcon = _this$props$context3.icon,
loadData = _this$props$context3.loadData,
titleRender = _this$props$context3.titleRender;
var disabled = _this.isDisabled();
var wrapClass = "".concat(prefixCls, "-node-content-wrapper"); // Icon - Still show loading icon when loading without showIcon
var wrapClass = "".concat(prefixCls, "-node-content-wrapper");
// Icon - Still show loading icon when loading without showIcon
var $icon;
if (showIcon) {

@@ -370,7 +308,5 @@ var currentIcon = icon || treeIcon;

$icon = _this.renderIcon();
} // Title
}
// Title
var titleNode;
if (typeof title === 'function') {

@@ -383,3 +319,2 @@ titleNode = title(data);

}
var $title = /*#__PURE__*/React.createElement("span", {

@@ -399,18 +334,17 @@ className: "".concat(prefixCls, "-title")

};
_this.renderDropIndicator = function () {
var _this$props7 = _this.props,
disabled = _this$props7.disabled,
eventKey = _this$props7.eventKey;
disabled = _this$props7.disabled,
eventKey = _this$props7.eventKey;
var _this$props$context4 = _this.props.context,
draggable = _this$props$context4.draggable,
dropLevelOffset = _this$props$context4.dropLevelOffset,
dropPosition = _this$props$context4.dropPosition,
prefixCls = _this$props$context4.prefixCls,
indent = _this$props$context4.indent,
dropIndicatorRender = _this$props$context4.dropIndicatorRender,
dragOverNodeKey = _this$props$context4.dragOverNodeKey,
direction = _this$props$context4.direction;
var rootDraggable = draggable !== false; // allowDrop is calculated in Tree.tsx, there is no need for calc it here
draggable = _this$props$context4.draggable,
dropLevelOffset = _this$props$context4.dropLevelOffset,
dropPosition = _this$props$context4.dropPosition,
prefixCls = _this$props$context4.prefixCls,
indent = _this$props$context4.indent,
dropIndicatorRender = _this$props$context4.dropIndicatorRender,
dragOverNodeKey = _this$props$context4.dragOverNodeKey,
direction = _this$props$context4.direction;
var rootDraggable = !!draggable;
// allowDrop is calculated in Tree.tsx, there is no need for calc it here
var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;

@@ -425,9 +359,8 @@ return showIndicator ? dropIndicatorRender({

};
return _this;
}
_createClass(InternalTreeNode, [{
key: "componentDidMount",
value: // Isomorphic needn't load data in server side
value:
// Isomorphic needn't load data in server side
function componentDidMount() {

@@ -445,8 +378,7 @@ this.syncLoadData(this.props);

var selectable = this.props.selectable;
var treeSelectable = this.props.context.selectable; // Ignore when selectable is undefined or null
var treeSelectable = this.props.context.selectable;
// Ignore when selectable is undefined or null
if (typeof selectable === 'boolean') {
return selectable;
}
return treeSelectable;

@@ -456,35 +388,34 @@ }

key: "render",
value: // =========================== Render ===========================
value:
// =========================== Render ===========================
function render() {
var _classNames;
var _this$props8 = this.props,
eventKey = _this$props8.eventKey,
className = _this$props8.className,
style = _this$props8.style,
dragOver = _this$props8.dragOver,
dragOverGapTop = _this$props8.dragOverGapTop,
dragOverGapBottom = _this$props8.dragOverGapBottom,
isLeaf = _this$props8.isLeaf,
isStart = _this$props8.isStart,
isEnd = _this$props8.isEnd,
expanded = _this$props8.expanded,
selected = _this$props8.selected,
checked = _this$props8.checked,
halfChecked = _this$props8.halfChecked,
loading = _this$props8.loading,
domRef = _this$props8.domRef,
active = _this$props8.active,
data = _this$props8.data,
onMouseMove = _this$props8.onMouseMove,
selectable = _this$props8.selectable,
otherProps = _objectWithoutProperties(_this$props8, _excluded);
eventKey = _this$props8.eventKey,
className = _this$props8.className,
style = _this$props8.style,
dragOver = _this$props8.dragOver,
dragOverGapTop = _this$props8.dragOverGapTop,
dragOverGapBottom = _this$props8.dragOverGapBottom,
isLeaf = _this$props8.isLeaf,
isStart = _this$props8.isStart,
isEnd = _this$props8.isEnd,
expanded = _this$props8.expanded,
selected = _this$props8.selected,
checked = _this$props8.checked,
halfChecked = _this$props8.halfChecked,
loading = _this$props8.loading,
domRef = _this$props8.domRef,
active = _this$props8.active,
data = _this$props8.data,
onMouseMove = _this$props8.onMouseMove,
selectable = _this$props8.selectable,
otherProps = _objectWithoutProperties(_this$props8, _excluded);
var _this$props$context5 = this.props.context,
prefixCls = _this$props$context5.prefixCls,
filterTreeNode = _this$props$context5.filterTreeNode,
keyEntities = _this$props$context5.keyEntities,
dropContainerKey = _this$props$context5.dropContainerKey,
dropTargetKey = _this$props$context5.dropTargetKey,
draggingNodeKey = _this$props$context5.draggingNodeKey;
prefixCls = _this$props$context5.prefixCls,
filterTreeNode = _this$props$context5.filterTreeNode,
keyEntities = _this$props$context5.keyEntities,
dropContainerKey = _this$props$context5.dropContainerKey,
dropTargetKey = _this$props$context5.dropTargetKey,
draggingNodeKey = _this$props$context5.draggingNodeKey;
var disabled = this.isDisabled();

@@ -495,6 +426,4 @@ var dataOrAriaAttributeProps = pickAttrs(otherProps, {

});
var _ref2 = keyEntities[eventKey] || {},
level = _ref2.level;
level = _ref2.level;
var isEndNode = isEnd[isEnd.length - 1];

@@ -510,7 +439,9 @@ var mergedDraggable = this.isDraggable();

className: classNames(className, "".concat(prefixCls, "-treenode"), (_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-treenode-disabled"), disabled), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-switcher-").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-checkbox-checked"), checked), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-checkbox-indeterminate"), halfChecked), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-selected"), selected), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-loading"), loading), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-active"), active), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-leaf-last"), isEndNode), _defineProperty(_classNames, "".concat(prefixCls, "-treenode-draggable"), mergedDraggable), _defineProperty(_classNames, "dragging", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),
style: style // Draggable config
style: style
// Draggable config
,
draggable: draggableWithoutDisabled,
"aria-grabbed": dragging,
onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined // Drop config
onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined
// Drop config
,

@@ -531,6 +462,4 @@ onDragEnter: mergedDraggable ? this.onDragEnter : undefined,

}]);
return InternalTreeNode;
}(React.Component);
var ContextTreeNode = function ContextTreeNode(props) {

@@ -543,3 +472,2 @@ return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {

};
ContextTreeNode.displayName = 'TreeNode';

@@ -546,0 +474,0 @@ ContextTreeNode.defaultProps = {

@@ -6,5 +6,3 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";

var _excluded = ["children"];
/* eslint-disable no-lonely-if */
/**

@@ -20,7 +18,5 @@ * Legacy code. Should avoid to use if you are new to import these code.

var index = clone.indexOf(value);
if (index >= 0) {
clone.splice(index, 1);
}
return clone;

@@ -30,7 +26,5 @@ }

var clone = (list || []).slice();
if (clone.indexOf(value) === -1) {
clone.push(value);
}
return clone;

@@ -52,3 +46,2 @@ }

var entity = keyEntities[dragNodeKey];
function dig() {

@@ -58,3 +51,3 @@ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];

var key = _ref.key,
children = _ref.children;
children = _ref.children;
dragChildrenKeys.push(key);

@@ -64,3 +57,2 @@ dig(children);

}
dig(entity.children);

@@ -74,3 +66,2 @@ return dragChildrenKeys;

}
return false;

@@ -81,20 +72,16 @@ }

return Number(posArr[posArr.length - 1]) === 0;
} // Only used when drag, not affect SSR.
}
// Only used when drag, not affect SSR.
export function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {
var _abstractDropNodeEnti;
var clientX = event.clientX,
clientY = event.clientY;
clientY = event.clientY;
var _event$target$getBoun = event.target.getBoundingClientRect(),
top = _event$target$getBoun.top,
height = _event$target$getBoun.height; // optional chain for testing
top = _event$target$getBoun.top,
height = _event$target$getBoun.height;
// optional chain for testing
var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);
var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent; // find abstract drop node by horizontal offset
var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;
// find abstract drop node by horizontal offset
var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];
if (clientY < top + height / 2) {

@@ -109,3 +96,2 @@ // first half, set abstract drop node to previous node

}
var initialAbstractDropNodeKey = abstractDropNodeEntity.key;

@@ -115,4 +101,4 @@ var abstractDragOverEntity = abstractDropNodeEntity;

var dropPosition = 0;
var dropLevelOffset = 0; // Only allow cross level drop when dragging on a non-expanded node
var dropLevelOffset = 0;
// Only allow cross level drop when dragging on a non-expanded node
if (!expandKeys.includes(initialAbstractDropNodeKey)) {

@@ -128,7 +114,5 @@ for (var i = 0; i < rawDropLevelOffset; i += 1) {

}
var abstractDragDataNode = dragNode.props.data;
var abstractDropDataNode = abstractDropNodeEntity.node;
var dropAllowed = true;
if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({

@@ -208,3 +192,2 @@ dragNode: abstractDragDataNode,

}
return {

@@ -226,34 +209,25 @@ dropPosition: dropPosition,

*/
export function calcSelectedKeys(selectedKeys, props) {
if (!selectedKeys) return undefined;
var multiple = props.multiple;
if (multiple) {
return selectedKeys.slice();
}
if (selectedKeys.length) {
return [selectedKeys[0]];
}
return selectedKeys;
}
var internalProcessProps = function internalProcessProps(props) {
return props;
};
export function convertDataToTree(treeData, processor) {
if (!treeData) return [];
var _ref2 = processor || {},
_ref2$processProps = _ref2.processProps,
processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;
_ref2$processProps = _ref2.processProps,
processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;
var list = Array.isArray(treeData) ? treeData : [treeData];
return list.map(function (_ref3) {
var children = _ref3.children,
props = _objectWithoutProperties(_ref3, _excluded);
props = _objectWithoutProperties(_ref3, _excluded);
var childrenNodes = convertDataToTree(children, processor);

@@ -268,11 +242,8 @@ return /*#__PURE__*/React.createElement(TreeNode, _extends({

*/
export function parseCheckedKeys(keys) {
if (!keys) {
return null;
} // Convert keys to object format
}
// Convert keys to object format
var keyProps;
if (Array.isArray(keys)) {

@@ -293,3 +264,2 @@ // [Legacy] Follow the api doc

}
return keyProps;

@@ -302,6 +272,4 @@ }

*/
export function conductExpandParent(keyList, keyEntities) {
var expandedKeys = new Set();
function conductUp(key) {

@@ -313,5 +281,4 @@ if (expandedKeys.has(key)) return;

var parent = entity.parent,
node = entity.node;
node = entity.node;
if (node.disabled) return;
if (parent) {

@@ -321,3 +288,2 @@ conductUp(parent.key);

}
(keyList || []).forEach(function (key) {

@@ -324,0 +290,0 @@ conductUp(key);

import warning from "rc-util/es/warning";
function removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {

@@ -12,16 +11,14 @@ var filteredKeys = new Set();

}
export function isCheckDisabled(node) {
var _ref = node || {},
disabled = _ref.disabled,
disableCheckbox = _ref.disableCheckbox,
checkable = _ref.checkable;
disabled = _ref.disabled,
disableCheckbox = _ref.disableCheckbox,
checkable = _ref.checkable;
return !!(disabled || disableCheckbox) || checkable === false;
} // Fill miss keys
}
// Fill miss keys
function fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {
var checkedKeys = new Set(keys);
var halfCheckedKeys = new Set(); // Add checked keys top to bottom
var halfCheckedKeys = new Set();
// Add checked keys top to bottom
for (var level = 0; level <= maxLevel; level += 1) {

@@ -31,6 +28,5 @@ var entities = levelEntities.get(level) || new Set();

var key = entity.key,
node = entity.node,
_entity$children = entity.children,
children = _entity$children === void 0 ? [] : _entity$children;
node = entity.node,
_entity$children = entity.children,
children = _entity$children === void 0 ? [] : _entity$children;
if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {

@@ -44,19 +40,15 @@ children.filter(function (childEntity) {

});
} // Add checked keys from bottom to top
}
// Add checked keys from bottom to top
var visitedKeys = new Set();
for (var _level = maxLevel; _level >= 0; _level -= 1) {
var _entities = levelEntities.get(_level) || new Set();
_entities.forEach(function (entity) {
var parent = entity.parent,
node = entity.node; // Skip if no need to check
node = entity.node;
// Skip if no need to check
if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {
return;
} // Skip if parent is disabled
}
// Skip if parent is disabled
if (syntheticGetCheckDisabled(entity.parent.node)) {

@@ -66,3 +58,2 @@ visitedKeys.add(parent.key);

}
var allChecked = true;

@@ -75,7 +66,5 @@ var partialChecked = false;

var checked = checkedKeys.has(key);
if (allChecked && !checked) {
allChecked = false;
}
if (!partialChecked && (checked || halfCheckedKeys.has(key))) {

@@ -85,15 +74,11 @@ partialChecked = true;

});
if (allChecked) {
checkedKeys.add(parent.key);
}
if (partialChecked) {
halfCheckedKeys.add(parent.key);
}
visitedKeys.add(parent.key);
});
}
return {

@@ -103,9 +88,8 @@ checkedKeys: Array.from(checkedKeys),

};
} // Remove useless key
}
// Remove useless key
function cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {
var checkedKeys = new Set(keys);
var halfCheckedKeys = new Set(halfKeys); // Remove checked keys from top to bottom
var halfCheckedKeys = new Set(halfKeys);
// Remove checked keys from top to bottom
for (var level = 0; level <= maxLevel; level += 1) {

@@ -115,6 +99,5 @@ var entities = levelEntities.get(level) || new Set();

var key = entity.key,
node = entity.node,
_entity$children2 = entity.children,
children = _entity$children2 === void 0 ? [] : _entity$children2;
node = entity.node,
_entity$children2 = entity.children,
children = _entity$children2 === void 0 ? [] : _entity$children2;
if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {

@@ -128,20 +111,16 @@ children.filter(function (childEntity) {

});
} // Remove checked keys form bottom to top
}
// Remove checked keys form bottom to top
halfCheckedKeys = new Set();
var visitedKeys = new Set();
for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {
var _entities2 = levelEntities.get(_level2) || new Set();
_entities2.forEach(function (entity) {
var parent = entity.parent,
node = entity.node; // Skip if no need to check
node = entity.node;
// Skip if no need to check
if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {
return;
} // Skip if parent is disabled
}
// Skip if parent is disabled
if (syntheticGetCheckDisabled(entity.parent.node)) {

@@ -151,3 +130,2 @@ visitedKeys.add(parent.key);

}
var allChecked = true;

@@ -160,7 +138,5 @@ var partialChecked = false;

var checked = checkedKeys.has(key);
if (allChecked && !checked) {
allChecked = false;
}
if (!partialChecked && (checked || halfCheckedKeys.has(key))) {

@@ -170,15 +146,11 @@ partialChecked = true;

});
if (!allChecked) {
checkedKeys.delete(parent.key);
}
if (partialChecked) {
halfCheckedKeys.add(parent.key);
}
visitedKeys.add(parent.key);
});
}
return {

@@ -195,8 +167,5 @@ checkedKeys: Array.from(checkedKeys),

*/
export function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {
var warningMissKeys = [];
var syntheticGetCheckDisabled;
if (getCheckDisabled) {

@@ -206,17 +175,14 @@ syntheticGetCheckDisabled = getCheckDisabled;

syntheticGetCheckDisabled = isCheckDisabled;
} // We only handle exist keys
}
// We only handle exist keys
var keys = new Set(keyList.filter(function (key) {
var hasEntity = !!keyEntities[key];
if (!hasEntity) {
warningMissKeys.push(key);
}
return hasEntity;
}));
var levelEntities = new Map();
var maxLevel = 0; // Convert entities by level for calculation
var maxLevel = 0;
// Convert entities by level for calculation
Object.keys(keyEntities).forEach(function (key) {

@@ -226,3 +192,2 @@ var entity = keyEntities[key];

var levelSet = levelEntities.get(level);
if (!levelSet) {

@@ -232,3 +197,2 @@ levelSet = new Set();

}
levelSet.add(entity);

@@ -241,3 +205,2 @@ maxLevel = Math.max(maxLevel, level);

var result;
if (checked === true) {

@@ -248,4 +211,3 @@ result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);

}
return result;
}

@@ -6,3 +6,2 @@ export function findExpandedKeys() {

var nextLen = next.length;
if (Math.abs(prevLen - nextLen) !== 1) {

@@ -14,3 +13,2 @@ return {

}
function find(shorter, longer) {

@@ -26,3 +24,2 @@ var cache = new Map();

}
if (prevLen < nextLen) {

@@ -34,3 +31,2 @@ return {

}
return {

@@ -49,3 +45,2 @@ add: false,

});
if (shorterEndNode) {

@@ -57,4 +52,3 @@ var longerEndIndex = longer.findIndex(function (data) {

}
return longer.slice(longerStartIndex + 1);
}

@@ -21,3 +21,3 @@ import * as React from 'react';

export declare function flattenTreeData<TreeDataType extends BasicDataNode = DataNode>(treeNodeList: TreeDataType[], expandedKeys: Key[] | true, fieldNames: FieldNames): FlattenNode<TreeDataType>[];
declare type ExternalGetKey = GetKey<DataNode> | string;
type ExternalGetKey = GetKey<DataNode> | string;
interface TraverseDataNodesConfig {

@@ -24,0 +24,0 @@ childrenPropName?: string;

@@ -14,3 +14,2 @@ import _typeof from "@babel/runtime/helpers/esm/typeof";

}
return pos;

@@ -20,7 +19,6 @@ }

var _ref = fieldNames || {},
title = _ref.title,
_title = _ref._title,
key = _ref.key,
children = _ref.children;
title = _ref.title,
_title = _ref._title,
key = _ref.key,
children = _ref.children;
var mergedTitle = title || 'title';

@@ -37,6 +35,4 @@ return {

*/
export function warningWithoutKey(treeData, fieldNames) {
var keys = new Map();
function dig(list) {

@@ -54,3 +50,2 @@ var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

}
dig(treeData);

@@ -61,3 +56,2 @@ }

*/
export function convertTreeToData(rootNodes) {

@@ -72,19 +66,13 @@ function dig(node) {

}
var key = treeNode.key;
var _treeNode$props = treeNode.props,
children = _treeNode$props.children,
rest = _objectWithoutProperties(_treeNode$props, _excluded);
children = _treeNode$props.children,
rest = _objectWithoutProperties(_treeNode$props, _excluded);
var dataNode = _objectSpread({
key: key
}, rest);
var parsedChildren = dig(children);
if (parsedChildren.length) {
dataNode.children = parsedChildren;
}
return dataNode;

@@ -95,3 +83,2 @@ }).filter(function (dataNode) {

}
return dig(rootNodes);

@@ -105,12 +92,9 @@ }

*/
export function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {
var _fillFieldNames = fillFieldNames(fieldNames),
fieldTitles = _fillFieldNames._title,
fieldKey = _fillFieldNames.key,
fieldChildren = _fillFieldNames.children;
fieldTitles = _fillFieldNames._title,
fieldKey = _fillFieldNames.key,
fieldChildren = _fillFieldNames.children;
var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);
var flattenList = [];
function dig(list) {

@@ -120,9 +104,7 @@ var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

var pos = getPosition(parent ? parent.pos : '0', index);
var mergedKey = getKey(treeNode[fieldKey], pos); // Pick matched title in field title list
var mergedKey = getKey(treeNode[fieldKey], pos);
// Pick matched title in field title list
var mergedTitle;
for (var i = 0; i < fieldTitles.length; i += 1) {
var fieldTitle = fieldTitles[i];
if (treeNode[fieldTitle] !== undefined) {

@@ -132,5 +114,4 @@ mergedTitle = treeNode[fieldTitle];

}
} // Add FlattenDataNode into list
}
// Add FlattenDataNode into list
var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {

@@ -146,5 +127,4 @@ title: mergedTitle,

});
flattenList.push(flattenNode); // Loop treeNode children
flattenList.push(flattenNode);
// Loop treeNode children
if (expandedKeys === true || expandedKeySet.has(mergedKey)) {

@@ -155,7 +135,5 @@ flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);

}
return flattenNode;
});
}
dig(treeNodeList);

@@ -168,7 +146,6 @@ return flattenList;

*/
export function traverseDataNodes(dataNodes, callback, // To avoid too many params, let use config instead of origin param
export function traverseDataNodes(dataNodes, callback,
// To avoid too many params, let use config instead of origin param
config) {
var mergedConfig = {};
if (_typeof(config) === 'object') {

@@ -181,18 +158,14 @@ mergedConfig = config;

}
mergedConfig = mergedConfig || {}; // Init config
mergedConfig = mergedConfig || {};
// Init config
var _mergedConfig = mergedConfig,
childrenPropName = _mergedConfig.childrenPropName,
externalGetKey = _mergedConfig.externalGetKey,
fieldNames = _mergedConfig.fieldNames;
childrenPropName = _mergedConfig.childrenPropName,
externalGetKey = _mergedConfig.externalGetKey,
fieldNames = _mergedConfig.fieldNames;
var _fillFieldNames2 = fillFieldNames(fieldNames),
fieldKey = _fillFieldNames2.key,
fieldChildren = _fillFieldNames2.children;
var mergeChildrenPropName = childrenPropName || fieldChildren; // Get keys
fieldKey = _fillFieldNames2.key,
fieldChildren = _fillFieldNames2.children;
var mergeChildrenPropName = childrenPropName || fieldChildren;
// Get keys
var syntheticGetKey;
if (externalGetKey) {

@@ -212,10 +185,9 @@ if (typeof externalGetKey === 'string') {

};
} // Process
}
// Process
function processNode(node, index, parent, pathNodes) {
var children = node ? node[mergeChildrenPropName] : dataNodes;
var pos = node ? getPosition(parent.pos, index) : '0';
var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : []; // Process node if is not root
var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];
// Process node if is not root
if (node) {

@@ -233,5 +205,4 @@ var key = syntheticGetKey(node, pos);

callback(data);
} // Process children node
}
// Process children node
if (children) {

@@ -247,3 +218,2 @@ children.forEach(function (subNode, subIndex) {

}
processNode(null);

@@ -254,14 +224,11 @@ }

*/
export function convertDataToEntities(dataNodes) {
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
initWrapper = _ref2.initWrapper,
processEntity = _ref2.processEntity,
onProcessFinished = _ref2.onProcessFinished,
externalGetKey = _ref2.externalGetKey,
childrenPropName = _ref2.childrenPropName,
fieldNames = _ref2.fieldNames;
var
/** @deprecated Use `config.externalGetKey` instead */
initWrapper = _ref2.initWrapper,
processEntity = _ref2.processEntity,
onProcessFinished = _ref2.onProcessFinished,
externalGetKey = _ref2.externalGetKey,
childrenPropName = _ref2.childrenPropName,
fieldNames = _ref2.fieldNames;
var /** @deprecated Use `config.externalGetKey` instead */
legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;

@@ -276,15 +243,13 @@ // Init config

};
if (initWrapper) {
wrapper = initWrapper(wrapper) || wrapper;
}
traverseDataNodes(dataNodes, function (item) {
var node = item.node,
index = item.index,
pos = item.pos,
key = item.key,
parentPos = item.parentPos,
level = item.level,
nodes = item.nodes;
index = item.index,
pos = item.pos,
key = item.key,
parentPos = item.parentPos,
level = item.level,
nodes = item.nodes;
var entity = {

@@ -300,6 +265,5 @@ node: node,

posEntities[pos] = entity;
keyEntities[mergedKey] = entity; // Fill children
keyEntities[mergedKey] = entity;
// Fill children
entity.parent = posEntities[parentPos];
if (entity.parent) {

@@ -309,3 +273,2 @@ entity.parent.children = entity.parent.children || [];

}
if (processEntity) {

@@ -319,7 +282,5 @@ processEntity(entity, wrapper);

});
if (onProcessFinished) {
onProcessFinished(wrapper);
}
return wrapper;

@@ -330,13 +291,12 @@ }

*/
export function getTreeNodeProps(key, _ref3) {
var expandedKeys = _ref3.expandedKeys,
selectedKeys = _ref3.selectedKeys,
loadedKeys = _ref3.loadedKeys,
loadingKeys = _ref3.loadingKeys,
checkedKeys = _ref3.checkedKeys,
halfCheckedKeys = _ref3.halfCheckedKeys,
dragOverNodeKey = _ref3.dragOverNodeKey,
dropPosition = _ref3.dropPosition,
keyEntities = _ref3.keyEntities;
selectedKeys = _ref3.selectedKeys,
loadedKeys = _ref3.loadedKeys,
loadingKeys = _ref3.loadingKeys,
checkedKeys = _ref3.checkedKeys,
halfCheckedKeys = _ref3.halfCheckedKeys,
dragOverNodeKey = _ref3.dragOverNodeKey,
dropPosition = _ref3.dropPosition,
keyEntities = _ref3.keyEntities;
var entity = keyEntities[key];

@@ -363,15 +323,14 @@ var treeNodeProps = {

var data = props.data,
expanded = props.expanded,
selected = props.selected,
checked = props.checked,
loaded = props.loaded,
loading = props.loading,
halfChecked = props.halfChecked,
dragOver = props.dragOver,
dragOverGapTop = props.dragOverGapTop,
dragOverGapBottom = props.dragOverGapBottom,
pos = props.pos,
active = props.active,
eventKey = props.eventKey;
expanded = props.expanded,
selected = props.selected,
checked = props.checked,
loaded = props.loaded,
loading = props.loading,
halfChecked = props.halfChecked,
dragOver = props.dragOver,
dragOverGapTop = props.dragOverGapTop,
dragOverGapBottom = props.dragOverGapBottom,
pos = props.pos,
active = props.active,
eventKey = props.eventKey;
var eventData = _objectSpread(_objectSpread({}, data), {}, {

@@ -391,3 +350,2 @@ expanded: expanded,

});
if (!('props' in eventData)) {

@@ -401,4 +359,3 @@ Object.defineProperty(eventData, 'props', {

}
return eventData;
}

@@ -8,12 +8,12 @@ /**

import { DraggableConfig } from './Tree';
export declare type NodeMouseEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = {
export type NodeMouseEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = {
event: React.MouseEvent<T>;
node: EventDataNode<TreeDataType>;
};
export declare type NodeDragEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = {
export type NodeDragEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = {
event: React.DragEvent<T>;
node: EventDataNode<TreeDataType>;
};
export declare type NodeMouseEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = (e: React.MouseEvent<T>, node: EventDataNode<TreeDataType>) => void;
export declare type NodeDragEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = (e: React.DragEvent<T>, node: NodeInstance<TreeDataType>, outsideTree?: boolean) => void;
export type NodeMouseEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = (e: React.MouseEvent<T>, node: EventDataNode<TreeDataType>) => void;
export type NodeDragEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = (e: React.DragEvent<T>, node: NodeInstance<TreeDataType>, outsideTree?: boolean) => void;
export interface TreeContextProps<TreeDataType extends BasicDataNode = DataNode> {

@@ -20,0 +20,0 @@ prefixCls: string;

"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -9,9 +8,5 @@ value: true

exports.TreeContext = void 0;
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
/**

@@ -21,3 +16,4 @@ * Webpack has bug for import loop, which is not the same behavior as ES module.

*/
var TreeContext = /*#__PURE__*/React.createContext(null);
exports.TreeContext = TreeContext;
"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -9,13 +8,9 @@ value: true

exports.default = DropIndicator;
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function DropIndicator(_ref) {
var dropPosition = _ref.dropPosition,
dropLevelOffset = _ref.dropLevelOffset,
indent = _ref.indent;
dropLevelOffset = _ref.dropLevelOffset,
indent = _ref.indent;
var style = {

@@ -28,3 +23,2 @@ pointerEvents: 'none',

};
switch (dropPosition) {

@@ -35,3 +29,2 @@ case -1:

break;
case 1:

@@ -41,3 +34,2 @@ style.bottom = 0;

break;
case 0:

@@ -48,3 +40,2 @@ style.bottom = 0;

}
return /*#__PURE__*/React.createElement("div", {

@@ -51,0 +42,0 @@ style: style

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,24 +9,16 @@ value: true

exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var Indent = function Indent(_ref) {
var prefixCls = _ref.prefixCls,
level = _ref.level,
isStart = _ref.isStart,
isEnd = _ref.isEnd;
level = _ref.level,
isStart = _ref.isStart,
isEnd = _ref.isEnd;
var baseClassName = "".concat(prefixCls, "-indent-unit");
var list = [];
for (var i = 0; i < level; i += 1) {
var _classNames;
list.push( /*#__PURE__*/React.createElement("span", {

@@ -39,3 +29,2 @@ key: i,

}
return /*#__PURE__*/React.createElement("span", {

@@ -46,5 +35,3 @@ "aria-hidden": "true",

};
var _default = /*#__PURE__*/React.memo(Indent);
exports.default = _default;
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -15,8 +14,5 @@ value: true

exports.default = void 0;
var _Tree = _interopRequireDefault(require("./Tree"));
var _TreeNode = _interopRequireDefault(require("./TreeNode"));
var _default = _Tree.default;
exports.default = _default;

@@ -18,8 +18,8 @@ import * as React from 'react';

/** Provide a wrap type define for developer to wrap with customize fieldNames data type */
export declare type FieldDataNode<T, ChildFieldName extends string = 'children'> = BasicDataNode & T & Partial<Record<ChildFieldName, FieldDataNode<T, ChildFieldName>[]>>;
export declare type DataNode = FieldDataNode<{
export type FieldDataNode<T, ChildFieldName extends string = 'children'> = BasicDataNode & T & Partial<Record<ChildFieldName, FieldDataNode<T, ChildFieldName>[]>>;
export type DataNode = FieldDataNode<{
key: string | number;
title?: React.ReactNode | ((data: DataNode) => React.ReactNode);
}>;
export declare type EventDataNode<TreeDataType> = {
export type EventDataNode<TreeDataType> = {
key: React.Key;

@@ -38,5 +38,5 @@ expanded: boolean;

} & TreeDataType & BasicDataNode;
export declare type IconType = React.ReactNode | ((props: TreeNodeProps) => React.ReactNode);
export declare type Key = string | number;
export declare type NodeElement = React.ReactElement<TreeNodeProps> & {
export type IconType = React.ReactNode | ((props: TreeNodeProps) => React.ReactNode);
export type Key = string | number;
export type NodeElement = React.ReactElement<TreeNodeProps> & {
selectHandle?: HTMLSpanElement;

@@ -47,3 +47,3 @@ type: {

};
export declare type NodeInstance<TreeDataType extends BasicDataNode = DataNode> = React.Component<TreeNodeProps<TreeDataType>> & {
export type NodeInstance<TreeDataType extends BasicDataNode = DataNode> = React.Component<TreeNodeProps<TreeDataType>> & {
selectHandle?: HTMLSpanElement;

@@ -76,5 +76,5 @@ };

}
export declare type GetKey<RecordType> = (record: RecordType, index?: number) => Key;
export declare type GetCheckDisabled<RecordType> = (record: RecordType) => boolean;
export declare type Direction = 'ltr' | 'rtl' | undefined;
export type GetKey<RecordType> = (record: RecordType, index?: number) => Key;
export type GetCheckDisabled<RecordType> = (record: RecordType) => boolean;
export type Direction = 'ltr' | 'rtl' | undefined;
export interface FieldNames {

@@ -81,0 +81,0 @@ title?: string;

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,49 +9,33 @@ value: true

exports.default = void 0;
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcMotion = _interopRequireDefault(require("rc-motion"));
var _TreeNode = _interopRequireDefault(require("./TreeNode"));
var _treeUtil = require("./utils/treeUtil");
var _contextTypes = require("./contextTypes");
var _excluded = ["className", "style", "motion", "motionNodes", "motionType", "onMotionStart", "onMotionEnd", "active", "treeNodeRequiredProps"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var MotionTreeNode = function MotionTreeNode(_ref, ref) {
var className = _ref.className,
style = _ref.style,
motion = _ref.motion,
motionNodes = _ref.motionNodes,
motionType = _ref.motionType,
onOriginMotionStart = _ref.onMotionStart,
onOriginMotionEnd = _ref.onMotionEnd,
active = _ref.active,
treeNodeRequiredProps = _ref.treeNodeRequiredProps,
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
style = _ref.style,
motion = _ref.motion,
motionNodes = _ref.motionNodes,
motionType = _ref.motionType,
onOriginMotionStart = _ref.onMotionStart,
onOriginMotionEnd = _ref.onMotionEnd,
active = _ref.active,
treeNodeRequiredProps = _ref.treeNodeRequiredProps,
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var _React$useState = React.useState(true),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
visible = _React$useState2[0],
setVisible = _React$useState2[1];
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
visible = _React$useState2[0],
setVisible = _React$useState2[1];
var _React$useContext = React.useContext(_contextTypes.TreeContext),
prefixCls = _React$useContext.prefixCls;
prefixCls = _React$useContext.prefixCls;
var motionedRef = React.useRef(false);
var onMotionEnd = function onMotionEnd() {

@@ -63,6 +45,4 @@ if (!motionedRef.current) {

}
motionedRef.current = true;
};
(0, React.useEffect)(function () {

@@ -78,3 +58,2 @@ if (motionNodes && motionType === 'hide' && visible) {

}
return function () {

@@ -86,3 +65,2 @@ if (motionNodes) {

}, []);
if (motionNodes) {

@@ -98,3 +76,3 @@ return /*#__PURE__*/React.createElement(_rcMotion.default, (0, _extends2.default)({

var motionClassName = _ref2.className,
motionStyle = _ref2.style;
motionStyle = _ref2.style;
return /*#__PURE__*/React.createElement("div", {

@@ -105,7 +83,7 @@ ref: motionRef,

}, motionNodes.map(function (treeNode) {
var restProps = (0, _extends2.default)({}, treeNode.data),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
var restProps = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(treeNode.data), treeNode.data)),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
delete restProps.children;

@@ -124,3 +102,2 @@ var treeNodeProps = (0, _treeUtil.getTreeNodeProps)(key, treeNodeRequiredProps);

}
return /*#__PURE__*/React.createElement(_TreeNode.default, (0, _extends2.default)({

@@ -134,3 +111,2 @@ domRef: ref,

};
MotionTreeNode.displayName = 'MotionTreeNode';

@@ -137,0 +113,0 @@ var RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);

@@ -5,3 +5,3 @@ /**

import * as React from 'react';
import { FlattenNode, Key, DataEntity, DataNode, ScrollTo } from './interface';
import { BasicDataNode, FlattenNode, Key, DataEntity, DataNode, ScrollTo } from './interface';
export declare const MOTION_KEY: string;

@@ -13,3 +13,3 @@ export declare const MotionEntity: DataEntity;

}
interface NodeListProps<TreeDataType> {
interface NodeListProps<TreeDataType extends BasicDataNode> {
prefixCls: string;

@@ -16,0 +16,0 @@ style: React.CSSProperties;

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -12,25 +10,14 @@ value: true

exports.getMinimumRangeTransitionRange = getMinimumRangeTransitionRange;
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _rcVirtualList = _interopRequireDefault(require("rc-virtual-list"));
var _MotionTreeNode = _interopRequireDefault(require("./MotionTreeNode"));
var _diffUtil = require("./utils/diffUtil");
var _treeUtil = require("./utils/treeUtil");
var _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"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var HIDDEN_STYLE = {

@@ -46,5 +33,3 @@ width: 0,

};
var noop = function noop() {};
var MOTION_KEY = "RC_TREE_MOTION_".concat(Math.random());

@@ -71,3 +56,2 @@ exports.MOTION_KEY = MOTION_KEY;

key: MOTION_KEY,
/** Hold empty list here since we do not use it */

@@ -80,3 +64,2 @@ isStart: [],

*/
function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {

@@ -86,16 +69,12 @@ if (virtual === false || !height) {

}
return list.slice(0, Math.ceil(height / itemHeight) + 1);
}
function itemKey(item) {
var key = item.key,
pos = item.pos;
pos = item.pos;
return (0, _treeUtil.getKey)(key, pos);
}
function getAccessibilityPath(item) {
var path = String(item.data.key);
var current = item;
while (current.parent) {

@@ -105,38 +84,36 @@ current = current.parent;

}
return path;
}
var NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {
var prefixCls = props.prefixCls,
data = props.data,
selectable = props.selectable,
checkable = props.checkable,
expandedKeys = props.expandedKeys,
selectedKeys = props.selectedKeys,
checkedKeys = props.checkedKeys,
loadedKeys = props.loadedKeys,
loadingKeys = props.loadingKeys,
halfCheckedKeys = props.halfCheckedKeys,
keyEntities = props.keyEntities,
disabled = props.disabled,
dragging = props.dragging,
dragOverNodeKey = props.dragOverNodeKey,
dropPosition = props.dropPosition,
motion = props.motion,
height = props.height,
itemHeight = props.itemHeight,
virtual = props.virtual,
focusable = props.focusable,
activeItem = props.activeItem,
focused = props.focused,
tabIndex = props.tabIndex,
onKeyDown = props.onKeyDown,
onFocus = props.onFocus,
onBlur = props.onBlur,
onActiveChange = props.onActiveChange,
onListChangeStart = props.onListChangeStart,
onListChangeEnd = props.onListChangeEnd,
domProps = (0, _objectWithoutProperties2.default)(props, _excluded); // =============================== Ref ================================
data = props.data,
selectable = props.selectable,
checkable = props.checkable,
expandedKeys = props.expandedKeys,
selectedKeys = props.selectedKeys,
checkedKeys = props.checkedKeys,
loadedKeys = props.loadedKeys,
loadingKeys = props.loadingKeys,
halfCheckedKeys = props.halfCheckedKeys,
keyEntities = props.keyEntities,
disabled = props.disabled,
dragging = props.dragging,
dragOverNodeKey = props.dragOverNodeKey,
dropPosition = props.dropPosition,
motion = props.motion,
height = props.height,
itemHeight = props.itemHeight,
virtual = props.virtual,
focusable = props.focusable,
activeItem = props.activeItem,
focused = props.focused,
tabIndex = props.tabIndex,
onKeyDown = props.onKeyDown,
onFocus = props.onFocus,
onBlur = props.onBlur,
onActiveChange = props.onActiveChange,
onListChangeStart = props.onListChangeStart,
onListChangeEnd = props.onListChangeEnd,
domProps = (0, _objectWithoutProperties2.default)(props, _excluded);
// =============================== Ref ================================
var listRef = React.useRef(null);

@@ -153,33 +130,27 @@ var indentMeasurerRef = React.useRef(null);

};
}); // ============================== Motion ==============================
});
// ============================== Motion ==============================
var _React$useState = React.useState(expandedKeys),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
prevExpandedKeys = _React$useState2[0],
setPrevExpandedKeys = _React$useState2[1];
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
prevExpandedKeys = _React$useState2[0],
setPrevExpandedKeys = _React$useState2[1];
var _React$useState3 = React.useState(data),
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
prevData = _React$useState4[0],
setPrevData = _React$useState4[1];
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
prevData = _React$useState4[0],
setPrevData = _React$useState4[1];
var _React$useState5 = React.useState(data),
_React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
transitionData = _React$useState6[0],
setTransitionData = _React$useState6[1];
_React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
transitionData = _React$useState6[0],
setTransitionData = _React$useState6[1];
var _React$useState7 = React.useState([]),
_React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
transitionRange = _React$useState8[0],
setTransitionRange = _React$useState8[1];
_React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
transitionRange = _React$useState8[0],
setTransitionRange = _React$useState8[1];
var _React$useState9 = React.useState(null),
_React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
motionType = _React$useState10[0],
setMotionType = _React$useState10[1]; // When motion end but data change, this will makes data back to previous one
_React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
motionType = _React$useState10[0],
setMotionType = _React$useState10[1];
// When motion end but data change, this will makes data back to previous one
var dataRef = React.useRef(data);
dataRef.current = data;
function onMotionEnd() {

@@ -192,9 +163,7 @@ var latestData = dataRef.current;

onListChangeEnd();
} // Do animation if expanded keys changed
}
// Do animation if expanded keys changed
React.useEffect(function () {
setPrevExpandedKeys(expandedKeys);
var diffExpanded = (0, _diffUtil.findExpandedKeys)(prevExpandedKeys, expandedKeys);
if (diffExpanded.key !== null) {

@@ -217,9 +186,5 @@ if (diffExpanded.add) {

});
var _rangeNodes = getMinimumRangeTransitionRange((0, _diffUtil.getExpandRange)(data, prevData, diffExpanded.key), virtual, height, itemHeight);
var _newTransitionData = data.slice();
_newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);
setTransitionData(_newTransitionData);

@@ -234,4 +199,4 @@ setTransitionRange(_rangeNodes);

}
}, [expandedKeys, data]); // We should clean up motion if is changed by dragging
}, [expandedKeys, data]);
// We should clean up motion if is changed by dragging
React.useEffect(function () {

@@ -295,4 +260,4 @@ if (!dragging) {

return !originSet.has(item);
}); // Motion node is not render. Skip motion
});
// Motion node is not render. Skip motion
if (restList.some(function (item) {

@@ -306,7 +271,7 @@ return itemKey(item) === MOTION_KEY;

var pos = treeNode.pos,
restProps = (0, _extends2.default)({}, treeNode.data),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
restProps = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(treeNode.data), treeNode.data)),
title = treeNode.title,
key = treeNode.key,
isStart = treeNode.isStart,
isEnd = treeNode.isEnd;
var mergedKey = (0, _treeUtil.getKey)(key, pos);

@@ -313,0 +278,0 @@ delete restProps.key;

@@ -23,9 +23,9 @@ import * as React from 'react';

}
export declare type AllowDrop<TreeDataType extends BasicDataNode = DataNode> = (options: AllowDropOptions<TreeDataType>) => boolean;
export declare type DraggableFn = (node: DataNode) => boolean;
export declare type DraggableConfig = {
export type AllowDrop<TreeDataType extends BasicDataNode = DataNode> = (options: AllowDropOptions<TreeDataType>) => boolean;
export type DraggableFn = (node: DataNode) => boolean;
export type DraggableConfig = {
icon?: React.ReactNode | false;
nodeDraggable?: DraggableFn;
};
export declare type ExpandAction = false | 'click' | 'doubleClick';
export type ExpandAction = false | 'click' | 'doubleClick';
export interface TreeProps<TreeDataType extends BasicDataNode = DataNode> {

@@ -36,3 +36,3 @@ prefixCls: string;

focusable?: boolean;
activeKey?: Key;
activeKey?: Key | null;
tabIndex?: number;

@@ -157,3 +157,3 @@ children?: React.ReactNode;

focused: boolean;
activeKey: Key;
activeKey: Key | null;
listChanging: boolean;

@@ -241,3 +241,3 @@ prevProps: TreeProps;

onListChangeEnd: () => void;
onActiveChange: (newActiveKey: Key) => void;
onActiveChange: (newActiveKey: Key | null) => void;
getActiveItem: () => FlattenNode<TreeDataType>;

@@ -244,0 +244,0 @@ offsetActiveKey: (offset: number) => void;

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof3 = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,69 +9,39 @@ value: true

exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
var React = _interopRequireWildcard(require("react"));
var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
var _pickAttrs = _interopRequireDefault(require("rc-util/lib/pickAttrs"));
var _classnames = _interopRequireDefault(require("classnames"));
var _contextTypes = require("./contextTypes");
var _util = require("./util");
var _treeUtil = require("./utils/treeUtil");
var _NodeList = _interopRequireWildcard(require("./NodeList"));
var _TreeNode = _interopRequireDefault(require("./TreeNode"));
var _conductUtil = require("./utils/conductUtil");
var _DropIndicator = _interopRequireDefault(require("./DropIndicator"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html
// Fully accessibility support
var MAX_RETRY_TIMES = 10;
var Tree = /*#__PURE__*/function (_React$Component) {
(0, _inherits2.default)(Tree, _React$Component);
var _super = (0, _createSuper2.default)(Tree);
function Tree() {
var _this;
(0, _classCallCheck2.default)(this, Tree);
for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
_args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(_args));

@@ -119,7 +87,6 @@ _this.destroyed = false;

_this.listRef = /*#__PURE__*/React.createRef();
_this.onNodeDragStart = function (event, node) {
var _this$state = _this.state,
expandedKeys = _this$state.expandedKeys,
keyEntities = _this$state.keyEntities;
expandedKeys = _this$state.expandedKeys,
keyEntities = _this$state.keyEntities;
var onDragStart = _this.props.onDragStart;

@@ -133,3 +100,2 @@ var eventKey = node.props.eventKey;

var newExpandedKeys = (0, _util.arrDel)(expandedKeys, eventKey);
_this.setState({

@@ -140,5 +106,3 @@ draggingNodeKey: eventKey,

});
_this.setExpandedKeys(newExpandedKeys);
window.addEventListener('dragend', _this.onWindowDragEnd);

@@ -150,59 +114,50 @@ onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({

};
_this.onNodeDragEnter = function (event, node) {
var _this$state2 = _this.state,
expandedKeys = _this$state2.expandedKeys,
keyEntities = _this$state2.keyEntities,
dragChildrenKeys = _this$state2.dragChildrenKeys,
flattenNodes = _this$state2.flattenNodes,
indent = _this$state2.indent;
expandedKeys = _this$state2.expandedKeys,
keyEntities = _this$state2.keyEntities,
dragChildrenKeys = _this$state2.dragChildrenKeys,
flattenNodes = _this$state2.flattenNodes,
indent = _this$state2.indent;
var _this$props = _this.props,
onDragEnter = _this$props.onDragEnter,
onExpand = _this$props.onExpand,
allowDrop = _this$props.allowDrop,
direction = _this$props.direction;
onDragEnter = _this$props.onDragEnter,
onExpand = _this$props.onExpand,
allowDrop = _this$props.allowDrop,
direction = _this$props.direction;
var _node$props = node.props,
pos = _node$props.pos,
eventKey = _node$props.eventKey;
pos = _node$props.pos,
eventKey = _node$props.eventKey;
var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
dragNode = _assertThisInitialize.dragNode; // record the key of node which is latest entered, used in dragleave event.
dragNode = _assertThisInitialize.dragNode;
// record the key of node which is latest entered, used in dragleave event.
if (_this.currentMouseOverDroppableNodeKey !== eventKey) {
_this.currentMouseOverDroppableNodeKey = eventKey;
}
if (!dragNode) {
_this.resetDragState();
return;
}
var _calcDropPosition = (0, _util.calcDropPosition)(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),
dropPosition = _calcDropPosition.dropPosition,
dropLevelOffset = _calcDropPosition.dropLevelOffset,
dropTargetKey = _calcDropPosition.dropTargetKey,
dropContainerKey = _calcDropPosition.dropContainerKey,
dropTargetPos = _calcDropPosition.dropTargetPos,
dropAllowed = _calcDropPosition.dropAllowed,
dragOverNodeKey = _calcDropPosition.dragOverNodeKey;
if ( // don't allow drop inside its children
dragChildrenKeys.indexOf(dropTargetKey) !== -1 || // don't allow drop when drop is not allowed caculated by calcDropPosition
dropPosition = _calcDropPosition.dropPosition,
dropLevelOffset = _calcDropPosition.dropLevelOffset,
dropTargetKey = _calcDropPosition.dropTargetKey,
dropContainerKey = _calcDropPosition.dropContainerKey,
dropTargetPos = _calcDropPosition.dropTargetPos,
dropAllowed = _calcDropPosition.dropAllowed,
dragOverNodeKey = _calcDropPosition.dragOverNodeKey;
if (
// don't allow drop inside its children
dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||
// don't allow drop when drop is not allowed caculated by calcDropPosition
!dropAllowed) {
_this.resetDragState();
return;
} // Side effect for delay drag
}
// Side effect for delay drag
if (!_this.delayedDragEnterLogic) {
_this.delayedDragEnterLogic = {};
}
Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {
clearTimeout(_this.delayedDragEnterLogic[key]);
});
if (dragNode.props.eventKey !== node.props.eventKey) {

@@ -218,11 +173,8 @@ // hoist expand logic here

var entity = keyEntities[node.props.eventKey];
if (entity && (entity.children || []).length) {
newExpandedKeys = (0, _util.arrAdd)(expandedKeys, node.props.eventKey);
}
if (!('expandedKeys' in _this.props)) {
_this.setExpandedKeys(newExpandedKeys);
}
onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {

@@ -234,12 +186,9 @@ node: (0, _treeUtil.convertNodePropsToEventData)(node.props),

}, 800);
} // Skip if drag node is self
}
// Skip if drag node is self
if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {
_this.resetDragState();
return;
} // Update drag over node and drag state
}
// Update drag over node and drag state
_this.setState({

@@ -254,3 +203,2 @@ dragOverNodeKey: dragOverNodeKey,

});
onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({

@@ -262,31 +210,26 @@ event: event,

};
_this.onNodeDragOver = function (event, node) {
var _this$state3 = _this.state,
dragChildrenKeys = _this$state3.dragChildrenKeys,
flattenNodes = _this$state3.flattenNodes,
keyEntities = _this$state3.keyEntities,
expandedKeys = _this$state3.expandedKeys,
indent = _this$state3.indent;
dragChildrenKeys = _this$state3.dragChildrenKeys,
flattenNodes = _this$state3.flattenNodes,
keyEntities = _this$state3.keyEntities,
expandedKeys = _this$state3.expandedKeys,
indent = _this$state3.indent;
var _this$props2 = _this.props,
onDragOver = _this$props2.onDragOver,
allowDrop = _this$props2.allowDrop,
direction = _this$props2.direction;
onDragOver = _this$props2.onDragOver,
allowDrop = _this$props2.allowDrop,
direction = _this$props2.direction;
var _assertThisInitialize2 = (0, _assertThisInitialized2.default)(_this),
dragNode = _assertThisInitialize2.dragNode;
dragNode = _assertThisInitialize2.dragNode;
if (!dragNode) {
return;
}
var _calcDropPosition2 = (0, _util.calcDropPosition)(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),
dropPosition = _calcDropPosition2.dropPosition,
dropLevelOffset = _calcDropPosition2.dropLevelOffset,
dropTargetKey = _calcDropPosition2.dropTargetKey,
dropContainerKey = _calcDropPosition2.dropContainerKey,
dropAllowed = _calcDropPosition2.dropAllowed,
dropTargetPos = _calcDropPosition2.dropTargetPos,
dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;
dropPosition = _calcDropPosition2.dropPosition,
dropLevelOffset = _calcDropPosition2.dropLevelOffset,
dropTargetKey = _calcDropPosition2.dropTargetKey,
dropContainerKey = _calcDropPosition2.dropContainerKey,
dropAllowed = _calcDropPosition2.dropAllowed,
dropTargetPos = _calcDropPosition2.dropTargetPos,
dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;
if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {

@@ -296,5 +239,4 @@ // don't allow drop inside its children

return;
} // Update drag position
}
// Update drag position
if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {

@@ -315,3 +257,2 @@ 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)) {

}
onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({

@@ -322,3 +263,2 @@ event: event,

};
_this.onNodeDragLeave = function (event, node) {

@@ -329,6 +269,4 @@ // if it is outside the droppable area

_this.resetDragState();
_this.currentMouseOverDroppableNodeKey = null;
}
var onDragLeave = _this.props.onDragLeave;

@@ -340,18 +278,12 @@ onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({

};
_this.onWindowDragEnd = function (event) {
_this.onNodeDragEnd(event, null, true);
window.removeEventListener('dragend', _this.onWindowDragEnd);
};
_this.onNodeDragEnd = function (event, node) {
var onDragEnd = _this.props.onDragEnd;
_this.setState({
dragOverNodeKey: null
});
_this.cleanDragState();
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({

@@ -364,22 +296,17 @@ event: event,

};
_this.onNodeDrop = function (event, node) {
var _this$getActiveItem;
var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var _this$state4 = _this.state,
dragChildrenKeys = _this$state4.dragChildrenKeys,
dropPosition = _this$state4.dropPosition,
dropTargetKey = _this$state4.dropTargetKey,
dropTargetPos = _this$state4.dropTargetPos,
dropAllowed = _this$state4.dropAllowed;
dragChildrenKeys = _this$state4.dragChildrenKeys,
dropPosition = _this$state4.dropPosition,
dropTargetKey = _this$state4.dropTargetKey,
dropTargetPos = _this$state4.dropTargetPos,
dropAllowed = _this$state4.dropAllowed;
if (!dropAllowed) return;
var onDrop = _this.props.onDrop;
_this.setState({
dragOverNodeKey: null
});
_this.cleanDragState();
if (dropTargetKey === null) return;

@@ -401,13 +328,9 @@ var abstractDropNodeProps = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, (0, _treeUtil.getTreeNodeProps)(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {

};
if (!outsideTree) {
onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);
}
_this.dragNode = null;
};
_this.cleanDragState = function () {
var draggingNodeKey = _this.state.draggingNodeKey;
if (draggingNodeKey !== null) {

@@ -424,19 +347,15 @@ _this.setState({

}
_this.dragStartMousePosition = null;
_this.currentMouseOverDroppableNodeKey = null;
};
_this.triggerExpandActionExpand = function (e, treeNode) {
var _this$state5 = _this.state,
expandedKeys = _this$state5.expandedKeys,
flattenNodes = _this$state5.flattenNodes;
expandedKeys = _this$state5.expandedKeys,
flattenNodes = _this$state5.flattenNodes;
var expanded = treeNode.expanded,
key = treeNode.key,
isLeaf = treeNode.isLeaf;
key = treeNode.key,
isLeaf = treeNode.isLeaf;
if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {
return;
}
var node = flattenNodes.filter(function (nodeItem) {

@@ -448,44 +367,35 @@ return nodeItem.key === key;

}));
_this.setExpandedKeys(expanded ? (0, _util.arrDel)(expandedKeys, key) : (0, _util.arrAdd)(expandedKeys, key));
_this.onNodeExpand(e, eventNode);
};
_this.onNodeClick = function (e, treeNode) {
var _this$props3 = _this.props,
onClick = _this$props3.onClick,
expandAction = _this$props3.expandAction;
onClick = _this$props3.onClick,
expandAction = _this$props3.expandAction;
if (expandAction === 'click') {
_this.triggerExpandActionExpand(e, treeNode);
}
onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);
};
_this.onNodeDoubleClick = function (e, treeNode) {
var _this$props4 = _this.props,
onDoubleClick = _this$props4.onDoubleClick,
expandAction = _this$props4.expandAction;
onDoubleClick = _this$props4.onDoubleClick,
expandAction = _this$props4.expandAction;
if (expandAction === 'doubleClick') {
_this.triggerExpandActionExpand(e, treeNode);
}
onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);
};
_this.onNodeSelect = function (e, treeNode) {
var selectedKeys = _this.state.selectedKeys;
var _this$state6 = _this.state,
keyEntities = _this$state6.keyEntities,
fieldNames = _this$state6.fieldNames;
keyEntities = _this$state6.keyEntities,
fieldNames = _this$state6.fieldNames;
var _this$props5 = _this.props,
onSelect = _this$props5.onSelect,
multiple = _this$props5.multiple;
onSelect = _this$props5.onSelect,
multiple = _this$props5.multiple;
var selected = treeNode.selected;
var key = treeNode[fieldNames.key];
var targetSelected = !selected; // Update selected keys
var targetSelected = !selected;
// Update selected keys
if (!targetSelected) {

@@ -497,5 +407,4 @@ selectedKeys = (0, _util.arrDel)(selectedKeys, key);

selectedKeys = (0, _util.arrAdd)(selectedKeys, key);
} // [Legacy] Not found related usage in doc or upper libs
}
// [Legacy] Not found related usage in doc or upper libs
var selectedNodes = selectedKeys.map(function (selectedKey) {

@@ -508,7 +417,5 @@ var entity = keyEntities[selectedKey];

});
_this.setUncontrolledState({
selectedKeys: selectedKeys
});
onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {

@@ -522,13 +429,12 @@ event: 'select',

};
_this.onNodeCheck = function (e, treeNode, checked) {
var _this$state7 = _this.state,
keyEntities = _this$state7.keyEntities,
oriCheckedKeys = _this$state7.checkedKeys,
oriHalfCheckedKeys = _this$state7.halfCheckedKeys;
keyEntities = _this$state7.keyEntities,
oriCheckedKeys = _this$state7.checkedKeys,
oriHalfCheckedKeys = _this$state7.halfCheckedKeys;
var _this$props6 = _this.props,
checkStrictly = _this$props6.checkStrictly,
onCheck = _this$props6.onCheck;
var key = treeNode.key; // Prepare trigger arguments
checkStrictly = _this$props6.checkStrictly,
onCheck = _this$props6.onCheck;
var key = treeNode.key;
// Prepare trigger arguments
var checkedObj;

@@ -541,3 +447,2 @@ var eventObj = {

};
if (checkStrictly) {

@@ -557,3 +462,2 @@ var checkedKeys = checked ? (0, _util.arrAdd)(oriCheckedKeys, key) : (0, _util.arrDel)(oriCheckedKeys, key);

});
_this.setUncontrolledState({

@@ -565,10 +469,8 @@ checkedKeys: checkedKeys

var _conductCheck = (0, _conductUtil.conductCheck)([].concat((0, _toConsumableArray2.default)(oriCheckedKeys), [key]), true, keyEntities),
_checkedKeys = _conductCheck.checkedKeys,
_halfCheckedKeys = _conductCheck.halfCheckedKeys; // If remove, we do it again to correction
_checkedKeys = _conductCheck.checkedKeys,
_halfCheckedKeys = _conductCheck.halfCheckedKeys;
// If remove, we do it again to correction
if (!checked) {
var keySet = new Set(_checkedKeys);
keySet.delete(key);
var _conductCheck2 = (0, _conductUtil.conductCheck)(Array.from(keySet), {

@@ -578,13 +480,10 @@ checked: false,

}, keyEntities);
_checkedKeys = _conductCheck2.checkedKeys;
_halfCheckedKeys = _conductCheck2.halfCheckedKeys;
}
checkedObj = _checkedKeys; // [Legacy] This is used for `rc-tree-select`
checkedObj = _checkedKeys;
// [Legacy] This is used for `rc-tree-select`
eventObj.checkedNodes = [];
eventObj.checkedNodesPositions = [];
eventObj.halfCheckedKeys = _halfCheckedKeys;
_checkedKeys.forEach(function (checkedKey) {

@@ -594,3 +493,3 @@ var entity = keyEntities[checkedKey];

var node = entity.node,
pos = entity.pos;
pos = entity.pos;
eventObj.checkedNodes.push(node);

@@ -602,3 +501,2 @@ eventObj.checkedNodesPositions.push({

});
_this.setUncontrolledState({

@@ -610,6 +508,4 @@ checkedKeys: _checkedKeys

}
onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);
};
_this.onNodeLoad = function (treeNode) {

@@ -621,20 +517,18 @@ var key = treeNode.key;

var _ref$loadedKeys = _ref.loadedKeys,
loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,
_ref$loadingKeys = _ref.loadingKeys,
loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;
loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,
_ref$loadingKeys = _ref.loadingKeys,
loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;
var _this$props7 = _this.props,
loadData = _this$props7.loadData,
onLoad = _this$props7.onLoad;
loadData = _this$props7.loadData,
onLoad = _this$props7.onLoad;
if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {
return null;
} // Process load data
}
// Process load data
var promise = loadData(treeNode);
promise.then(function () {
var currentLoadedKeys = _this.state.loadedKeys;
var newLoadedKeys = (0, _util.arrAdd)(currentLoadedKeys, key); // onLoad should trigger before internal setState to avoid `loadData` trigger twice.
var newLoadedKeys = (0, _util.arrAdd)(currentLoadedKeys, key);
// onLoad should trigger before internal setState to avoid `loadData` trigger twice.
// https://github.com/ant-design/ant-design/issues/12464
onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {

@@ -644,7 +538,5 @@ event: 'load',

});
_this.setUncontrolledState({
loadedKeys: newLoadedKeys
});
_this.setState(function (prevState) {

@@ -655,3 +547,2 @@ return {

});
resolve();

@@ -663,18 +554,13 @@ }).catch(function (e) {

};
}); // If exceed max retry times, we give up retry
});
// If exceed max retry times, we give up retry
_this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;
if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {
var currentLoadedKeys = _this.state.loadedKeys;
(0, _warning.default)(false, 'Retry for `loadData` many times but still failed. No more retry.');
_this.setUncontrolledState({
loadedKeys: (0, _util.arrAdd)(currentLoadedKeys, key)
});
resolve();
}
reject(e);

@@ -686,8 +572,7 @@ });

});
}); // Not care warning if we ignore this
});
// Not care warning if we ignore this
loadPromise.catch(function () {});
return loadPromise;
};
_this.onNodeMouseEnter = function (event, node) {

@@ -700,3 +585,2 @@ var onMouseEnter = _this.props.onMouseEnter;

};
_this.onNodeMouseLeave = function (event, node) {

@@ -709,6 +593,4 @@ var onMouseLeave = _this.props.onMouseLeave;

};
_this.onNodeContextMenu = function (event, node) {
var onRightClick = _this.props.onRightClick;
if (onRightClick) {

@@ -722,44 +604,34 @@ event.preventDefault();

};
_this.onFocus = function () {
var onFocus = _this.props.onFocus;
_this.setState({
focused: true
});
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);
};
_this.onBlur = function () {
var onBlur = _this.props.onBlur;
_this.setState({
focused: false
});
_this.onActiveChange(null);
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);
};
_this.getTreeNodeRequiredProps = function () {
var _this$state8 = _this.state,
expandedKeys = _this$state8.expandedKeys,
selectedKeys = _this$state8.selectedKeys,
loadedKeys = _this$state8.loadedKeys,
loadingKeys = _this$state8.loadingKeys,
checkedKeys = _this$state8.checkedKeys,
halfCheckedKeys = _this$state8.halfCheckedKeys,
dragOverNodeKey = _this$state8.dragOverNodeKey,
dropPosition = _this$state8.dropPosition,
keyEntities = _this$state8.keyEntities;
expandedKeys = _this$state8.expandedKeys,
selectedKeys = _this$state8.selectedKeys,
loadedKeys = _this$state8.loadedKeys,
loadingKeys = _this$state8.loadingKeys,
checkedKeys = _this$state8.checkedKeys,
halfCheckedKeys = _this$state8.halfCheckedKeys,
dragOverNodeKey = _this$state8.dragOverNodeKey,
dropPosition = _this$state8.dropPosition,
keyEntities = _this$state8.keyEntities;
return {

@@ -777,9 +649,7 @@ expandedKeys: expandedKeys || [],

};
_this.setExpandedKeys = function (expandedKeys) {
var _this$state9 = _this.state,
treeData = _this$state9.treeData,
fieldNames = _this$state9.fieldNames;
treeData = _this$state9.treeData,
fieldNames = _this$state9.fieldNames;
var flattenNodes = (0, _treeUtil.flattenTreeData)(treeData, expandedKeys, fieldNames);
_this.setUncontrolledState({

@@ -790,23 +660,20 @@ expandedKeys: expandedKeys,

};
_this.onNodeExpand = function (e, treeNode) {
var expandedKeys = _this.state.expandedKeys;
var _this$state10 = _this.state,
listChanging = _this$state10.listChanging,
fieldNames = _this$state10.fieldNames;
listChanging = _this$state10.listChanging,
fieldNames = _this$state10.fieldNames;
var _this$props8 = _this.props,
onExpand = _this$props8.onExpand,
loadData = _this$props8.loadData;
onExpand = _this$props8.onExpand,
loadData = _this$props8.loadData;
var expanded = treeNode.expanded;
var key = treeNode[fieldNames.key]; // Do nothing when motion is in progress
var key = treeNode[fieldNames.key];
// Do nothing when motion is in progress
if (listChanging) {
return;
} // Update selected keys
}
// Update selected keys
var index = expandedKeys.indexOf(key);
var targetExpanded = !expanded;
(0, _warning.default)(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');
if (targetExpanded) {

@@ -817,5 +684,3 @@ expandedKeys = (0, _util.arrAdd)(expandedKeys, key);

}
_this.setExpandedKeys(expandedKeys);
onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {

@@ -825,7 +690,6 @@ node: treeNode,

nativeEvent: e.nativeEvent
}); // Async Load data
});
// Async Load data
if (targetExpanded && loadData) {
var loadPromise = _this.onNodeLoad(treeNode);
if (loadPromise) {

@@ -835,3 +699,2 @@ loadPromise.then(function () {

var newFlattenTreeData = (0, _treeUtil.flattenTreeData)(_this.state.treeData, expandedKeys, fieldNames);
_this.setUncontrolledState({

@@ -843,3 +706,2 @@ flattenNodes: newFlattenTreeData

var expandedKeysToRestore = (0, _util.arrDel)(currentExpandedKeys, key);
_this.setExpandedKeys(expandedKeysToRestore);

@@ -850,3 +712,2 @@ });

};
_this.onListChangeStart = function () {

@@ -857,3 +718,2 @@ _this.setUncontrolledState({

};
_this.onListChangeEnd = function () {

@@ -866,15 +726,11 @@ setTimeout(function () {

};
_this.onActiveChange = function (newActiveKey) {
var activeKey = _this.state.activeKey;
var onActiveChange = _this.props.onActiveChange;
if (activeKey === newActiveKey) {
return;
}
_this.setState({
activeKey: newActiveKey
});
if (newActiveKey !== null) {

@@ -885,15 +741,11 @@ _this.scrollTo({

}
onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);
};
_this.getActiveItem = function () {
var _this$state11 = _this.state,
activeKey = _this$state11.activeKey,
flattenNodes = _this$state11.flattenNodes;
activeKey = _this$state11.activeKey,
flattenNodes = _this$state11.flattenNodes;
if (activeKey === null) {
return null;
}
return flattenNodes.find(function (_ref2) {

@@ -904,22 +756,18 @@ var key = _ref2.key;

};
_this.offsetActiveKey = function (offset) {
var _this$state12 = _this.state,
flattenNodes = _this$state12.flattenNodes,
activeKey = _this$state12.activeKey;
flattenNodes = _this$state12.flattenNodes,
activeKey = _this$state12.activeKey;
var index = flattenNodes.findIndex(function (_ref3) {
var key = _ref3.key;
return key === activeKey;
}); // Align with index
});
// Align with index
if (index === -1 && offset < 0) {
index = flattenNodes.length;
}
index = (index + offset + flattenNodes.length) % flattenNodes.length;
var item = flattenNodes[index];
if (item) {
var key = item.key;
_this.onActiveChange(key);

@@ -930,14 +778,13 @@ } else {

};
_this.onKeyDown = function (event) {
var _this$state13 = _this.state,
activeKey = _this$state13.activeKey,
expandedKeys = _this$state13.expandedKeys,
checkedKeys = _this$state13.checkedKeys,
fieldNames = _this$state13.fieldNames;
activeKey = _this$state13.activeKey,
expandedKeys = _this$state13.expandedKeys,
checkedKeys = _this$state13.checkedKeys,
fieldNames = _this$state13.fieldNames;
var _this$props9 = _this.props,
onKeyDown = _this$props9.onKeyDown,
checkable = _this$props9.checkable,
selectable = _this$props9.selectable; // >>>>>>>>>> Direction
onKeyDown = _this$props9.onKeyDown,
checkable = _this$props9.checkable,
selectable = _this$props9.selectable;
// >>>>>>>>>> Direction
switch (event.which) {

@@ -947,22 +794,16 @@ case _KeyCode.default.UP:

_this.offsetActiveKey(-1);
event.preventDefault();
break;
}
case _KeyCode.default.DOWN:
{
_this.offsetActiveKey(1);
event.preventDefault();
break;
}
} // >>>>>>>>>> Expand & Selection
}
// >>>>>>>>>> Expand & Selection
var activeItem = _this.getActiveItem();
if (activeItem && activeItem.data) {
var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();
var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;

@@ -973,3 +814,2 @@ var eventNode = (0, _treeUtil.convertNodePropsToEventData)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, (0, _treeUtil.getTreeNodeProps)(activeKey, treeNodeRequiredProps)), {}, {

}));
switch (event.which) {

@@ -985,7 +825,5 @@ // >>> Expand

}
event.preventDefault();
break;
}
case _KeyCode.default.RIGHT:

@@ -999,3 +837,2 @@ {

}
event.preventDefault();

@@ -1005,3 +842,2 @@ break;

// Selection
case _KeyCode.default.ENTER:

@@ -1015,3 +851,2 @@ case _KeyCode.default.SPACE:

}
break;

@@ -1021,10 +856,7 @@ }

}
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
};
_this.setUncontrolledState = function (state) {
var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
if (!_this.destroyed) {

@@ -1039,7 +871,5 @@ var needSync = false;

}
needSync = true;
newState[name] = state[name];
});
if (needSync && (!atomic || allPassed)) {

@@ -1050,10 +880,7 @@ _this.setState((0, _objectSpread3.default)((0, _objectSpread3.default)({}, newState), forceState));

};
_this.scrollTo = function (scroll) {
_this.listRef.current.scrollTo(scroll);
};
return _this;
}
(0, _createClass2.default)(Tree, [{

@@ -1074,3 +901,2 @@ key: "componentDidMount",

var activeKey = this.props.activeKey;
if (activeKey !== undefined && activeKey !== this.state.activeKey) {

@@ -1080,3 +906,2 @@ this.setState({

});
if (activeKey !== null) {

@@ -1112,51 +937,49 @@ this.scrollTo({

var _classNames;
var _this$state14 = this.state,
focused = _this$state14.focused,
flattenNodes = _this$state14.flattenNodes,
keyEntities = _this$state14.keyEntities,
draggingNodeKey = _this$state14.draggingNodeKey,
activeKey = _this$state14.activeKey,
dropLevelOffset = _this$state14.dropLevelOffset,
dropContainerKey = _this$state14.dropContainerKey,
dropTargetKey = _this$state14.dropTargetKey,
dropPosition = _this$state14.dropPosition,
dragOverNodeKey = _this$state14.dragOverNodeKey,
indent = _this$state14.indent;
focused = _this$state14.focused,
flattenNodes = _this$state14.flattenNodes,
keyEntities = _this$state14.keyEntities,
draggingNodeKey = _this$state14.draggingNodeKey,
activeKey = _this$state14.activeKey,
dropLevelOffset = _this$state14.dropLevelOffset,
dropContainerKey = _this$state14.dropContainerKey,
dropTargetKey = _this$state14.dropTargetKey,
dropPosition = _this$state14.dropPosition,
dragOverNodeKey = _this$state14.dragOverNodeKey,
indent = _this$state14.indent;
var _this$props10 = this.props,
prefixCls = _this$props10.prefixCls,
className = _this$props10.className,
style = _this$props10.style,
showLine = _this$props10.showLine,
focusable = _this$props10.focusable,
_this$props10$tabInde = _this$props10.tabIndex,
tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,
selectable = _this$props10.selectable,
showIcon = _this$props10.showIcon,
icon = _this$props10.icon,
switcherIcon = _this$props10.switcherIcon,
draggable = _this$props10.draggable,
checkable = _this$props10.checkable,
checkStrictly = _this$props10.checkStrictly,
disabled = _this$props10.disabled,
motion = _this$props10.motion,
loadData = _this$props10.loadData,
filterTreeNode = _this$props10.filterTreeNode,
height = _this$props10.height,
itemHeight = _this$props10.itemHeight,
virtual = _this$props10.virtual,
titleRender = _this$props10.titleRender,
dropIndicatorRender = _this$props10.dropIndicatorRender,
onContextMenu = _this$props10.onContextMenu,
onScroll = _this$props10.onScroll,
direction = _this$props10.direction,
rootClassName = _this$props10.rootClassName,
rootStyle = _this$props10.rootStyle;
prefixCls = _this$props10.prefixCls,
className = _this$props10.className,
style = _this$props10.style,
showLine = _this$props10.showLine,
focusable = _this$props10.focusable,
_this$props10$tabInde = _this$props10.tabIndex,
tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,
selectable = _this$props10.selectable,
showIcon = _this$props10.showIcon,
icon = _this$props10.icon,
switcherIcon = _this$props10.switcherIcon,
draggable = _this$props10.draggable,
checkable = _this$props10.checkable,
checkStrictly = _this$props10.checkStrictly,
disabled = _this$props10.disabled,
motion = _this$props10.motion,
loadData = _this$props10.loadData,
filterTreeNode = _this$props10.filterTreeNode,
height = _this$props10.height,
itemHeight = _this$props10.itemHeight,
virtual = _this$props10.virtual,
titleRender = _this$props10.titleRender,
dropIndicatorRender = _this$props10.dropIndicatorRender,
onContextMenu = _this$props10.onContextMenu,
onScroll = _this$props10.onScroll,
direction = _this$props10.direction,
rootClassName = _this$props10.rootClassName,
rootStyle = _this$props10.rootStyle;
var domProps = (0, _pickAttrs.default)(this.props, {
aria: true,
data: true
}); // It's better move to hooks but we just simply keep here
});
// It's better move to hooks but we just simply keep here
var draggableConfig;
if (draggable) {

@@ -1173,3 +996,2 @@ if ((0, _typeof2.default)(draggable) === 'object') {

}
return /*#__PURE__*/React.createElement(_contextTypes.TreeContext.Provider, {

@@ -1253,18 +1075,14 @@ value: {

};
function needSync(name) {
return !prevProps && name in props || prevProps && prevProps[name] !== props[name];
} // ================== Tree Node ==================
var treeData; // fieldNames
}
// ================== Tree Node ==================
var treeData;
// fieldNames
var fieldNames = prevState.fieldNames;
if (needSync('fieldNames')) {
fieldNames = (0, _treeUtil.fillFieldNames)(props.fieldNames);
newState.fieldNames = fieldNames;
} // Check if `treeData` or `children` changed and save into the state.
}
// Check if `treeData` or `children` changed and save into the state.
if (needSync('treeData')) {

@@ -1275,5 +1093,4 @@ treeData = props.treeData;

treeData = (0, _treeUtil.convertTreeToData)(props.children);
} // Save flatten nodes info and convert `treeData` into keyEntities
}
// Save flatten nodes info and convert `treeData` into keyEntities
if (treeData) {

@@ -1284,4 +1101,4 @@ newState.treeData = treeData;

});
newState.keyEntities = (0, _objectSpread3.default)((0, _defineProperty2.default)({}, _NodeList.MOTION_KEY, _NodeList.MotionEntity), entitiesMap.keyEntities); // Warning if treeNode not provide key
newState.keyEntities = (0, _objectSpread3.default)((0, _defineProperty2.default)({}, _NodeList.MOTION_KEY, _NodeList.MotionEntity), entitiesMap.keyEntities);
// Warning if treeNode not provide key
if (process.env.NODE_ENV !== 'production') {

@@ -1291,5 +1108,4 @@ (0, _treeUtil.warningWithoutKey)(treeData, fieldNames);

}
var keyEntities = newState.keyEntities || prevState.keyEntities; // ================ expandedKeys =================
var keyEntities = newState.keyEntities || prevState.keyEntities;
// ================ expandedKeys =================
if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {

@@ -1306,14 +1122,11 @@ newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? (0, _util.conductExpandParent)(props.expandedKeys, keyEntities) : props.expandedKeys;

}
if (!newState.expandedKeys) {
delete newState.expandedKeys;
} // ================ flattenNodes =================
}
// ================ flattenNodes =================
if (treeData || newState.expandedKeys) {
var flattenNodes = (0, _treeUtil.flattenTreeData)(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);
newState.flattenNodes = flattenNodes;
} // ================ selectedKeys =================
}
// ================ selectedKeys =================
if (props.selectable) {

@@ -1325,8 +1138,6 @@ if (needSync('selectedKeys')) {

}
} // ================= checkedKeys =================
}
// ================= checkedKeys =================
if (props.checkable) {
var checkedKeyEntity;
if (needSync('checkedKeys')) {

@@ -1343,10 +1154,8 @@ checkedKeyEntity = (0, _util.parseCheckedKeys)(props.checkedKeys) || {};

}
if (checkedKeyEntity) {
var _checkedKeyEntity = checkedKeyEntity,
_checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,
checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,
_checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,
halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;
_checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,
checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,
_checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,
halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;
if (!props.checkStrictly) {

@@ -1357,13 +1166,10 @@ var conductKeys = (0, _conductUtil.conductCheck)(checkedKeys, true, keyEntities);

}
newState.checkedKeys = checkedKeys;
newState.halfCheckedKeys = halfCheckedKeys;
}
} // ================= loadedKeys ==================
}
// ================= loadedKeys ==================
if (needSync('loadedKeys')) {
newState.loadedKeys = props.loadedKeys;
}
return newState;

@@ -1374,3 +1180,2 @@ }

}(React.Component);
Tree.defaultProps = {

@@ -1377,0 +1182,0 @@ prefixCls: 'rc-tree',

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -11,57 +9,32 @@ value: true

exports.default = exports.InternalTreeNode = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _pickAttrs = _interopRequireDefault(require("rc-util/lib/pickAttrs"));
var _contextTypes = require("./contextTypes");
var _Indent = _interopRequireDefault(require("./Indent"));
var _treeUtil = require("./utils/treeUtil");
var _excluded = ["eventKey", "className", "style", "dragOver", "dragOverGapTop", "dragOverGapBottom", "isLeaf", "isStart", "isEnd", "expanded", "selected", "checked", "halfChecked", "loading", "domRef", "active", "data", "onMouseMove", "selectable"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var ICON_OPEN = 'open';
var ICON_CLOSE = 'close';
var defaultTitle = '---';
var InternalTreeNode = /*#__PURE__*/function (_React$Component) {
(0, _inherits2.default)(InternalTreeNode, _React$Component);
var _super = (0, _createSuper2.default)(InternalTreeNode);
function InternalTreeNode() {
var _this;
(0, _classCallCheck2.default)(this, InternalTreeNode);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));

@@ -72,3 +45,2 @@ _this.state = {

_this.selectHandle = void 0;
_this.onSelectorClick = function (e) {

@@ -78,3 +50,2 @@ // Click trigger before select/check operation

onNodeClick(e, (0, _treeUtil.convertNodePropsToEventData)(_this.props));
if (_this.isSelectable()) {

@@ -86,3 +57,2 @@ _this.onSelect(e);

};
_this.onSelectorDoubleClick = function (e) {

@@ -92,3 +62,2 @@ var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;

};
_this.onSelect = function (e) {

@@ -100,8 +69,7 @@ if (_this.isDisabled()) return;

};
_this.onCheck = function (e) {
if (_this.isDisabled()) return;
var _this$props = _this.props,
disableCheckbox = _this$props.disableCheckbox,
checked = _this$props.checked;
disableCheckbox = _this$props.disableCheckbox,
checked = _this$props.checked;
var onNodeCheck = _this.props.context.onNodeCheck;

@@ -113,3 +81,2 @@ if (!_this.isCheckable() || disableCheckbox) return;

};
_this.onMouseEnter = function (e) {

@@ -119,3 +86,2 @@ var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;

};
_this.onMouseLeave = function (e) {

@@ -125,3 +91,2 @@ var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;

};
_this.onContextMenu = function (e) {

@@ -131,13 +96,9 @@ var onNodeContextMenu = _this.props.context.onNodeContextMenu;

};
_this.onDragStart = function (e) {
var onNodeDragStart = _this.props.context.onNodeDragStart;
e.stopPropagation();
_this.setState({
dragNodeHighlight: true
});
onNodeDragStart(e, (0, _assertThisInitialized2.default)(_this));
try {

@@ -147,6 +108,6 @@ // ie throw error

e.dataTransfer.setData('text/plain', '');
} catch (error) {// empty
} catch (error) {
// empty
}
};
_this.onDragEnter = function (e) {

@@ -158,3 +119,2 @@ var onNodeDragEnter = _this.props.context.onNodeDragEnter;

};
_this.onDragOver = function (e) {

@@ -166,3 +126,2 @@ var onNodeDragOver = _this.props.context.onNodeDragOver;

};
_this.onDragLeave = function (e) {

@@ -173,14 +132,10 @@ var onNodeDragLeave = _this.props.context.onNodeDragLeave;

};
_this.onDragEnd = function (e) {
var onNodeDragEnd = _this.props.context.onNodeDragEnd;
e.stopPropagation();
_this.setState({
dragNodeHighlight: false
});
onNodeDragEnd(e, (0, _assertThisInitialized2.default)(_this));
};
_this.onDrop = function (e) {

@@ -190,57 +145,42 @@ var onNodeDrop = _this.props.context.onNodeDrop;

e.stopPropagation();
_this.setState({
dragNodeHighlight: false
});
onNodeDrop(e, (0, _assertThisInitialized2.default)(_this));
};
_this.onExpand = function (e) {
var _this$props2 = _this.props,
loading = _this$props2.loading,
onNodeExpand = _this$props2.context.onNodeExpand;
loading = _this$props2.loading,
onNodeExpand = _this$props2.context.onNodeExpand;
if (loading) return;
onNodeExpand(e, (0, _treeUtil.convertNodePropsToEventData)(_this.props));
};
_this.setSelectHandle = function (node) {
_this.selectHandle = node;
};
_this.getNodeState = function () {
var expanded = _this.props.expanded;
if (_this.isLeaf()) {
return null;
}
return expanded ? ICON_OPEN : ICON_CLOSE;
};
_this.hasChildren = function () {
var eventKey = _this.props.eventKey;
var keyEntities = _this.props.context.keyEntities;
var _ref = keyEntities[eventKey] || {},
children = _ref.children;
children = _ref.children;
return !!(children || []).length;
};
_this.isLeaf = function () {
var _this$props3 = _this.props,
isLeaf = _this$props3.isLeaf,
loaded = _this$props3.loaded;
isLeaf = _this$props3.isLeaf,
loaded = _this$props3.loaded;
var loadData = _this.props.context.loadData;
var hasChildren = _this.hasChildren();
if (isLeaf === false) {
return false;
}
return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;
};
_this.isDisabled = function () {

@@ -251,24 +191,20 @@ var disabled = _this.props.disabled;

};
_this.isCheckable = function () {
var checkable = _this.props.checkable;
var treeCheckable = _this.props.context.checkable; // Return false if tree or treeNode is not checkable
var treeCheckable = _this.props.context.checkable;
// Return false if tree or treeNode is not checkable
if (!treeCheckable || checkable === false) return false;
return treeCheckable;
};
_this.syncLoadData = function (props) {
var expanded = props.expanded,
loading = props.loading,
loaded = props.loaded;
loading = props.loading,
loaded = props.loaded;
var _this$props$context = _this.props.context,
loadData = _this$props$context.loadData,
onNodeLoad = _this$props$context.onNodeLoad;
loadData = _this$props$context.loadData,
onNodeLoad = _this$props$context.onNodeLoad;
if (loading) {
return;
} // read from state to avoid loadData at same time
}
// read from state to avoid loadData at same time
if (loadData && expanded && !_this.isLeaf()) {

@@ -282,14 +218,12 @@ // We needn't reload data when has children in sync logic

};
_this.isDraggable = function () {
var _this$props4 = _this.props,
data = _this$props4.data,
draggable = _this$props4.context.draggable;
data = _this$props4.data,
draggable = _this$props4.context.draggable;
return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));
};
_this.renderDragHandler = function () {
var _this$props$context2 = _this.props.context,
draggable = _this$props$context2.draggable,
prefixCls = _this$props$context2.prefixCls;
draggable = _this$props$context2.draggable,
prefixCls = _this$props$context2.prefixCls;
return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement("span", {

@@ -299,8 +233,7 @@ className: "".concat(prefixCls, "-draggable-icon")

};
_this.renderSwitcherIconDom = function (isLeaf) {
var switcherIconFromProps = _this.props.switcherIcon;
var switcherIconFromCtx = _this.props.context.switcherIcon;
var switcherIcon = switcherIconFromProps || switcherIconFromCtx; // if switcherIconDom is null, no render switcher span
var switcherIcon = switcherIconFromProps || switcherIconFromCtx;
// if switcherIconDom is null, no render switcher span
if (typeof switcherIcon === 'function') {

@@ -311,14 +244,10 @@ return switcherIcon((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _this.props), {}, {

}
return switcherIcon;
};
_this.renderSwitcher = function () {
var expanded = _this.props.expanded;
var prefixCls = _this.props.context.prefixCls;
if (_this.isLeaf()) {
// if switcherIconDom is null, no render switcher span
var _switcherIconDom = _this.renderSwitcherIconDom(true);
return _switcherIconDom !== false ? /*#__PURE__*/React.createElement("span", {

@@ -328,7 +257,4 @@ className: (0, _classnames.default)("".concat(prefixCls, "-switcher"), "".concat(prefixCls, "-switcher-noop"))

}
var switcherCls = (0, _classnames.default)("".concat(prefixCls, "-switcher"), "".concat(prefixCls, "-switcher_").concat(expanded ? ICON_OPEN : ICON_CLOSE));
var switcherIconDom = _this.renderSwitcherIconDom(false);
return switcherIconDom !== false ? /*#__PURE__*/React.createElement("span", {

@@ -339,16 +265,12 @@ onClick: _this.onExpand,

};
_this.renderCheckbox = function () {
var _this$props5 = _this.props,
checked = _this$props5.checked,
halfChecked = _this$props5.halfChecked,
disableCheckbox = _this$props5.disableCheckbox;
checked = _this$props5.checked,
halfChecked = _this$props5.halfChecked,
disableCheckbox = _this$props5.disableCheckbox;
var prefixCls = _this.props.context.prefixCls;
var disabled = _this.isDisabled();
var checkable = _this.isCheckable();
if (!checkable) return null; // [Legacy] Custom element should be separate with `checkable` in future
if (!checkable) return null;
// [Legacy] Custom element should be separate with `checkable` in future
var $custom = typeof checkable !== 'boolean' ? checkable : null;

@@ -360,3 +282,2 @@ return /*#__PURE__*/React.createElement("span", {

};
_this.renderIcon = function () {

@@ -369,24 +290,20 @@ var loading = _this.props.loading;

};
_this.renderSelector = function () {
var dragNodeHighlight = _this.state.dragNodeHighlight;
var _this$props6 = _this.props,
title = _this$props6.title,
selected = _this$props6.selected,
icon = _this$props6.icon,
loading = _this$props6.loading,
data = _this$props6.data;
title = _this$props6.title,
selected = _this$props6.selected,
icon = _this$props6.icon,
loading = _this$props6.loading,
data = _this$props6.data;
var _this$props$context3 = _this.props.context,
prefixCls = _this$props$context3.prefixCls,
showIcon = _this$props$context3.showIcon,
treeIcon = _this$props$context3.icon,
loadData = _this$props$context3.loadData,
titleRender = _this$props$context3.titleRender;
prefixCls = _this$props$context3.prefixCls,
showIcon = _this$props$context3.showIcon,
treeIcon = _this$props$context3.icon,
loadData = _this$props$context3.loadData,
titleRender = _this$props$context3.titleRender;
var disabled = _this.isDisabled();
var wrapClass = "".concat(prefixCls, "-node-content-wrapper"); // Icon - Still show loading icon when loading without showIcon
var wrapClass = "".concat(prefixCls, "-node-content-wrapper");
// Icon - Still show loading icon when loading without showIcon
var $icon;
if (showIcon) {

@@ -399,7 +316,5 @@ var currentIcon = icon || treeIcon;

$icon = _this.renderIcon();
} // Title
}
// Title
var titleNode;
if (typeof title === 'function') {

@@ -412,3 +327,2 @@ titleNode = title(data);

}
var $title = /*#__PURE__*/React.createElement("span", {

@@ -428,18 +342,17 @@ className: "".concat(prefixCls, "-title")

};
_this.renderDropIndicator = function () {
var _this$props7 = _this.props,
disabled = _this$props7.disabled,
eventKey = _this$props7.eventKey;
disabled = _this$props7.disabled,
eventKey = _this$props7.eventKey;
var _this$props$context4 = _this.props.context,
draggable = _this$props$context4.draggable,
dropLevelOffset = _this$props$context4.dropLevelOffset,
dropPosition = _this$props$context4.dropPosition,
prefixCls = _this$props$context4.prefixCls,
indent = _this$props$context4.indent,
dropIndicatorRender = _this$props$context4.dropIndicatorRender,
dragOverNodeKey = _this$props$context4.dragOverNodeKey,
direction = _this$props$context4.direction;
var rootDraggable = draggable !== false; // allowDrop is calculated in Tree.tsx, there is no need for calc it here
draggable = _this$props$context4.draggable,
dropLevelOffset = _this$props$context4.dropLevelOffset,
dropPosition = _this$props$context4.dropPosition,
prefixCls = _this$props$context4.prefixCls,
indent = _this$props$context4.indent,
dropIndicatorRender = _this$props$context4.dropIndicatorRender,
dragOverNodeKey = _this$props$context4.dragOverNodeKey,
direction = _this$props$context4.direction;
var rootDraggable = !!draggable;
// allowDrop is calculated in Tree.tsx, there is no need for calc it here
var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;

@@ -454,9 +367,8 @@ return showIndicator ? dropIndicatorRender({

};
return _this;
}
(0, _createClass2.default)(InternalTreeNode, [{
key: "componentDidMount",
value: // Isomorphic needn't load data in server side
value:
// Isomorphic needn't load data in server side
function componentDidMount() {

@@ -474,8 +386,7 @@ this.syncLoadData(this.props);

var selectable = this.props.selectable;
var treeSelectable = this.props.context.selectable; // Ignore when selectable is undefined or null
var treeSelectable = this.props.context.selectable;
// Ignore when selectable is undefined or null
if (typeof selectable === 'boolean') {
return selectable;
}
return treeSelectable;

@@ -485,34 +396,34 @@ }

key: "render",
value: // =========================== Render ===========================
value:
// =========================== Render ===========================
function render() {
var _classNames;
var _this$props8 = this.props,
eventKey = _this$props8.eventKey,
className = _this$props8.className,
style = _this$props8.style,
dragOver = _this$props8.dragOver,
dragOverGapTop = _this$props8.dragOverGapTop,
dragOverGapBottom = _this$props8.dragOverGapBottom,
isLeaf = _this$props8.isLeaf,
isStart = _this$props8.isStart,
isEnd = _this$props8.isEnd,
expanded = _this$props8.expanded,
selected = _this$props8.selected,
checked = _this$props8.checked,
halfChecked = _this$props8.halfChecked,
loading = _this$props8.loading,
domRef = _this$props8.domRef,
active = _this$props8.active,
data = _this$props8.data,
onMouseMove = _this$props8.onMouseMove,
selectable = _this$props8.selectable,
otherProps = (0, _objectWithoutProperties2.default)(_this$props8, _excluded);
eventKey = _this$props8.eventKey,
className = _this$props8.className,
style = _this$props8.style,
dragOver = _this$props8.dragOver,
dragOverGapTop = _this$props8.dragOverGapTop,
dragOverGapBottom = _this$props8.dragOverGapBottom,
isLeaf = _this$props8.isLeaf,
isStart = _this$props8.isStart,
isEnd = _this$props8.isEnd,
expanded = _this$props8.expanded,
selected = _this$props8.selected,
checked = _this$props8.checked,
halfChecked = _this$props8.halfChecked,
loading = _this$props8.loading,
domRef = _this$props8.domRef,
active = _this$props8.active,
data = _this$props8.data,
onMouseMove = _this$props8.onMouseMove,
selectable = _this$props8.selectable,
otherProps = (0, _objectWithoutProperties2.default)(_this$props8, _excluded);
var _this$props$context5 = this.props.context,
prefixCls = _this$props$context5.prefixCls,
filterTreeNode = _this$props$context5.filterTreeNode,
keyEntities = _this$props$context5.keyEntities,
dropContainerKey = _this$props$context5.dropContainerKey,
dropTargetKey = _this$props$context5.dropTargetKey,
draggingNodeKey = _this$props$context5.draggingNodeKey;
prefixCls = _this$props$context5.prefixCls,
filterTreeNode = _this$props$context5.filterTreeNode,
keyEntities = _this$props$context5.keyEntities,
dropContainerKey = _this$props$context5.dropContainerKey,
dropTargetKey = _this$props$context5.dropTargetKey,
draggingNodeKey = _this$props$context5.draggingNodeKey;
var disabled = this.isDisabled();

@@ -523,6 +434,4 @@ var dataOrAriaAttributeProps = (0, _pickAttrs.default)(otherProps, {

});
var _ref2 = keyEntities[eventKey] || {},
level = _ref2.level;
level = _ref2.level;
var isEndNode = isEnd[isEnd.length - 1];

@@ -538,7 +447,9 @@ var mergedDraggable = this.isDraggable();

className: (0, _classnames.default)(className, "".concat(prefixCls, "-treenode"), (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-disabled"), disabled), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-switcher-").concat(expanded ? 'open' : 'close'), !isLeaf), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-checkbox-checked"), checked), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-checkbox-indeterminate"), halfChecked), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-selected"), selected), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-loading"), loading), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-active"), active), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-leaf-last"), isEndNode), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-treenode-draggable"), mergedDraggable), (0, _defineProperty2.default)(_classNames, "dragging", dragging), (0, _defineProperty2.default)(_classNames, 'drop-target', dropTargetKey === eventKey), (0, _defineProperty2.default)(_classNames, 'drop-container', dropContainerKey === eventKey), (0, _defineProperty2.default)(_classNames, 'drag-over', !disabled && dragOver), (0, _defineProperty2.default)(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), (0, _defineProperty2.default)(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), (0, _defineProperty2.default)(_classNames, 'filter-node', filterTreeNode && filterTreeNode((0, _treeUtil.convertNodePropsToEventData)(this.props))), _classNames)),
style: style // Draggable config
style: style
// Draggable config
,
draggable: draggableWithoutDisabled,
"aria-grabbed": dragging,
onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined // Drop config
onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined
// Drop config
,

@@ -561,5 +472,3 @@ onDragEnter: mergedDraggable ? this.onDragEnter : undefined,

}(React.Component);
exports.InternalTreeNode = InternalTreeNode;
var ContextTreeNode = function ContextTreeNode(props) {

@@ -572,3 +481,2 @@ return /*#__PURE__*/React.createElement(_contextTypes.TreeContext.Consumer, null, function (context) {

};
ContextTreeNode.displayName = 'TreeNode';

@@ -575,0 +483,0 @@ ContextTreeNode.defaultProps = {

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -21,19 +20,10 @@ value: true

exports.posToArr = posToArr;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
var _TreeNode = _interopRequireDefault(require("./TreeNode"));
var _excluded = ["children"];
function arrDel(list, value) {

@@ -43,32 +33,23 @@ if (!list) return [];

var index = clone.indexOf(value);
if (index >= 0) {
clone.splice(index, 1);
}
return clone;
}
function arrAdd(list, value) {
var clone = (list || []).slice();
if (clone.indexOf(value) === -1) {
clone.push(value);
}
return clone;
}
function posToArr(pos) {
return pos.split('-');
}
function getPosition(level, index) {
return "".concat(level, "-").concat(index);
}
function isTreeNode(node) {
return node && node.type && node.type.isTreeNode;
}
function getDragChildrenKeys(dragNodeKey, keyEntities) {

@@ -79,3 +60,2 @@ // not contains self

var entity = keyEntities[dragNodeKey];
function dig() {

@@ -85,3 +65,3 @@ var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];

var key = _ref.key,
children = _ref.children;
children = _ref.children;
dragChildrenKeys.push(key);

@@ -91,7 +71,5 @@ dig(children);

}
dig(entity.children);
return dragChildrenKeys;
}
function isLastChild(treeNodeEntity) {

@@ -102,28 +80,21 @@ if (treeNodeEntity.parent) {

}
return false;
}
function isFirstChild(treeNodeEntity) {
var posArr = posToArr(treeNodeEntity.pos);
return Number(posArr[posArr.length - 1]) === 0;
} // Only used when drag, not affect SSR.
}
// Only used when drag, not affect SSR.
function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {
var _abstractDropNodeEnti;
var clientX = event.clientX,
clientY = event.clientY;
clientY = event.clientY;
var _event$target$getBoun = event.target.getBoundingClientRect(),
top = _event$target$getBoun.top,
height = _event$target$getBoun.height; // optional chain for testing
top = _event$target$getBoun.top,
height = _event$target$getBoun.height;
// optional chain for testing
var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);
var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent; // find abstract drop node by horizontal offset
var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;
// find abstract drop node by horizontal offset
var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];
if (clientY < top + height / 2) {

@@ -138,3 +109,2 @@ // first half, set abstract drop node to previous node

}
var initialAbstractDropNodeKey = abstractDropNodeEntity.key;

@@ -144,4 +114,4 @@ var abstractDragOverEntity = abstractDropNodeEntity;

var dropPosition = 0;
var dropLevelOffset = 0; // Only allow cross level drop when dragging on a non-expanded node
var dropLevelOffset = 0;
// Only allow cross level drop when dragging on a non-expanded node
if (!expandKeys.includes(initialAbstractDropNodeKey)) {

@@ -157,7 +127,5 @@ for (var i = 0; i < rawDropLevelOffset; i += 1) {

}
var abstractDragDataNode = dragNode.props.data;
var abstractDropDataNode = abstractDropNodeEntity.node;
var dropAllowed = true;
if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({

@@ -237,3 +205,2 @@ dragNode: abstractDragDataNode,

}
return {

@@ -255,34 +222,25 @@ dropPosition: dropPosition,

*/
function calcSelectedKeys(selectedKeys, props) {
if (!selectedKeys) return undefined;
var multiple = props.multiple;
if (multiple) {
return selectedKeys.slice();
}
if (selectedKeys.length) {
return [selectedKeys[0]];
}
return selectedKeys;
}
var internalProcessProps = function internalProcessProps(props) {
return props;
};
function convertDataToTree(treeData, processor) {
if (!treeData) return [];
var _ref2 = processor || {},
_ref2$processProps = _ref2.processProps,
processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;
_ref2$processProps = _ref2.processProps,
processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;
var list = Array.isArray(treeData) ? treeData : [treeData];
return list.map(function (_ref3) {
var children = _ref3.children,
props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
var childrenNodes = convertDataToTree(children, processor);

@@ -297,12 +255,8 @@ return /*#__PURE__*/_react.default.createElement(_TreeNode.default, (0, _extends2.default)({

*/
function parseCheckedKeys(keys) {
if (!keys) {
return null;
} // Convert keys to object format
}
// Convert keys to object format
var keyProps;
if (Array.isArray(keys)) {

@@ -323,3 +277,2 @@ // [Legacy] Follow the api doc

}
return keyProps;

@@ -332,7 +285,4 @@ }

*/
function conductExpandParent(keyList, keyEntities) {
var expandedKeys = new Set();
function conductUp(key) {

@@ -344,5 +294,4 @@ if (expandedKeys.has(key)) return;

var parent = entity.parent,
node = entity.node;
node = entity.node;
if (node.disabled) return;
if (parent) {

@@ -352,3 +301,2 @@ conductUp(parent.key);

}
(keyList || []).forEach(function (key) {

@@ -355,0 +303,0 @@ conductUp(key);

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -10,5 +9,3 @@ value: true

exports.isCheckDisabled = isCheckDisabled;
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
function removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {

@@ -23,17 +20,14 @@ var filteredKeys = new Set();

}
function isCheckDisabled(node) {
var _ref = node || {},
disabled = _ref.disabled,
disableCheckbox = _ref.disableCheckbox,
checkable = _ref.checkable;
disabled = _ref.disabled,
disableCheckbox = _ref.disableCheckbox,
checkable = _ref.checkable;
return !!(disabled || disableCheckbox) || checkable === false;
} // Fill miss keys
}
// Fill miss keys
function fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {
var checkedKeys = new Set(keys);
var halfCheckedKeys = new Set(); // Add checked keys top to bottom
var halfCheckedKeys = new Set();
// Add checked keys top to bottom
for (var level = 0; level <= maxLevel; level += 1) {

@@ -43,6 +37,5 @@ var entities = levelEntities.get(level) || new Set();

var key = entity.key,
node = entity.node,
_entity$children = entity.children,
children = _entity$children === void 0 ? [] : _entity$children;
node = entity.node,
_entity$children = entity.children,
children = _entity$children === void 0 ? [] : _entity$children;
if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {

@@ -56,19 +49,15 @@ children.filter(function (childEntity) {

});
} // Add checked keys from bottom to top
}
// Add checked keys from bottom to top
var visitedKeys = new Set();
for (var _level = maxLevel; _level >= 0; _level -= 1) {
var _entities = levelEntities.get(_level) || new Set();
_entities.forEach(function (entity) {
var parent = entity.parent,
node = entity.node; // Skip if no need to check
node = entity.node;
// Skip if no need to check
if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {
return;
} // Skip if parent is disabled
}
// Skip if parent is disabled
if (syntheticGetCheckDisabled(entity.parent.node)) {

@@ -78,3 +67,2 @@ visitedKeys.add(parent.key);

}
var allChecked = true;

@@ -87,7 +75,5 @@ var partialChecked = false;

var checked = checkedKeys.has(key);
if (allChecked && !checked) {
allChecked = false;
}
if (!partialChecked && (checked || halfCheckedKeys.has(key))) {

@@ -97,15 +83,11 @@ partialChecked = true;

});
if (allChecked) {
checkedKeys.add(parent.key);
}
if (partialChecked) {
halfCheckedKeys.add(parent.key);
}
visitedKeys.add(parent.key);
});
}
return {

@@ -115,9 +97,8 @@ checkedKeys: Array.from(checkedKeys),

};
} // Remove useless key
}
// Remove useless key
function cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {
var checkedKeys = new Set(keys);
var halfCheckedKeys = new Set(halfKeys); // Remove checked keys from top to bottom
var halfCheckedKeys = new Set(halfKeys);
// Remove checked keys from top to bottom
for (var level = 0; level <= maxLevel; level += 1) {

@@ -127,6 +108,5 @@ var entities = levelEntities.get(level) || new Set();

var key = entity.key,
node = entity.node,
_entity$children2 = entity.children,
children = _entity$children2 === void 0 ? [] : _entity$children2;
node = entity.node,
_entity$children2 = entity.children,
children = _entity$children2 === void 0 ? [] : _entity$children2;
if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {

@@ -140,20 +120,16 @@ children.filter(function (childEntity) {

});
} // Remove checked keys form bottom to top
}
// Remove checked keys form bottom to top
halfCheckedKeys = new Set();
var visitedKeys = new Set();
for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {
var _entities2 = levelEntities.get(_level2) || new Set();
_entities2.forEach(function (entity) {
var parent = entity.parent,
node = entity.node; // Skip if no need to check
node = entity.node;
// Skip if no need to check
if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {
return;
} // Skip if parent is disabled
}
// Skip if parent is disabled
if (syntheticGetCheckDisabled(entity.parent.node)) {

@@ -163,3 +139,2 @@ visitedKeys.add(parent.key);

}
var allChecked = true;

@@ -172,7 +147,5 @@ var partialChecked = false;

var checked = checkedKeys.has(key);
if (allChecked && !checked) {
allChecked = false;
}
if (!partialChecked && (checked || halfCheckedKeys.has(key))) {

@@ -182,15 +155,11 @@ partialChecked = true;

});
if (!allChecked) {
checkedKeys.delete(parent.key);
}
if (partialChecked) {
halfCheckedKeys.add(parent.key);
}
visitedKeys.add(parent.key);
});
}
return {

@@ -207,8 +176,5 @@ checkedKeys: Array.from(checkedKeys),

*/
function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {
var warningMissKeys = [];
var syntheticGetCheckDisabled;
if (getCheckDisabled) {

@@ -218,17 +184,14 @@ syntheticGetCheckDisabled = getCheckDisabled;

syntheticGetCheckDisabled = isCheckDisabled;
} // We only handle exist keys
}
// We only handle exist keys
var keys = new Set(keyList.filter(function (key) {
var hasEntity = !!keyEntities[key];
if (!hasEntity) {
warningMissKeys.push(key);
}
return hasEntity;
}));
var levelEntities = new Map();
var maxLevel = 0; // Convert entities by level for calculation
var maxLevel = 0;
// Convert entities by level for calculation
Object.keys(keyEntities).forEach(function (key) {

@@ -238,3 +201,2 @@ var entity = keyEntities[key];

var levelSet = levelEntities.get(level);
if (!levelSet) {

@@ -244,3 +206,2 @@ levelSet = new Set();

}
levelSet.add(entity);

@@ -253,3 +214,2 @@ maxLevel = Math.max(maxLevel, level);

var result;
if (checked === true) {

@@ -260,4 +220,3 @@ result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);

}
return result;
}

@@ -8,3 +8,2 @@ "use strict";

exports.getExpandRange = getExpandRange;
function findExpandedKeys() {

@@ -15,3 +14,2 @@ var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];

var nextLen = next.length;
if (Math.abs(prevLen - nextLen) !== 1) {

@@ -23,3 +21,2 @@ return {

}
function find(shorter, longer) {

@@ -35,3 +32,2 @@ var cache = new Map();

}
if (prevLen < nextLen) {

@@ -43,3 +39,2 @@ return {

}
return {

@@ -50,3 +45,2 @@ add: false,

}
function getExpandRange(shorter, longer, key) {

@@ -60,3 +54,2 @@ var shorterStartIndex = shorter.findIndex(function (data) {

});
if (shorterEndNode) {

@@ -68,4 +61,3 @@ var longerEndIndex = longer.findIndex(function (data) {

}
return longer.slice(longerStartIndex + 1);
}

@@ -21,3 +21,3 @@ import * as React from 'react';

export declare function flattenTreeData<TreeDataType extends BasicDataNode = DataNode>(treeNodeList: TreeDataType[], expandedKeys: Key[] | true, fieldNames: FieldNames): FlattenNode<TreeDataType>[];
declare type ExternalGetKey = GetKey<DataNode> | string;
type ExternalGetKey = GetKey<DataNode> | string;
interface TraverseDataNodesConfig {

@@ -24,0 +24,0 @@ childrenPropName?: string;

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -17,21 +16,11 @@ value: true

exports.warningWithoutKey = warningWithoutKey;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _omit = _interopRequireDefault(require("rc-util/lib/omit"));
var _toArray = _interopRequireDefault(require("rc-util/lib/Children/toArray"));
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
var _util = require("../util");
var _excluded = ["children"];
function getKey(key, pos) {

@@ -41,13 +30,10 @@ if (key !== null && key !== undefined) {

}
return pos;
}
function fillFieldNames(fieldNames) {
var _ref = fieldNames || {},
title = _ref.title,
_title = _ref._title,
key = _ref.key,
children = _ref.children;
title = _ref.title,
_title = _ref._title,
key = _ref.key,
children = _ref.children;
var mergedTitle = title || 'title';

@@ -64,7 +50,4 @@ return {

*/
function warningWithoutKey(treeData, fieldNames) {
var keys = new Map();
function dig(list) {

@@ -82,3 +65,2 @@ var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

}
dig(treeData);

@@ -89,4 +71,2 @@ }

*/
function convertTreeToData(rootNodes) {

@@ -101,7 +81,6 @@ function dig(node) {

}
var key = treeNode.key;
var _treeNode$props = treeNode.props,
children = _treeNode$props.children,
rest = (0, _objectWithoutProperties2.default)(_treeNode$props, _excluded);
children = _treeNode$props.children,
rest = (0, _objectWithoutProperties2.default)(_treeNode$props, _excluded);
var dataNode = (0, _objectSpread2.default)({

@@ -111,7 +90,5 @@ key: key

var parsedChildren = dig(children);
if (parsedChildren.length) {
dataNode.children = parsedChildren;
}
return dataNode;

@@ -122,3 +99,2 @@ }).filter(function (dataNode) {

}
return dig(rootNodes);

@@ -132,13 +108,9 @@ }

*/
function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {
var _fillFieldNames = fillFieldNames(fieldNames),
fieldTitles = _fillFieldNames._title,
fieldKey = _fillFieldNames.key,
fieldChildren = _fillFieldNames.children;
fieldTitles = _fillFieldNames._title,
fieldKey = _fillFieldNames.key,
fieldChildren = _fillFieldNames.children;
var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);
var flattenList = [];
function dig(list) {

@@ -148,9 +120,7 @@ var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

var pos = (0, _util.getPosition)(parent ? parent.pos : '0', index);
var mergedKey = getKey(treeNode[fieldKey], pos); // Pick matched title in field title list
var mergedKey = getKey(treeNode[fieldKey], pos);
// Pick matched title in field title list
var mergedTitle;
for (var i = 0; i < fieldTitles.length; i += 1) {
var fieldTitle = fieldTitles[i];
if (treeNode[fieldTitle] !== undefined) {

@@ -160,5 +130,4 @@ mergedTitle = treeNode[fieldTitle];

}
} // Add FlattenDataNode into list
}
// Add FlattenDataNode into list
var flattenNode = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _omit.default)(treeNode, [].concat((0, _toConsumableArray2.default)(fieldTitles), [fieldKey, fieldChildren]))), {}, {

@@ -174,4 +143,4 @@ title: mergedTitle,

});
flattenList.push(flattenNode); // Loop treeNode children
flattenList.push(flattenNode);
// Loop treeNode children
if (expandedKeys === true || expandedKeySet.has(mergedKey)) {

@@ -182,7 +151,5 @@ flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);

}
return flattenNode;
});
}
dig(treeNodeList);

@@ -195,8 +162,6 @@ return flattenList;

*/
function traverseDataNodes(dataNodes, callback, // To avoid too many params, let use config instead of origin param
function traverseDataNodes(dataNodes, callback,
// To avoid too many params, let use config instead of origin param
config) {
var mergedConfig = {};
if ((0, _typeof2.default)(config) === 'object') {

@@ -209,18 +174,14 @@ mergedConfig = config;

}
mergedConfig = mergedConfig || {}; // Init config
mergedConfig = mergedConfig || {};
// Init config
var _mergedConfig = mergedConfig,
childrenPropName = _mergedConfig.childrenPropName,
externalGetKey = _mergedConfig.externalGetKey,
fieldNames = _mergedConfig.fieldNames;
childrenPropName = _mergedConfig.childrenPropName,
externalGetKey = _mergedConfig.externalGetKey,
fieldNames = _mergedConfig.fieldNames;
var _fillFieldNames2 = fillFieldNames(fieldNames),
fieldKey = _fillFieldNames2.key,
fieldChildren = _fillFieldNames2.children;
var mergeChildrenPropName = childrenPropName || fieldChildren; // Get keys
fieldKey = _fillFieldNames2.key,
fieldChildren = _fillFieldNames2.children;
var mergeChildrenPropName = childrenPropName || fieldChildren;
// Get keys
var syntheticGetKey;
if (externalGetKey) {

@@ -240,10 +201,9 @@ if (typeof externalGetKey === 'string') {

};
} // Process
}
// Process
function processNode(node, index, parent, pathNodes) {
var children = node ? node[mergeChildrenPropName] : dataNodes;
var pos = node ? (0, _util.getPosition)(parent.pos, index) : '0';
var connectNodes = node ? [].concat((0, _toConsumableArray2.default)(pathNodes), [node]) : []; // Process node if is not root
var connectNodes = node ? [].concat((0, _toConsumableArray2.default)(pathNodes), [node]) : [];
// Process node if is not root
if (node) {

@@ -261,5 +221,4 @@ var key = syntheticGetKey(node, pos);

callback(data);
} // Process children node
}
// Process children node
if (children) {

@@ -275,3 +234,2 @@ children.forEach(function (subNode, subIndex) {

}
processNode(null);

@@ -282,15 +240,11 @@ }

*/
function convertDataToEntities(dataNodes) {
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
initWrapper = _ref2.initWrapper,
processEntity = _ref2.processEntity,
onProcessFinished = _ref2.onProcessFinished,
externalGetKey = _ref2.externalGetKey,
childrenPropName = _ref2.childrenPropName,
fieldNames = _ref2.fieldNames;
var
/** @deprecated Use `config.externalGetKey` instead */
initWrapper = _ref2.initWrapper,
processEntity = _ref2.processEntity,
onProcessFinished = _ref2.onProcessFinished,
externalGetKey = _ref2.externalGetKey,
childrenPropName = _ref2.childrenPropName,
fieldNames = _ref2.fieldNames;
var /** @deprecated Use `config.externalGetKey` instead */
legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;

@@ -305,15 +259,13 @@ // Init config

};
if (initWrapper) {
wrapper = initWrapper(wrapper) || wrapper;
}
traverseDataNodes(dataNodes, function (item) {
var node = item.node,
index = item.index,
pos = item.pos,
key = item.key,
parentPos = item.parentPos,
level = item.level,
nodes = item.nodes;
index = item.index,
pos = item.pos,
key = item.key,
parentPos = item.parentPos,
level = item.level,
nodes = item.nodes;
var entity = {

@@ -329,6 +281,5 @@ node: node,

posEntities[pos] = entity;
keyEntities[mergedKey] = entity; // Fill children
keyEntities[mergedKey] = entity;
// Fill children
entity.parent = posEntities[parentPos];
if (entity.parent) {

@@ -338,3 +289,2 @@ entity.parent.children = entity.parent.children || [];

}
if (processEntity) {

@@ -348,7 +298,5 @@ processEntity(entity, wrapper);

});
if (onProcessFinished) {
onProcessFinished(wrapper);
}
return wrapper;

@@ -359,14 +307,12 @@ }

*/
function getTreeNodeProps(key, _ref3) {
var expandedKeys = _ref3.expandedKeys,
selectedKeys = _ref3.selectedKeys,
loadedKeys = _ref3.loadedKeys,
loadingKeys = _ref3.loadingKeys,
checkedKeys = _ref3.checkedKeys,
halfCheckedKeys = _ref3.halfCheckedKeys,
dragOverNodeKey = _ref3.dragOverNodeKey,
dropPosition = _ref3.dropPosition,
keyEntities = _ref3.keyEntities;
selectedKeys = _ref3.selectedKeys,
loadedKeys = _ref3.loadedKeys,
loadingKeys = _ref3.loadingKeys,
checkedKeys = _ref3.checkedKeys,
halfCheckedKeys = _ref3.halfCheckedKeys,
dragOverNodeKey = _ref3.dragOverNodeKey,
dropPosition = _ref3.dropPosition,
keyEntities = _ref3.keyEntities;
var entity = keyEntities[key];

@@ -391,17 +337,16 @@ var treeNodeProps = {

}
function convertNodePropsToEventData(props) {
var data = props.data,
expanded = props.expanded,
selected = props.selected,
checked = props.checked,
loaded = props.loaded,
loading = props.loading,
halfChecked = props.halfChecked,
dragOver = props.dragOver,
dragOverGapTop = props.dragOverGapTop,
dragOverGapBottom = props.dragOverGapBottom,
pos = props.pos,
active = props.active,
eventKey = props.eventKey;
expanded = props.expanded,
selected = props.selected,
checked = props.checked,
loaded = props.loaded,
loading = props.loading,
halfChecked = props.halfChecked,
dragOver = props.dragOver,
dragOverGapTop = props.dragOverGapTop,
dragOverGapBottom = props.dragOverGapBottom,
pos = props.pos,
active = props.active,
eventKey = props.eventKey;
var eventData = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {

@@ -421,3 +366,2 @@ expanded: expanded,

});
if (!('props' in eventData)) {

@@ -431,4 +375,3 @@ Object.defineProperty(eventData, 'props', {

}
return eventData;
}
{
"name": "rc-tree",
"version": "5.7.0",
"version": "5.7.1",
"description": "tree ui component for react",

@@ -5,0 +5,0 @@ "engines": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc