@opensumi/ide-components 3.1.1-next-1718177767.0 → 3.1.1-next-1718250961.0

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