rc-tree
Advanced tools
Comparing version 5.1.0 to 5.2.0
@@ -7,2 +7,3 @@ /** | ||
import { IconType, Key, DataEntity, EventDataNode, NodeInstance, DataNode, Direction } from './interface'; | ||
import { DraggableConfig } from './Tree'; | ||
export declare type NodeMouseEventParams<T = HTMLSpanElement> = { | ||
@@ -24,5 +25,4 @@ event: React.MouseEvent<T>; | ||
switcherIcon: IconType; | ||
draggable: ((node: DataNode) => boolean) | boolean; | ||
draggable?: DraggableConfig; | ||
draggingNodeKey?: React.Key; | ||
draggableIcon?: React.ReactNode; | ||
checkable: boolean | React.ReactNode; | ||
@@ -29,0 +29,0 @@ checkStrictly: boolean; |
@@ -24,2 +24,7 @@ import * as React from 'react'; | ||
export declare type AllowDrop = (options: AllowDropOptions) => boolean; | ||
export declare type DraggableFn = (node: DataNode) => boolean; | ||
export declare type DraggableConfig = { | ||
icon?: React.ReactNode | false; | ||
nodeDraggable?: DraggableFn; | ||
}; | ||
export interface TreeProps { | ||
@@ -42,4 +47,3 @@ prefixCls: string; | ||
checkStrictly?: boolean; | ||
draggable?: ((node: DataNode) => boolean) | boolean; | ||
draggableIcon?: React.ReactNode; | ||
draggable?: DraggableFn | boolean | DraggableConfig; | ||
defaultExpandParent?: boolean; | ||
@@ -46,0 +50,0 @@ autoExpandParent?: boolean; |
import _extends from "@babel/runtime/helpers/esm/extends"; | ||
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; | ||
import _typeof from "@babel/runtime/helpers/esm/typeof"; | ||
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; | ||
@@ -1003,3 +1004,2 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray"; | ||
draggable = _this$props8.draggable, | ||
draggableIcon = _this$props8.draggableIcon, | ||
checkable = _this$props8.checkable, | ||
@@ -1019,3 +1019,18 @@ checkStrictly = _this$props8.checkStrictly, | ||
direction = _this$props8.direction; | ||
var domProps = getDataAndAria(this.props); | ||
var domProps = getDataAndAria(this.props); // It's better move to hooks but we just simply keep here | ||
var draggableConfig; | ||
if (draggable) { | ||
if (_typeof(draggable) === 'object') { | ||
draggableConfig = draggable; | ||
} else if (typeof draggable === 'function') { | ||
draggableConfig = { | ||
nodeDraggable: draggable | ||
}; | ||
} else { | ||
draggableConfig = {}; | ||
} | ||
} | ||
return /*#__PURE__*/React.createElement(TreeContext.Provider, { | ||
@@ -1028,5 +1043,4 @@ value: { | ||
switcherIcon: switcherIcon, | ||
draggable: draggable, | ||
draggable: draggableConfig, | ||
draggingNodeKey: draggingNodeKey, | ||
draggableIcon: draggableIcon, | ||
checkable: checkable, | ||
@@ -1033,0 +1047,0 @@ checkStrictly: checkStrictly, |
@@ -241,4 +241,3 @@ import _extends from "@babel/runtime/helpers/esm/extends"; | ||
draggable = _this$props4.context.draggable; | ||
var mergedDraggable = typeof draggable === 'function' ? draggable(data) : draggable; | ||
return mergedDraggable; | ||
return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data))); | ||
}; | ||
@@ -249,8 +248,6 @@ | ||
draggable = _this$props$context2.draggable, | ||
draggableIcon = _this$props$context2.draggableIcon, | ||
prefixCls = _this$props$context2.prefixCls; | ||
var rootDraggable = draggable !== false; | ||
return rootDraggable && draggableIcon ? /*#__PURE__*/React.createElement("span", { | ||
return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement("span", { | ||
className: "".concat(prefixCls, "-draggable-icon") | ||
}, draggableIcon) : null; | ||
}, draggable.icon) : null; | ||
}; | ||
@@ -257,0 +254,0 @@ |
@@ -7,2 +7,3 @@ /** | ||
import { IconType, Key, DataEntity, EventDataNode, NodeInstance, DataNode, Direction } from './interface'; | ||
import { DraggableConfig } from './Tree'; | ||
export declare type NodeMouseEventParams<T = HTMLSpanElement> = { | ||
@@ -24,5 +25,4 @@ event: React.MouseEvent<T>; | ||
switcherIcon: IconType; | ||
draggable: ((node: DataNode) => boolean) | boolean; | ||
draggable?: DraggableConfig; | ||
draggingNodeKey?: React.Key; | ||
draggableIcon?: React.ReactNode; | ||
checkable: boolean | React.ReactNode; | ||
@@ -29,0 +29,0 @@ checkStrictly: boolean; |
@@ -24,2 +24,7 @@ import * as React from 'react'; | ||
export declare type AllowDrop = (options: AllowDropOptions) => boolean; | ||
export declare type DraggableFn = (node: DataNode) => boolean; | ||
export declare type DraggableConfig = { | ||
icon?: React.ReactNode | false; | ||
nodeDraggable?: DraggableFn; | ||
}; | ||
export interface TreeProps { | ||
@@ -42,4 +47,3 @@ prefixCls: string; | ||
checkStrictly?: boolean; | ||
draggable?: ((node: DataNode) => boolean) | boolean; | ||
draggableIcon?: React.ReactNode; | ||
draggable?: DraggableFn | boolean | DraggableConfig; | ||
defaultExpandParent?: boolean; | ||
@@ -46,0 +50,0 @@ autoExpandParent?: boolean; |
@@ -16,2 +16,4 @@ "use strict"; | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); | ||
@@ -1030,3 +1032,2 @@ | ||
draggable = _this$props8.draggable, | ||
draggableIcon = _this$props8.draggableIcon, | ||
checkable = _this$props8.checkable, | ||
@@ -1046,3 +1047,18 @@ checkStrictly = _this$props8.checkStrictly, | ||
direction = _this$props8.direction; | ||
var domProps = (0, _util.getDataAndAria)(this.props); | ||
var domProps = (0, _util.getDataAndAria)(this.props); // It's better move to hooks but we just simply keep here | ||
var draggableConfig; | ||
if (draggable) { | ||
if ((0, _typeof2.default)(draggable) === 'object') { | ||
draggableConfig = draggable; | ||
} else if (typeof draggable === 'function') { | ||
draggableConfig = { | ||
nodeDraggable: draggable | ||
}; | ||
} else { | ||
draggableConfig = {}; | ||
} | ||
} | ||
return /*#__PURE__*/React.createElement(_contextTypes.TreeContext.Provider, { | ||
@@ -1055,5 +1071,4 @@ value: { | ||
switcherIcon: switcherIcon, | ||
draggable: draggable, | ||
draggable: draggableConfig, | ||
draggingNodeKey: draggingNodeKey, | ||
draggableIcon: draggableIcon, | ||
checkable: checkable, | ||
@@ -1060,0 +1075,0 @@ checkStrictly: checkStrictly, |
@@ -266,4 +266,3 @@ "use strict"; | ||
draggable = _this$props4.context.draggable; | ||
var mergedDraggable = typeof draggable === 'function' ? draggable(data) : draggable; | ||
return mergedDraggable; | ||
return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data))); | ||
}; | ||
@@ -274,8 +273,6 @@ | ||
draggable = _this$props$context2.draggable, | ||
draggableIcon = _this$props$context2.draggableIcon, | ||
prefixCls = _this$props$context2.prefixCls; | ||
var rootDraggable = draggable !== false; | ||
return rootDraggable && draggableIcon ? /*#__PURE__*/React.createElement("span", { | ||
return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement("span", { | ||
className: "".concat(prefixCls, "-draggable-icon") | ||
}, draggableIcon) : null; | ||
}, draggable.icon) : null; | ||
}; | ||
@@ -282,0 +279,0 @@ |
{ | ||
"name": "rc-tree", | ||
"version": "5.1.0", | ||
"version": "5.2.0", | ||
"description": "tree ui component for react", | ||
@@ -5,0 +5,0 @@ "engines": { |
337815
7243