update rc-tree

This commit is contained in:
zombiej 2018-07-30 12:05:29 +08:00
parent 42efc2927d
commit 17b82a251a
6 changed files with 182 additions and 89 deletions

View File

@ -2,13 +2,13 @@ import * as React from 'react';
import classNames from 'classnames';
import omit from 'omit.js';
import debounce from 'lodash/debounce';
import { getFullKeyList, calcExpandedKeys } from 'rc-tree/lib/util';
import { conductExpandParent, convertTreeToEntities } from 'rc-tree/lib/util';
import Tree, {
TreeProps, AntdTreeNodeAttribute,
AntTreeNodeExpandedEvent, AntTreeNodeSelectedEvent, AntTreeNode,
} from './Tree';
import { calcRangeKeys } from './util';
import { calcRangeKeys, getFullKeyList } from './util';
import Icon from '../icon';
export type ExpandAction = false | 'click' | 'doubleClick';
@ -47,7 +47,8 @@ export default class DirectoryTree extends React.Component<DirectoryTreeProps, D
constructor(props: DirectoryTreeProps) {
super(props);
const { defaultExpandAll, defaultExpandParent, expandedKeys, defaultExpandedKeys } = props;
const { defaultExpandAll, defaultExpandParent, expandedKeys, defaultExpandedKeys, children } = props;
const { keyEntities } = convertTreeToEntities(children);
// Selected keys
this.state = {
@ -58,7 +59,7 @@ export default class DirectoryTree extends React.Component<DirectoryTreeProps, D
if (defaultExpandAll) {
this.state.expandedKeys = getFullKeyList(props.children);
} else if (defaultExpandParent) {
this.state.expandedKeys = calcExpandedKeys(expandedKeys || defaultExpandedKeys, props);
this.state.expandedKeys = conductExpandParent(expandedKeys || defaultExpandedKeys, keyEntities);
} else {
this.state.expandedKeys = defaultExpandedKeys;
}

View File

@ -142,7 +142,10 @@ export default class Tree extends React.Component<TreeProps, any> {
prefixCls: 'ant-tree',
checkable: false,
showIcon: false,
openAnimation: animation,
openAnimation: {
...animation,
appear: null,
},
};
render() {

View File

@ -3,11 +3,12 @@
exports[`renders ./components/tree/demo/basic.md correctly 1`] = `
<ul
class="ant-tree ant-tree-icon-hide"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-checkbox-checked"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -32,12 +33,14 @@ exports[`renders ./components/tree/demo/basic.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-disabled ant-tree-treenode-switcher-open ant-tree-treenode-checkbox-checked ant-tree-treenode-selected"
class="ant-tree-treenode-disabled ant-tree-treenode-switcher-close ant-tree-treenode-checkbox-checked ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
class="ant-tree-switcher ant-tree-switcher_close"
/>
<span
class="ant-tree-checkbox ant-tree-checkbox-checked ant-tree-checkbox-disabled"
@ -47,7 +50,7 @@ exports[`renders ./components/tree/demo/basic.md correctly 1`] = `
/>
</span>
<span
class="ant-tree-node-content-wrapper ant-tree-node-content-wrapper-open"
class="ant-tree-node-content-wrapper ant-tree-node-content-wrapper-close"
title="parent 1-0"
>
<span
@ -56,62 +59,10 @@ exports[`renders ./components/tree/demo/basic.md correctly 1`] = `
parent 1-0
</span>
</span>
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
>
<li
class="ant-tree-treenode-switcher-close"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
/>
<span
class="ant-tree-checkbox ant-tree-checkbox-disabled"
>
<span
class="ant-tree-checkbox-inner"
/>
</span>
<span
class="ant-tree-node-content-wrapper ant-tree-node-content-wrapper-normal"
title="leaf"
>
<span
class="ant-tree-title"
>
leaf
</span>
</span>
</li>
<li
class="ant-tree-treenode-switcher-close"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
/>
<span
class="ant-tree-checkbox"
>
<span
class="ant-tree-checkbox-inner"
/>
</span>
<span
class="ant-tree-node-content-wrapper ant-tree-node-content-wrapper-normal"
title="leaf"
>
<span
class="ant-tree-title"
>
leaf
</span>
</span>
</li>
</ul>
</li>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-checkbox-checked"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -136,9 +87,11 @@ exports[`renders ./components/tree/demo/basic.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-close ant-tree-treenode-checkbox-checked"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -175,11 +128,12 @@ exports[`renders ./components/tree/demo/basic.md correctly 1`] = `
exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
<ul
class="ant-tree ant-tree-icon-hide"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-checkbox-indeterminate"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -204,9 +158,11 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-checkbox-checked"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -231,9 +187,11 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-close ant-tree-treenode-checkbox-checked"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -258,6 +216,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close ant-tree-treenode-checkbox-checked"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -282,6 +241,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close ant-tree-treenode-checkbox-checked"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -308,6 +268,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -332,9 +293,11 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -359,6 +322,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -383,6 +347,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -409,6 +374,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -435,6 +401,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -459,6 +426,7 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -487,11 +455,12 @@ exports[`renders ./components/tree/demo/basic-controlled.md correctly 1`] = `
exports[`renders ./components/tree/demo/customized-icon.md correctly 1`] = `
<ul
class="ant-tree"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -516,9 +485,11 @@ exports[`renders ./components/tree/demo/customized-icon.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -543,6 +514,7 @@ exports[`renders ./components/tree/demo/customized-icon.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -573,11 +545,12 @@ exports[`renders ./components/tree/demo/customized-icon.md correctly 1`] = `
exports[`renders ./components/tree/demo/directory.md correctly 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -602,9 +575,11 @@ exports[`renders ./components/tree/demo/directory.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class=""
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -629,6 +604,7 @@ exports[`renders ./components/tree/demo/directory.md correctly 1`] = `
</li>
<li
class=""
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -655,6 +631,7 @@ exports[`renders ./components/tree/demo/directory.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -679,9 +656,11 @@ exports[`renders ./components/tree/demo/directory.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class=""
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -706,6 +685,7 @@ exports[`renders ./components/tree/demo/directory.md correctly 1`] = `
</li>
<li
class=""
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -736,11 +716,12 @@ exports[`renders ./components/tree/demo/directory.md correctly 1`] = `
exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
<ul
class="ant-tree ant-tree-icon-hide draggable-tree"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -760,9 +741,11 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -782,9 +765,11 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -804,6 +789,7 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -823,6 +809,7 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -844,6 +831,7 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -863,6 +851,7 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -884,6 +873,7 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -903,6 +893,7 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -926,11 +917,12 @@ exports[`renders ./components/tree/demo/draggable.md correctly 1`] = `
exports[`renders ./components/tree/demo/dynamic.md correctly 1`] = `
<ul
class="ant-tree ant-tree-icon-hide"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -948,6 +940,7 @@ exports[`renders ./components/tree/demo/dynamic.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -965,6 +958,7 @@ exports[`renders ./components/tree/demo/dynamic.md correctly 1`] = `
</li>
<li
class=""
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -986,11 +980,12 @@ exports[`renders ./components/tree/demo/dynamic.md correctly 1`] = `
exports[`renders ./components/tree/demo/line.md correctly 1`] = `
<ul
class="ant-tree ant-tree-icon-hide ant-tree-show-line"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -1008,9 +1003,11 @@ exports[`renders ./components/tree/demo/line.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -1028,9 +1025,11 @@ exports[`renders ./components/tree/demo/line.md correctly 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1048,6 +1047,7 @@ exports[`renders ./components/tree/demo/line.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1065,6 +1065,7 @@ exports[`renders ./components/tree/demo/line.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1084,6 +1085,7 @@ exports[`renders ./components/tree/demo/line.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -1101,6 +1103,7 @@ exports[`renders ./components/tree/demo/line.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -1142,11 +1145,12 @@ exports[`renders ./components/tree/demo/search.md correctly 1`] = `
</span>
<ul
class="ant-tree ant-tree-icon-hide"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -1169,6 +1173,7 @@ exports[`renders ./components/tree/demo/search.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -1191,6 +1196,7 @@ exports[`renders ./components/tree/demo/search.md correctly 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"

View File

@ -3,11 +3,12 @@
exports[`Directory Tree defaultExpandAll 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -32,9 +33,11 @@ exports[`Directory Tree defaultExpandAll 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -59,6 +62,7 @@ exports[`Directory Tree defaultExpandAll 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -85,6 +89,7 @@ exports[`Directory Tree defaultExpandAll 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -109,9 +114,11 @@ exports[`Directory Tree defaultExpandAll 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -136,6 +143,7 @@ exports[`Directory Tree defaultExpandAll 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -166,11 +174,12 @@ exports[`Directory Tree defaultExpandAll 1`] = `
exports[`Directory Tree defaultExpandParent 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -195,6 +204,7 @@ exports[`Directory Tree defaultExpandParent 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -223,11 +233,12 @@ exports[`Directory Tree defaultExpandParent 1`] = `
exports[`Directory Tree expand click 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -252,10 +263,12 @@ exports[`Directory Tree expand click 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open ant-motion-collapse"
data-expanded="true"
role="group"
style="height: 0px; opacity: 0;"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -280,6 +293,7 @@ exports[`Directory Tree expand click 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -306,6 +320,7 @@ exports[`Directory Tree expand click 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -334,11 +349,12 @@ exports[`Directory Tree expand click 1`] = `
exports[`Directory Tree expand click 2`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-close ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -363,10 +379,12 @@ exports[`Directory Tree expand click 2`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open ant-motion-collapse"
data-expanded="true"
role="group"
style="height: 0px; opacity: 1;"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -391,6 +409,7 @@ exports[`Directory Tree expand click 2`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -417,6 +436,7 @@ exports[`Directory Tree expand click 2`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -445,11 +465,12 @@ exports[`Directory Tree expand click 2`] = `
exports[`Directory Tree expand double click 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -474,10 +495,12 @@ exports[`Directory Tree expand double click 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open ant-motion-collapse"
data-expanded="true"
role="group"
style="height: 0px; opacity: 0;"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -502,6 +525,7 @@ exports[`Directory Tree expand double click 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -528,6 +552,7 @@ exports[`Directory Tree expand double click 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -556,11 +581,12 @@ exports[`Directory Tree expand double click 1`] = `
exports[`Directory Tree expand double click 2`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -585,10 +611,12 @@ exports[`Directory Tree expand double click 2`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open ant-motion-collapse"
data-expanded="true"
role="group"
style="height: 0px; opacity: 1;"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -613,6 +641,7 @@ exports[`Directory Tree expand double click 2`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -639,6 +668,7 @@ exports[`Directory Tree expand double click 2`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -667,11 +697,12 @@ exports[`Directory Tree expand double click 2`] = `
exports[`Directory Tree expand with state control click 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -696,10 +727,12 @@ exports[`Directory Tree expand with state control click 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
style=""
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -730,11 +763,12 @@ exports[`Directory Tree expand with state control click 1`] = `
exports[`Directory Tree expand with state control doubleClick 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -759,10 +793,12 @@ exports[`Directory Tree expand with state control doubleClick 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
style=""
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -793,11 +829,12 @@ exports[`Directory Tree expand with state control doubleClick 1`] = `
exports[`Directory Tree expandedKeys update 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_close"
@ -822,6 +859,7 @@ exports[`Directory Tree expandedKeys update 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -846,10 +884,12 @@ exports[`Directory Tree expandedKeys update 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open ant-motion-collapse"
data-expanded="true"
role="group"
style="height: 0px; opacity: 0;"
>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -874,6 +914,7 @@ exports[`Directory Tree expandedKeys update 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-close"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -904,11 +945,12 @@ exports[`Directory Tree expandedKeys update 1`] = `
exports[`Directory Tree group select 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -933,9 +975,11 @@ exports[`Directory Tree group select 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -960,6 +1004,7 @@ exports[`Directory Tree group select 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -986,6 +1031,7 @@ exports[`Directory Tree group select 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -1010,9 +1056,11 @@ exports[`Directory Tree group select 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1037,6 +1085,7 @@ exports[`Directory Tree group select 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1067,11 +1116,12 @@ exports[`Directory Tree group select 1`] = `
exports[`Directory Tree group select 2`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -1096,9 +1146,11 @@ exports[`Directory Tree group select 2`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1123,6 +1175,7 @@ exports[`Directory Tree group select 2`] = `
</li>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1149,6 +1202,7 @@ exports[`Directory Tree group select 2`] = `
</li>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -1173,9 +1227,11 @@ exports[`Directory Tree group select 2`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1200,6 +1256,7 @@ exports[`Directory Tree group select 2`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1230,11 +1287,12 @@ exports[`Directory Tree group select 2`] = `
exports[`Directory Tree selectedKeys update 1`] = `
<ul
class="ant-tree ant-tree-directory"
role="tree-node"
role="tree"
unselectable="on"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -1259,9 +1317,11 @@ exports[`Directory Tree selectedKeys update 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1286,6 +1346,7 @@ exports[`Directory Tree selectedKeys update 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1312,6 +1373,7 @@ exports[`Directory Tree selectedKeys update 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher_open"
@ -1336,9 +1398,11 @@ exports[`Directory Tree selectedKeys update 1`] = `
<ul
class="ant-tree-child-tree ant-tree-child-tree-open"
data-expanded="true"
role="group"
>
<li
class="ant-tree-treenode-switcher-open ant-tree-treenode-selected"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"
@ -1363,6 +1427,7 @@ exports[`Directory Tree selectedKeys update 1`] = `
</li>
<li
class="ant-tree-treenode-switcher-open"
role="treeitem"
>
<span
class="ant-tree-switcher ant-tree-switcher-noop"

View File

@ -1,9 +1,6 @@
import * as React from 'react';
import { traverseTreeNodes } from 'rc-tree/lib/util';
export interface TraverseData {
key: string,
}
import { getNodeChildren, convertTreeToEntities } from 'rc-tree/lib/util';
import { AntTreeNodeProps } from './Tree';
enum Record {
None,
@ -11,8 +8,27 @@ enum Record {
End,
}
// TODO: Move this logic into `rc-tree`
function traverseNodesKey(rootChildren: React.ReactNode | React.ReactNode[], callback: (key: string | number | null) => boolean) {
const nodeList:React.ReactNode[] = getNodeChildren(rootChildren) || [];
function processNode(node: React.ReactElement<AntTreeNodeProps>) {
const { key, props: { children } } = node;
if (callback(key) !== false) {
traverseNodesKey(children, callback);
}
}
nodeList.forEach(processNode);
}
export function getFullKeyList(children: React.ReactNode | React.ReactNode[]) {
const { keyEntities } = convertTreeToEntities(children);
return Object.keys(keyEntities);
}
/** 计算选中范围只考虑expanded情况以优化性能 */
export function calcRangeKeys(nodeList: React.ReactNode | React.ReactNode[], expandedKeys: string[], startKey?: string, endKey?: string): string[] {
export function calcRangeKeys(rootChildren: React.ReactNode | React.ReactNode[], expandedKeys: string[], startKey?: string, endKey?: string): string[] {
const keys: string[] = [];
let record: Record = Record.None;
@ -27,7 +43,7 @@ export function calcRangeKeys(nodeList: React.ReactNode | React.ReactNode[], exp
return key === startKey || key === endKey;
}
traverseTreeNodes(nodeList, ({ key }: TraverseData) => {
traverseNodesKey(rootChildren, (key: string) => {
if (record === Record.End) {
return false;
}
@ -50,6 +66,8 @@ export function calcRangeKeys(nodeList: React.ReactNode | React.ReactNode[], exp
if (expandedKeys.indexOf(key) === -1) {
return false;
}
return true;
});
return keys;

View File

@ -77,7 +77,7 @@
"rc-tabs": "~9.2.0",
"rc-time-picker": "~3.3.0",
"rc-tooltip": "~3.7.0",
"rc-tree": "~1.12.0",
"rc-tree": "~1.13.0",
"rc-tree-select": "~2.0.5",
"rc-trigger": "^2.5.4",
"rc-upload": "~2.5.0",