rc-tree
Advanced tools
Comparing version 5.7.0 to 5.7.1
@@ -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; |
573
es/Tree.js
@@ -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; |
595
lib/Tree.js
"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": { |
7566
357196