@opensumi/ide-components 3.1.1-next-1718284437.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/238.index.js +7994 -0
- package/dist/index.css +1 -3880
- package/dist/index.js +62285 -4654
- package/lib/markdown/styles.less +0 -12
- package/lib/recycle-tree/tree/TreeNode.d.ts +9 -11
- package/lib/recycle-tree/tree/TreeNode.d.ts.map +1 -1
- package/lib/recycle-tree/tree/TreeNode.js +78 -63
- package/lib/recycle-tree/tree/TreeNode.js.map +1 -1
- package/lib/recycle-tree/tree/model/treeState/TreeStateManager.d.ts +2 -0
- package/lib/recycle-tree/tree/model/treeState/TreeStateManager.d.ts.map +1 -1
- package/lib/recycle-tree/tree/model/treeState/TreeStateManager.js +7 -3
- package/lib/recycle-tree/tree/model/treeState/TreeStateManager.js.map +1 -1
- package/lib/recycle-tree/types/watcher.d.ts +12 -12
- package/lib/recycle-tree/types/watcher.d.ts.map +1 -1
- package/lib/scrollbars/styles.less +0 -10
- package/package.json +4 -4
- package/dist/vendors-node_modules_jschardet_index_js.index.js +0 -441
- package/lib/recycle-tree/path.d.ts +0 -11
- package/lib/recycle-tree/path.d.ts.map +0 -1
- package/lib/recycle-tree/path.js +0 -28
- package/lib/recycle-tree/path.js.map +0 -1
package/lib/markdown/styles.less
CHANGED
|
@@ -52,7 +52,7 @@ export declare class TreeNode implements ITreeNode {
|
|
|
52
52
|
protected _tree: ITree;
|
|
53
53
|
protected _visible: boolean;
|
|
54
54
|
protected _path: string;
|
|
55
|
-
protected constructor(tree: ITree, parent?: ICompositeTreeNode, watcher?: ITreeWatcher,
|
|
55
|
+
protected constructor(tree: ITree, parent?: ICompositeTreeNode, watcher?: ITreeWatcher, optionalMetadata?: {
|
|
56
56
|
[key: string]: any;
|
|
57
57
|
});
|
|
58
58
|
get disposed(): boolean;
|
|
@@ -73,9 +73,7 @@ export declare class TreeNode implements ITreeNode {
|
|
|
73
73
|
*/
|
|
74
74
|
get name(): string;
|
|
75
75
|
set name(name: string);
|
|
76
|
-
protected validateName(name: string): void;
|
|
77
76
|
get path(): string;
|
|
78
|
-
joinPath(...paths: string[]): string;
|
|
79
77
|
get accessibilityInformation(): IAccessibilityInformation;
|
|
80
78
|
getMetadata(withKey: string): any;
|
|
81
79
|
addMetadata(withKey: string, value: any): void;
|
|
@@ -109,17 +107,11 @@ export declare class CompositeTreeNode extends TreeNode implements ICompositeTre
|
|
|
109
107
|
private refreshThrottler;
|
|
110
108
|
private toRefreshPathQueue;
|
|
111
109
|
protected generatorWatcher(): ITreeWatcher;
|
|
112
|
-
constructor(tree: ITree, parent?: ICompositeTreeNode, watcher?: ITreeWatcher,
|
|
110
|
+
constructor(tree: ITree, parent?: ICompositeTreeNode, watcher?: ITreeWatcher, optionalMetadata?: {
|
|
113
111
|
[key: string]: any;
|
|
114
112
|
});
|
|
115
|
-
/**
|
|
116
|
-
* 重载 setter 后,必须要重载 getter
|
|
117
|
-
*/
|
|
118
|
-
get name(): string;
|
|
119
|
-
/**
|
|
120
|
-
* 重载 name 的 setter,路径改变时需要重新监听文件节点变化
|
|
121
|
-
*/
|
|
122
113
|
set name(name: string);
|
|
114
|
+
get name(): string;
|
|
123
115
|
get watcher(): ITreeWatcher;
|
|
124
116
|
get type(): TreeNodeType;
|
|
125
117
|
get children(): ITreeNodeOrCompositeTreeNode[] | null;
|
|
@@ -235,36 +227,42 @@ export declare class CompositeTreeNode extends TreeNode implements ICompositeTre
|
|
|
235
227
|
private transformToRelativePath;
|
|
236
228
|
/**
|
|
237
229
|
* 根据路径展开节点树
|
|
230
|
+
* @memberof CompositeTreeNode
|
|
238
231
|
*/
|
|
239
232
|
loadTreeNodeByPath(path: string, quiet?: boolean): Promise<ITreeNodeOrCompositeTreeNode | undefined>;
|
|
240
233
|
/**
|
|
241
234
|
* 根据节点获取节点ID下标位置
|
|
242
235
|
* @param {number} id
|
|
243
236
|
* @returns
|
|
237
|
+
* @memberof CompositeTreeNode
|
|
244
238
|
*/
|
|
245
239
|
getIndexAtTreeNodeId(id: number): number;
|
|
246
240
|
/**
|
|
247
241
|
* 根据节点获取节点下标位置
|
|
248
242
|
* @param {ITreeNodeOrCompositeTreeNode} node
|
|
249
243
|
* @returns
|
|
244
|
+
* @memberof CompositeTreeNode
|
|
250
245
|
*/
|
|
251
246
|
getIndexAtTreeNode(node: ITreeNodeOrCompositeTreeNode): number;
|
|
252
247
|
/**
|
|
253
248
|
* 根据下标位置获取节点
|
|
254
249
|
* @param {number} index
|
|
255
250
|
* @returns
|
|
251
|
+
* @memberof CompositeTreeNode
|
|
256
252
|
*/
|
|
257
253
|
getTreeNodeAtIndex(index: number): ITreeNode | undefined;
|
|
258
254
|
/**
|
|
259
255
|
* 根据节点ID获取节点
|
|
260
256
|
* @param {number} id
|
|
261
257
|
* @returns
|
|
258
|
+
* @memberof CompositeTreeNode
|
|
262
259
|
*/
|
|
263
260
|
getTreeNodeById(id: number): ITreeNodeOrCompositeTreeNode | undefined;
|
|
264
261
|
/**
|
|
265
262
|
* 根据节点路径获取节点
|
|
266
263
|
* @param {string} path
|
|
267
264
|
* @returns
|
|
265
|
+
* @memberof CompositeTreeNode
|
|
268
266
|
*/
|
|
269
267
|
getTreeNodeByPath(path: string): ITreeNodeOrCompositeTreeNode | undefined;
|
|
270
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../../../src/recycle-tree/tree/TreeNode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EAOxB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../../../src/recycle-tree/tree/TreeNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CompositeTreeNode = exports.TreeNode = exports.BranchOperatorStatus = exports.spliceArray = void 0;
|
|
4
4
|
/* eslint-disable @typescript-eslint/prefer-for-of */
|
|
5
5
|
const ide_utils_1 = require("@opensumi/ide-utils");
|
|
6
|
-
const path_1 = require("@opensumi/ide-utils/lib/path");
|
|
7
|
-
const utils_1 = require("../../utils");
|
|
8
|
-
const path_2 = require("../path");
|
|
9
6
|
const types_1 = require("../types");
|
|
10
7
|
const { Path } = ide_utils_1.path;
|
|
11
8
|
/**
|
|
@@ -27,10 +24,6 @@ var BranchOperatorStatus;
|
|
|
27
24
|
BranchOperatorStatus[BranchOperatorStatus["EXPANDED"] = 1] = "EXPANDED";
|
|
28
25
|
BranchOperatorStatus[BranchOperatorStatus["SHRINKED"] = 2] = "SHRINKED";
|
|
29
26
|
})(BranchOperatorStatus = exports.BranchOperatorStatus || (exports.BranchOperatorStatus = {}));
|
|
30
|
-
const nextIdFactory = () => {
|
|
31
|
-
let id = 0;
|
|
32
|
-
return () => id++;
|
|
33
|
-
};
|
|
34
27
|
class TreeNode {
|
|
35
28
|
static is(node) {
|
|
36
29
|
return !!node && 'depth' in node && 'name' in node && 'path' in node && 'id' in node;
|
|
@@ -83,13 +76,13 @@ class TreeNode {
|
|
|
83
76
|
TreeNode.pathToGlobalTreeState.set(path, state);
|
|
84
77
|
return state;
|
|
85
78
|
}
|
|
86
|
-
constructor(tree, parent, watcher,
|
|
79
|
+
constructor(tree, parent, watcher, optionalMetadata) {
|
|
87
80
|
this._uid = TreeNode.nextId();
|
|
88
81
|
this._parent = parent;
|
|
89
82
|
this._tree = tree;
|
|
90
83
|
this._disposed = false;
|
|
91
84
|
this._visible = true;
|
|
92
|
-
this._metadata = Object.assign({}, (
|
|
85
|
+
this._metadata = Object.assign({}, (optionalMetadata || {}));
|
|
93
86
|
this._depth = parent ? parent.depth + 1 : 0;
|
|
94
87
|
if (watcher) {
|
|
95
88
|
this._watcher = watcher;
|
|
@@ -133,45 +126,28 @@ class TreeNode {
|
|
|
133
126
|
* 一般不建议手动管理 `name`,采用默认值即可
|
|
134
127
|
*/
|
|
135
128
|
get name() {
|
|
136
|
-
// 根节点保证唯一性
|
|
137
129
|
if (!this.parent) {
|
|
138
130
|
return `root_${this.id}`;
|
|
139
131
|
}
|
|
140
|
-
|
|
141
|
-
this.validateName(name);
|
|
142
|
-
if (!name) {
|
|
143
|
-
name = String(TreeNode.nextId());
|
|
144
|
-
this._metadata['name'] = name;
|
|
145
|
-
}
|
|
146
|
-
return name;
|
|
132
|
+
return this.getMetadata('name') || String(this.id);
|
|
147
133
|
}
|
|
148
134
|
set name(name) {
|
|
149
|
-
this.validateName(name);
|
|
150
135
|
this.addMetadata('name', name);
|
|
151
136
|
// 节点 `name` 变化,更新当前节点的 `path` 属性
|
|
152
137
|
this._path = '';
|
|
153
138
|
}
|
|
154
|
-
validateName(name) {
|
|
155
|
-
if (!name) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
(0, utils_1.warning)(!name.includes(Path.separator), `[TreeNode] name should not include path separator: ${name}`);
|
|
159
|
-
}
|
|
160
139
|
// 节点绝对路径
|
|
161
140
|
get path() {
|
|
162
141
|
if (!this._path) {
|
|
163
|
-
if (this.parent) {
|
|
164
|
-
this._path = Path
|
|
142
|
+
if (!this.parent) {
|
|
143
|
+
this._path = new Path(`${Path.separator}${this.name}`).toString();
|
|
165
144
|
}
|
|
166
145
|
else {
|
|
167
|
-
this._path =
|
|
146
|
+
this._path = new Path(this.parent.path).join(this.name).toString();
|
|
168
147
|
}
|
|
169
148
|
}
|
|
170
149
|
return this._path;
|
|
171
150
|
}
|
|
172
|
-
joinPath(...paths) {
|
|
173
|
-
return Path.joinPath(this.path, ...paths);
|
|
174
|
-
}
|
|
175
151
|
get accessibilityInformation() {
|
|
176
152
|
return {
|
|
177
153
|
label: this.name,
|
|
@@ -179,6 +155,9 @@ class TreeNode {
|
|
|
179
155
|
};
|
|
180
156
|
}
|
|
181
157
|
getMetadata(withKey) {
|
|
158
|
+
if (withKey === 'name' && !this._metadata[withKey]) {
|
|
159
|
+
this._metadata[withKey] = String(TreeNode.nextId());
|
|
160
|
+
}
|
|
182
161
|
return this._metadata[withKey];
|
|
183
162
|
}
|
|
184
163
|
addMetadata(withKey, value) {
|
|
@@ -205,7 +184,7 @@ class TreeNode {
|
|
|
205
184
|
type: types_1.MetadataChangeType.Removed,
|
|
206
185
|
key: withKey,
|
|
207
186
|
prevValue,
|
|
208
|
-
value:
|
|
187
|
+
value: void 0,
|
|
209
188
|
});
|
|
210
189
|
}
|
|
211
190
|
}
|
|
@@ -263,7 +242,10 @@ class TreeNode {
|
|
|
263
242
|
}
|
|
264
243
|
}
|
|
265
244
|
exports.TreeNode = TreeNode;
|
|
266
|
-
TreeNode.nextId =
|
|
245
|
+
TreeNode.nextId = (() => {
|
|
246
|
+
let id = 0;
|
|
247
|
+
return () => id++;
|
|
248
|
+
})();
|
|
267
249
|
TreeNode.idToTreeNode = new Map();
|
|
268
250
|
TreeNode.pathToTreeNode = new Map();
|
|
269
251
|
TreeNode.pathToId = new Map();
|
|
@@ -348,9 +330,9 @@ class CompositeTreeNode extends TreeNode {
|
|
|
348
330
|
};
|
|
349
331
|
return watcher;
|
|
350
332
|
}
|
|
351
|
-
// parent 为
|
|
352
|
-
constructor(tree, parent, watcher,
|
|
353
|
-
super(tree, parent, watcher,
|
|
333
|
+
// parent 为undefined即表示该节点为根节点
|
|
334
|
+
constructor(tree, parent, watcher, optionalMetadata) {
|
|
335
|
+
super(tree, parent, watcher, optionalMetadata);
|
|
354
336
|
this._children = null;
|
|
355
337
|
this._lock = false;
|
|
356
338
|
this.refreshThrottler = new ide_utils_1.ThrottledDelayer(CompositeTreeNode.REFRESH_DELAY);
|
|
@@ -391,9 +373,11 @@ class CompositeTreeNode extends TreeNode {
|
|
|
391
373
|
}
|
|
392
374
|
case types_1.WatchEvent.Removed: {
|
|
393
375
|
const { path } = event;
|
|
394
|
-
const
|
|
395
|
-
|
|
396
|
-
|
|
376
|
+
const pathObject = new Path(path);
|
|
377
|
+
const dirName = pathObject.dir.toString();
|
|
378
|
+
const name = pathObject.base.toString();
|
|
379
|
+
if (dirName === this.path && !!this.children) {
|
|
380
|
+
const item = this.children.find((c) => c.name === name);
|
|
397
381
|
if (item) {
|
|
398
382
|
this.unlinkItem(item);
|
|
399
383
|
}
|
|
@@ -426,25 +410,27 @@ class CompositeTreeNode extends TreeNode {
|
|
|
426
410
|
this._watcher = parent.watcher;
|
|
427
411
|
}
|
|
428
412
|
}
|
|
429
|
-
|
|
430
|
-
* 重载 setter 后,必须要重载 getter
|
|
431
|
-
*/
|
|
432
|
-
get name() {
|
|
433
|
-
return super.name;
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* 重载 name 的 setter,路径改变时需要重新监听文件节点变化
|
|
437
|
-
*/
|
|
413
|
+
// 重载 name 的 getter/setter,路径改变时需要重新监听文件节点变化
|
|
438
414
|
set name(name) {
|
|
439
415
|
const prevPath = this.path;
|
|
440
416
|
if (!CompositeTreeNode.isRoot(this) && typeof this.watchTerminator === 'function') {
|
|
441
417
|
this.watchTerminator(prevPath);
|
|
418
|
+
this.addMetadata('name', name);
|
|
442
419
|
this.watchTerminator = this.watcher.onWatchEvent(this.path, this.handleWatchEvent);
|
|
443
420
|
}
|
|
444
|
-
|
|
421
|
+
else {
|
|
422
|
+
this.addMetadata('name', name);
|
|
423
|
+
}
|
|
445
424
|
// 节点 `name` 变化,更新当前节点的 `path` 属性
|
|
446
425
|
this._path = '';
|
|
447
426
|
}
|
|
427
|
+
get name() {
|
|
428
|
+
// 根节点保证路径不重复
|
|
429
|
+
if (!this.parent) {
|
|
430
|
+
return `root_${this.id}`;
|
|
431
|
+
}
|
|
432
|
+
return this.getMetadata('name');
|
|
433
|
+
}
|
|
448
434
|
// 作为根节点唯一的watcher需要在生成新节点的时候传入
|
|
449
435
|
get watcher() {
|
|
450
436
|
return this._watcher;
|
|
@@ -955,7 +941,7 @@ class CompositeTreeNode extends TreeNode {
|
|
|
955
941
|
if (!CompositeTreeNode.isRoot(this)) {
|
|
956
942
|
return;
|
|
957
943
|
}
|
|
958
|
-
collapsedPaths = (
|
|
944
|
+
collapsedPaths = collapsedPaths.sort((a, b) => Path.pathDepth(a) - Path.pathDepth(b));
|
|
959
945
|
let path;
|
|
960
946
|
while (collapsedPaths.length > 0) {
|
|
961
947
|
path = collapsedPaths.pop();
|
|
@@ -972,7 +958,7 @@ class CompositeTreeNode extends TreeNode {
|
|
|
972
958
|
if (!CompositeTreeNode.isRoot(this)) {
|
|
973
959
|
return;
|
|
974
960
|
}
|
|
975
|
-
expandedPaths = (
|
|
961
|
+
expandedPaths = expandedPaths.sort((a, b) => Path.pathDepth(a) - Path.pathDepth(b));
|
|
976
962
|
let path;
|
|
977
963
|
while (expandedPaths.length > 0) {
|
|
978
964
|
path = expandedPaths.pop();
|
|
@@ -1139,24 +1125,24 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1139
1125
|
*/
|
|
1140
1126
|
transferItem(oldPath, newPath) {
|
|
1141
1127
|
var _a;
|
|
1142
|
-
const oldP =
|
|
1143
|
-
const from = oldP.
|
|
1128
|
+
const oldP = new Path(oldPath);
|
|
1129
|
+
const from = oldP.dir.toString();
|
|
1144
1130
|
if (from !== this.path) {
|
|
1145
1131
|
return;
|
|
1146
1132
|
}
|
|
1147
|
-
const name = oldP.
|
|
1133
|
+
const name = oldP.base.toString();
|
|
1148
1134
|
const item = (_a = this._children) === null || _a === void 0 ? void 0 : _a.find((c) => c.name === name);
|
|
1149
1135
|
if (!item) {
|
|
1150
1136
|
return;
|
|
1151
1137
|
}
|
|
1152
|
-
const newP =
|
|
1153
|
-
const to = newP.
|
|
1138
|
+
const newP = new Path(newPath);
|
|
1139
|
+
const to = newP.dir.toString();
|
|
1154
1140
|
const destDir = to === from ? this : TreeNode.getTreeNodeByPath(to);
|
|
1155
1141
|
if (!CompositeTreeNode.is(destDir)) {
|
|
1156
1142
|
this.unlinkItem(item);
|
|
1157
1143
|
return;
|
|
1158
1144
|
}
|
|
1159
|
-
item.mv(destDir, newP.
|
|
1145
|
+
item.mv(destDir, newP.base.toString());
|
|
1160
1146
|
return item;
|
|
1161
1147
|
}
|
|
1162
1148
|
dispose() {
|
|
@@ -1344,9 +1330,11 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1344
1330
|
return this.insertItem(node);
|
|
1345
1331
|
}
|
|
1346
1332
|
removeNode(path) {
|
|
1347
|
-
const
|
|
1348
|
-
|
|
1349
|
-
|
|
1333
|
+
const pathObject = new Path(path);
|
|
1334
|
+
const dirName = pathObject.dir.toString();
|
|
1335
|
+
const name = pathObject.base.toString();
|
|
1336
|
+
if (dirName === this.path && !!this.children) {
|
|
1337
|
+
const item = this.children.find((c) => c.name === name);
|
|
1350
1338
|
if (item) {
|
|
1351
1339
|
this.unlinkItem(item);
|
|
1352
1340
|
}
|
|
@@ -1398,18 +1386,38 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1398
1386
|
await target.refreshTreeNodeByPaths(paths, token, target);
|
|
1399
1387
|
}
|
|
1400
1388
|
getRefreshNode() {
|
|
1401
|
-
|
|
1389
|
+
let paths = Array.from(this.toRefreshPathQueue);
|
|
1402
1390
|
this.toRefreshPathQueue.clear();
|
|
1403
1391
|
if (!paths.length) {
|
|
1404
1392
|
return this.root;
|
|
1405
1393
|
}
|
|
1394
|
+
// 根据路径层级深度进行排序
|
|
1395
|
+
paths = paths.sort((a, b) => {
|
|
1396
|
+
const depthA = Path.pathDepth(a);
|
|
1397
|
+
const depthB = Path.pathDepth(b);
|
|
1398
|
+
return depthA - depthB;
|
|
1399
|
+
});
|
|
1406
1400
|
if (paths.length === 1 || Path.pathDepth(paths[0]) === 1) {
|
|
1407
1401
|
// 说明刷新队列中包含根节点,直接返回根节点进行刷新
|
|
1408
1402
|
return TreeNode.getTreeNodeByPath(paths[0]);
|
|
1409
1403
|
}
|
|
1410
|
-
const
|
|
1404
|
+
const sortedPaths = paths.map((p) => new Path(p));
|
|
1405
|
+
let rootPath = sortedPaths[0];
|
|
1406
|
+
for (let i = 1, len = sortedPaths.length; i < len; i++) {
|
|
1407
|
+
if (rootPath.isEqualOrParent(sortedPaths[i])) {
|
|
1408
|
+
continue;
|
|
1409
|
+
}
|
|
1410
|
+
else {
|
|
1411
|
+
while (!rootPath.isRoot) {
|
|
1412
|
+
rootPath = rootPath.dir;
|
|
1413
|
+
if (!rootPath || rootPath.isEqualOrParent(sortedPaths[i])) {
|
|
1414
|
+
break;
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
}
|
|
1418
|
+
}
|
|
1411
1419
|
if (rootPath) {
|
|
1412
|
-
return TreeNode.getTreeNodeByPath(rootPath);
|
|
1420
|
+
return TreeNode.getTreeNodeByPath(rootPath.toString());
|
|
1413
1421
|
}
|
|
1414
1422
|
return this.root;
|
|
1415
1423
|
}
|
|
@@ -1434,12 +1442,14 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1434
1442
|
return !!this._flattenedBranch && this._flattenedBranch.indexOf(item.id) > -1;
|
|
1435
1443
|
}
|
|
1436
1444
|
transformToRelativePath(path) {
|
|
1437
|
-
const
|
|
1445
|
+
const { splitPath } = Path;
|
|
1446
|
+
const pathFlag = splitPath(path);
|
|
1438
1447
|
pathFlag.shift();
|
|
1439
1448
|
return pathFlag;
|
|
1440
1449
|
}
|
|
1441
1450
|
/**
|
|
1442
1451
|
* 根据路径展开节点树
|
|
1452
|
+
* @memberof CompositeTreeNode
|
|
1443
1453
|
*/
|
|
1444
1454
|
async loadTreeNodeByPath(path, quiet = false) {
|
|
1445
1455
|
if (!CompositeTreeNode.isRoot(this)) {
|
|
@@ -1603,6 +1613,7 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1603
1613
|
* 根据节点获取节点ID下标位置
|
|
1604
1614
|
* @param {number} id
|
|
1605
1615
|
* @returns
|
|
1616
|
+
* @memberof CompositeTreeNode
|
|
1606
1617
|
*/
|
|
1607
1618
|
getIndexAtTreeNodeId(id) {
|
|
1608
1619
|
if (this._flattenedBranch) {
|
|
@@ -1614,6 +1625,7 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1614
1625
|
* 根据节点获取节点下标位置
|
|
1615
1626
|
* @param {ITreeNodeOrCompositeTreeNode} node
|
|
1616
1627
|
* @returns
|
|
1628
|
+
* @memberof CompositeTreeNode
|
|
1617
1629
|
*/
|
|
1618
1630
|
getIndexAtTreeNode(node) {
|
|
1619
1631
|
if (this._flattenedBranch) {
|
|
@@ -1625,6 +1637,7 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1625
1637
|
* 根据下标位置获取节点
|
|
1626
1638
|
* @param {number} index
|
|
1627
1639
|
* @returns
|
|
1640
|
+
* @memberof CompositeTreeNode
|
|
1628
1641
|
*/
|
|
1629
1642
|
getTreeNodeAtIndex(index) {
|
|
1630
1643
|
var _a;
|
|
@@ -1638,6 +1651,7 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1638
1651
|
* 根据节点ID获取节点
|
|
1639
1652
|
* @param {number} id
|
|
1640
1653
|
* @returns
|
|
1654
|
+
* @memberof CompositeTreeNode
|
|
1641
1655
|
*/
|
|
1642
1656
|
getTreeNodeById(id) {
|
|
1643
1657
|
return TreeNode.getTreeNodeById(id);
|
|
@@ -1646,6 +1660,7 @@ class CompositeTreeNode extends TreeNode {
|
|
|
1646
1660
|
* 根据节点路径获取节点
|
|
1647
1661
|
* @param {string} path
|
|
1648
1662
|
* @returns
|
|
1663
|
+
* @memberof CompositeTreeNode
|
|
1649
1664
|
*/
|
|
1650
1665
|
getTreeNodeByPath(path) {
|
|
1651
1666
|
return TreeNode.getTreeNodeByPath(path);
|