@theia/core 1.46.1 → 1.47.0-next.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.
Files changed (36) hide show
  1. package/README.md +6 -6
  2. package/lib/browser/tree/test/mock-selectable-tree-model.d.ts +15 -0
  3. package/lib/browser/tree/test/mock-selectable-tree-model.d.ts.map +1 -0
  4. package/lib/browser/tree/test/mock-selectable-tree-model.js +103 -0
  5. package/lib/browser/tree/test/mock-selectable-tree-model.js.map +1 -0
  6. package/lib/browser/tree/tree-model.d.ts +24 -0
  7. package/lib/browser/tree/tree-model.d.ts.map +1 -1
  8. package/lib/browser/tree/tree-model.js +46 -0
  9. package/lib/browser/tree/tree-model.js.map +1 -1
  10. package/lib/browser/tree/tree-selectable.spec.d.ts +2 -0
  11. package/lib/browser/tree/tree-selectable.spec.d.ts.map +1 -0
  12. package/lib/browser/tree/tree-selectable.spec.js +147 -0
  13. package/lib/browser/tree/tree-selectable.spec.js.map +1 -0
  14. package/lib/common/disposable.d.ts +28 -0
  15. package/lib/common/disposable.d.ts.map +1 -1
  16. package/lib/common/disposable.js +28 -0
  17. package/lib/common/disposable.js.map +1 -1
  18. package/lib/common/disposable.spec.js +51 -0
  19. package/lib/common/disposable.spec.js.map +1 -1
  20. package/lib/common/quick-pick-service.d.ts +1 -1
  21. package/lib/common/quick-pick-service.d.ts.map +1 -1
  22. package/lib/common/reference.d.ts +55 -0
  23. package/lib/common/reference.d.ts.map +1 -1
  24. package/lib/common/reference.js +55 -0
  25. package/lib/common/reference.js.map +1 -1
  26. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js +3 -3
  27. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
  28. package/package.json +6 -6
  29. package/src/browser/tree/test/mock-selectable-tree-model.ts +109 -0
  30. package/src/browser/tree/tree-model.ts +74 -0
  31. package/src/browser/tree/tree-selectable.spec.ts +152 -0
  32. package/src/common/disposable.spec.ts +66 -1
  33. package/src/common/disposable.ts +28 -0
  34. package/src/common/quick-pick-service.ts +1 -1
  35. package/src/common/reference.ts +55 -0
  36. package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +1 -1
package/README.md CHANGED
@@ -84,12 +84,12 @@ export class SomeClass {
84
84
  - `@phosphor/signaling` (from [`@phosphor/signaling@1`](https://www.npmjs.com/package/@phosphor/signaling))
85
85
  - `@phosphor/virtualdom` (from [`@phosphor/virtualdom@1`](https://www.npmjs.com/package/@phosphor/virtualdom))
86
86
  - `@phosphor/widgets` (from [`@phosphor/widgets@1`](https://www.npmjs.com/package/@phosphor/widgets))
87
- - `@theia/application-package` (from [`@theia/application-package@1.46.1`](https://www.npmjs.com/package/@theia/application-package/v/1.46.1))
88
- - `@theia/application-package/lib/api` (from [`@theia/application-package@1.46.1`](https://www.npmjs.com/package/@theia/application-package/v/1.46.1))
89
- - `@theia/application-package/lib/environment` (from [`@theia/application-package@1.46.1`](https://www.npmjs.com/package/@theia/application-package/v/1.46.1))
90
- - `@theia/request` (from [`@theia/request@1.46.1`](https://www.npmjs.com/package/@theia/request/v/1.46.1))
91
- - `@theia/request/lib/proxy` (from [`@theia/request@1.46.1`](https://www.npmjs.com/package/@theia/request/v/1.46.1))
92
- - `@theia/request/lib/node-request-service` (from [`@theia/request@1.46.1`](https://www.npmjs.com/package/@theia/request/v/1.46.1))
87
+ - `@theia/application-package` (from [`@theia/application-package@1.47.0-next.0+f332cad`](https://www.npmjs.com/package/@theia/application-package/v/1.47.0-next.0))
88
+ - `@theia/application-package/lib/api` (from [`@theia/application-package@1.47.0-next.0+f332cad`](https://www.npmjs.com/package/@theia/application-package/v/1.47.0-next.0))
89
+ - `@theia/application-package/lib/environment` (from [`@theia/application-package@1.47.0-next.0+f332cad`](https://www.npmjs.com/package/@theia/application-package/v/1.47.0-next.0))
90
+ - `@theia/request` (from [`@theia/request@1.47.0-next.0+f332cad`](https://www.npmjs.com/package/@theia/request/v/1.47.0-next.0))
91
+ - `@theia/request/lib/proxy` (from [`@theia/request@1.47.0-next.0+f332cad`](https://www.npmjs.com/package/@theia/request/v/1.47.0-next.0))
92
+ - `@theia/request/lib/node-request-service` (from [`@theia/request@1.47.0-next.0+f332cad`](https://www.npmjs.com/package/@theia/request/v/1.47.0-next.0))
93
93
  - `fs-extra` (from [`fs-extra@^4.0.2`](https://www.npmjs.com/package/fs-extra))
94
94
  - `fuzzy` (from [`fuzzy@^0.1.3`](https://www.npmjs.com/package/fuzzy))
95
95
  - `inversify` (from [`inversify@^6.0.1`](https://www.npmjs.com/package/inversify))
@@ -0,0 +1,15 @@
1
+ import { CompositeTreeNode } from '../tree';
2
+ import { SelectableTreeNode } from '../tree-selection';
3
+ export declare namespace MockSelectableTreeModel {
4
+ interface SelectableNode {
5
+ readonly id: string;
6
+ readonly selected: boolean;
7
+ readonly focused?: boolean;
8
+ readonly children?: SelectableNode[];
9
+ }
10
+ namespace SelectableNode {
11
+ function toTreeNode(root: SelectableNode, parent?: SelectableTreeNode & CompositeTreeNode): SelectableTreeNode;
12
+ }
13
+ const HIERARCHICAL_MOCK_ROOT: () => SelectableTreeNode;
14
+ }
15
+ //# sourceMappingURL=mock-selectable-tree-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-selectable-tree-model.d.ts","sourceRoot":"","sources":["../../../../src/browser/tree/test/mock-selectable-tree-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,yBAAiB,uBAAuB,CAAC;IAErC,UAAiB,cAAc;QAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;KACxC;IAED,UAAiB,cAAc,CAAC;QAC5B,SAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,kBAAkB,CAuBpH;KACJ;IAEM,MAAM,sBAAsB,0BAmDjC,CAAC;CACN"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 Ericsson and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MockSelectableTreeModel = void 0;
19
+ var MockSelectableTreeModel;
20
+ (function (MockSelectableTreeModel) {
21
+ let SelectableNode;
22
+ (function (SelectableNode) {
23
+ function toTreeNode(root, parent) {
24
+ const { id } = root;
25
+ const name = id;
26
+ const selected = false;
27
+ const focus = false;
28
+ const expanded = true;
29
+ const node = {
30
+ id,
31
+ name,
32
+ selected,
33
+ focus,
34
+ parent: parent,
35
+ children: []
36
+ };
37
+ const children = (root.children || []).map(child => SelectableNode.toTreeNode(child, node));
38
+ if (children.length === 0) {
39
+ return node;
40
+ }
41
+ else {
42
+ node.children = children;
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ node.expanded = expanded;
45
+ return node;
46
+ }
47
+ }
48
+ SelectableNode.toTreeNode = toTreeNode;
49
+ })(SelectableNode = MockSelectableTreeModel.SelectableNode || (MockSelectableTreeModel.SelectableNode = {}));
50
+ MockSelectableTreeModel.HIERARCHICAL_MOCK_ROOT = () => SelectableNode.toTreeNode({
51
+ 'id': '1',
52
+ 'selected': false,
53
+ 'children': [
54
+ {
55
+ 'id': '1.1',
56
+ 'selected': false,
57
+ 'children': [
58
+ {
59
+ 'id': '1.1.1',
60
+ 'selected': false,
61
+ },
62
+ {
63
+ 'id': '1.1.2',
64
+ 'selected': false,
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ 'id': '1.2',
70
+ 'selected': false,
71
+ 'children': [
72
+ {
73
+ 'id': '1.2.1',
74
+ 'selected': false,
75
+ 'children': [
76
+ {
77
+ 'id': '1.2.1.1',
78
+ 'selected': false,
79
+ },
80
+ {
81
+ 'id': '1.2.1.2',
82
+ 'selected': false,
83
+ }
84
+ ]
85
+ },
86
+ {
87
+ 'id': '1.2.2',
88
+ 'selected': false,
89
+ },
90
+ {
91
+ 'id': '1.2.3',
92
+ 'selected': false,
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ 'id': '1.3',
98
+ 'selected': false,
99
+ }
100
+ ]
101
+ });
102
+ })(MockSelectableTreeModel = exports.MockSelectableTreeModel || (exports.MockSelectableTreeModel = {}));
103
+ //# sourceMappingURL=mock-selectable-tree-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-selectable-tree-model.js","sourceRoot":"","sources":["../../../../src/browser/tree/test/mock-selectable-tree-model.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAMhF,IAAiB,uBAAuB,CAwFvC;AAxFD,WAAiB,uBAAuB;IASpC,IAAiB,cAAc,CAyB9B;IAzBD,WAAiB,cAAc;QAC3B,SAAgB,UAAU,CAAC,IAAoB,EAAE,MAA+C;YAC5F,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;YACpB,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC;YACtB,MAAM,IAAI,GAA2C;gBACjD,EAAE;gBACF,IAAI;gBACJ,QAAQ;gBACR,KAAK;gBACL,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,EAAE;aACf,CAAC;YACF,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,8DAA8D;gBAC7D,IAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAClC,OAAO,IAAmE,CAAC;aAC9E;QACL,CAAC;QAvBe,yBAAU,aAuBzB,CAAA;IACL,CAAC,EAzBgB,cAAc,GAAd,sCAAc,KAAd,sCAAc,QAyB9B;IAEY,8CAAsB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC;QAClE,IAAI,EAAE,GAAG;QACT,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE;oBACR;wBACI,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,KAAK;qBACpB;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,KAAK;qBACpB;iBACJ;aACJ;YACD;gBACI,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE;oBACR;wBACI,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE;4BACR;gCACI,IAAI,EAAE,SAAS;gCACf,UAAU,EAAE,KAAK;6BACpB;4BACD;gCACI,IAAI,EAAE,SAAS;gCACf,UAAU,EAAE,KAAK;6BACpB;yBACJ;qBACJ;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,KAAK;qBACpB;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE,KAAK;qBACpB;iBACJ;aACJ;YACD;gBACI,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,KAAK;aACpB;SACJ;KACJ,CAAC,CAAC;AACP,CAAC,EAxFgB,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAwFvC"}
@@ -70,18 +70,34 @@ export interface TreeModel extends Tree, TreeSelectionService, TreeExpansionServ
70
70
  * Navigates backward.
71
71
  */
72
72
  navigateBackward(): Promise<void>;
73
+ /**
74
+ * Selects the previous tree node, regardless of its selection or visibility state.
75
+ */
76
+ selectPrev(): void;
73
77
  /**
74
78
  * Selects the previous node relatively to the currently selected one. This method takes the expansion state of the tree into consideration.
75
79
  */
76
80
  selectPrevNode(type?: TreeSelection.SelectionType): void;
81
+ /**
82
+ * Returns the previous tree node, regardless of its selection or visibility state.
83
+ */
84
+ getPrevNode(node?: TreeNode): TreeNode | undefined;
77
85
  /**
78
86
  * Returns the previous selectable tree node.
79
87
  */
80
88
  getPrevSelectableNode(node?: TreeNode): SelectableTreeNode | undefined;
89
+ /**
90
+ * Selects the next tree node, regardless of its selection or visibility state.
91
+ */
92
+ selectNext(): void;
81
93
  /**
82
94
  * Selects the next node relatively to the currently selected one. This method takes the expansion state of the tree into consideration.
83
95
  */
84
96
  selectNextNode(type?: TreeSelection.SelectionType): void;
97
+ /**
98
+ * Returns the next tree node, regardless of its selection or visibility state.
99
+ */
100
+ getNextNode(node?: TreeNode): TreeNode | undefined;
85
101
  /**
86
102
  * Returns the next selectable tree node.
87
103
  */
@@ -141,13 +157,21 @@ export declare class TreeModelImpl implements TreeModel, SelectionProvider<Reado
141
157
  collapseNode(raw?: Readonly<ExpandableTreeNode>): Promise<boolean>;
142
158
  collapseAll(raw?: Readonly<CompositeTreeNode>): Promise<boolean>;
143
159
  toggleNodeExpansion(raw?: Readonly<ExpandableTreeNode>): Promise<void>;
160
+ selectPrev(): void;
144
161
  selectPrevNode(type?: TreeSelection.SelectionType): void;
162
+ getPrevNode(node?: TreeNode | undefined): TreeNode | undefined;
145
163
  getPrevSelectableNode(node?: TreeNode | undefined): SelectableTreeNode | undefined;
164
+ selectNext(): void;
146
165
  selectNextNode(type?: TreeSelection.SelectionType): void;
166
+ getNextNode(node?: TreeNode | undefined): TreeNode | undefined;
147
167
  getNextSelectableNode(node?: TreeNode | undefined): SelectableTreeNode | undefined;
168
+ protected selectNodeIfSelectable(node: TreeNode | undefined): void;
169
+ protected doGetNode(iterator: TreeIterator): TreeNode | undefined;
148
170
  protected doGetNextNode<T extends TreeNode>(iterator: TreeIterator, criterion: (node: TreeNode) => node is T): T | undefined;
149
171
  protected isVisibleSelectableNode(node: TreeNode): node is SelectableTreeNode;
172
+ protected createBackwardTreeIterator(node: TreeNode | undefined): TreeIterator | undefined;
150
173
  protected createBackwardIterator(node: TreeNode | undefined): TreeIterator | undefined;
174
+ protected createTreeIterator(node: TreeNode | undefined): TreeIterator | undefined;
151
175
  protected createIterator(node: TreeNode | undefined): TreeIterator | undefined;
152
176
  protected createForwardIteratorForNode(node: TreeNode): TreeIterator;
153
177
  openNode(raw?: TreeNode | undefined): void;
@@ -1 +1 @@
1
- {"version":3,"file":"tree-model.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/tree-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-model.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/tree-model.ts"],"names":[],"mappings":"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"}
@@ -157,12 +157,20 @@ let TreeModelImpl = class TreeModelImpl {
157
157
  }
158
158
  }
159
159
  }
160
+ selectPrev() {
161
+ const node = this.getPrevNode();
162
+ this.selectNodeIfSelectable(node);
163
+ }
160
164
  selectPrevNode(type = tree_selection_1.TreeSelection.SelectionType.DEFAULT) {
161
165
  const node = this.getPrevSelectableNode();
162
166
  if (node) {
163
167
  this.addSelection({ node, type });
164
168
  }
165
169
  }
170
+ getPrevNode(node = this.getFocusedNode()) {
171
+ const iterator = this.createBackwardTreeIterator(node);
172
+ return iterator && this.doGetNode(iterator);
173
+ }
166
174
  getPrevSelectableNode(node = this.getFocusedNode()) {
167
175
  if (!node) {
168
176
  return this.getNextSelectableNode(this.root);
@@ -170,18 +178,36 @@ let TreeModelImpl = class TreeModelImpl {
170
178
  const iterator = this.createBackwardIterator(node);
171
179
  return iterator && this.doGetNextNode(iterator, this.isVisibleSelectableNode.bind(this));
172
180
  }
181
+ selectNext() {
182
+ const node = this.getNextNode();
183
+ this.selectNodeIfSelectable(node);
184
+ }
173
185
  selectNextNode(type = tree_selection_1.TreeSelection.SelectionType.DEFAULT) {
174
186
  const node = this.getNextSelectableNode();
175
187
  if (node) {
176
188
  this.addSelection({ node, type });
177
189
  }
178
190
  }
191
+ getNextNode(node = this.getFocusedNode()) {
192
+ const iterator = this.createTreeIterator(node);
193
+ return iterator && this.doGetNode(iterator);
194
+ }
179
195
  getNextSelectableNode(node) {
180
196
  var _a;
181
197
  if (node === void 0) { node = (_a = this.getFocusedNode()) !== null && _a !== void 0 ? _a : this.root; }
182
198
  const iterator = this.createIterator(node);
183
199
  return iterator && this.doGetNextNode(iterator, this.isVisibleSelectableNode.bind(this));
184
200
  }
201
+ selectNodeIfSelectable(node) {
202
+ if (tree_selection_1.SelectableTreeNode.is(node)) {
203
+ this.addSelection(node);
204
+ }
205
+ }
206
+ doGetNode(iterator) {
207
+ iterator.next();
208
+ const result = iterator.next();
209
+ return result.done ? undefined : result.value;
210
+ }
185
211
  doGetNextNode(iterator, criterion) {
186
212
  // Skip the first item. // TODO: clean this up, and skip the first item in a different way without loading everything.
187
213
  iterator.next();
@@ -197,6 +223,16 @@ let TreeModelImpl = class TreeModelImpl {
197
223
  isVisibleSelectableNode(node) {
198
224
  return tree_selection_1.SelectableTreeNode.isVisible(node);
199
225
  }
226
+ createBackwardTreeIterator(node) {
227
+ const { filteredNodes } = this.treeSearch;
228
+ if (filteredNodes.length === 0) {
229
+ return node ? new tree_iterator_1.BottomUpTreeIterator(node, { pruneCollapsed: false }) : undefined;
230
+ }
231
+ if (node && filteredNodes.indexOf(node) === -1) {
232
+ return undefined;
233
+ }
234
+ return tree_iterator_1.Iterators.cycle(filteredNodes.slice().reverse(), node);
235
+ }
200
236
  createBackwardIterator(node) {
201
237
  const { filteredNodes } = this.treeSearch;
202
238
  if (filteredNodes.length === 0) {
@@ -207,6 +243,16 @@ let TreeModelImpl = class TreeModelImpl {
207
243
  }
208
244
  return tree_iterator_1.Iterators.cycle(filteredNodes.slice().reverse(), node);
209
245
  }
246
+ createTreeIterator(node) {
247
+ const { filteredNodes } = this.treeSearch;
248
+ if (filteredNodes.length === 0) {
249
+ return node && new tree_iterator_1.TopDownTreeIterator(node, { pruneCollapsed: false });
250
+ }
251
+ if (node && filteredNodes.indexOf(node) === -1) {
252
+ return undefined;
253
+ }
254
+ return tree_iterator_1.Iterators.cycle(filteredNodes, node);
255
+ }
210
256
  createIterator(node) {
211
257
  const { filteredNodes } = this.treeSearch;
212
258
  if (filteredNodes.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"tree-model.js","sourceRoot":"","sources":["../../../src/browser/tree/tree-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-model.js","sourceRoot":"","sources":["../../../src/browser/tree/tree-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tree-selectable.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-selectable.spec.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/tree-selectable.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2018 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tree_model_1 = require("./tree-model");
19
+ const objects_1 = require("../../common/objects");
20
+ const chai_1 = require("chai");
21
+ const tree_test_container_1 = require("./test/tree-test-container");
22
+ const mock_selectable_tree_model_1 = require("./test/mock-selectable-tree-model");
23
+ const tree_expansion_1 = require("./tree-expansion");
24
+ describe('Selectable Tree', () => {
25
+ let model;
26
+ function assertNodeRetrieval(method, sequence) {
27
+ for (const expectedNodeId of sequence) {
28
+ const actualNode = method();
29
+ const expectedNode = retrieveNode(expectedNodeId);
30
+ (0, chai_1.expect)(actualNode === null || actualNode === void 0 ? void 0 : actualNode.id).to.be.equal(expectedNode.id);
31
+ model.addSelection(expectedNode);
32
+ }
33
+ }
34
+ function assertNodeSelection(method, sequence) {
35
+ for (const expectedNodeId of sequence) {
36
+ method();
37
+ const node = retrieveNode(expectedNodeId);
38
+ (0, chai_1.expect)(node.selected).to.be.true;
39
+ }
40
+ }
41
+ describe('Get and Set Next Nodes Methods', () => {
42
+ const uncollapsedSelectionOrder = ['1.1', '1.1.1', '1.1.2', '1.2', '1.2.1', '1.2.1.1', '1.2.1.2', '1.2.2', '1.2.3', '1.3'];
43
+ const collapsedSelectionOrder = ['1.1', '1.2', '1.2.1', '1.2.2', '1.2.3', '1.3'];
44
+ beforeEach(() => {
45
+ model = createTreeModel();
46
+ model.root = mock_selectable_tree_model_1.MockSelectableTreeModel.HIERARCHICAL_MOCK_ROOT();
47
+ model.addSelection(retrieveNode('1'));
48
+ });
49
+ it('`getNextNode()` should select each node in sequence (uncollapsed)', done => {
50
+ assertNodeRetrieval(model.getNextNode.bind(model), uncollapsedSelectionOrder);
51
+ done();
52
+ });
53
+ it('`getNextNode()` should select each node in sequence (collapsed)', done => {
54
+ collapseNode('1.1', '1.2.1');
55
+ assertNodeRetrieval(model.getNextNode.bind(model), uncollapsedSelectionOrder);
56
+ done();
57
+ });
58
+ it('`getNextSelectableNode()` should select each node in sequence (uncollapsed)', done => {
59
+ assertNodeRetrieval(model.getNextSelectableNode.bind(model), uncollapsedSelectionOrder);
60
+ done();
61
+ });
62
+ it('`getNextSelectableNode()` should select each node in sequence (collapsed)', done => {
63
+ collapseNode('1.1', '1.2.1');
64
+ assertNodeRetrieval(model.getNextSelectableNode.bind(model), collapsedSelectionOrder);
65
+ done();
66
+ });
67
+ it('`selectNext()` should select each node in sequence (uncollapsed)', done => {
68
+ assertNodeSelection(model.selectNext.bind(model), uncollapsedSelectionOrder);
69
+ done();
70
+ });
71
+ it('`selectNext()` should select each node in sequence (collapsed)', done => {
72
+ collapseNode('1.1', '1.2.1');
73
+ assertNodeSelection(model.selectNext.bind(model), uncollapsedSelectionOrder);
74
+ done();
75
+ });
76
+ it('`selectNextNode()` should select each node in sequence (uncollapsed)', done => {
77
+ assertNodeSelection(model.selectNextNode.bind(model), uncollapsedSelectionOrder);
78
+ done();
79
+ });
80
+ it('`selectNextNode()` should select each node in sequence (collapsed)', done => {
81
+ collapseNode('1.1', '1.2.1');
82
+ assertNodeSelection(model.selectNextNode.bind(model), collapsedSelectionOrder);
83
+ done();
84
+ });
85
+ });
86
+ describe('Get and Set Previous Nodes Methods', () => {
87
+ const uncollapsedSelectionOrder = ['1.2.3', '1.2.2', '1.2.1.2', '1.2.1.1', '1.2.1', '1.2', '1.1.2', '1.1.1', '1.1'];
88
+ const collapsedSelectionOrder = ['1.2.3', '1.2.2', '1.2.1', '1.2', '1.1'];
89
+ beforeEach(() => {
90
+ model = createTreeModel();
91
+ model.root = mock_selectable_tree_model_1.MockSelectableTreeModel.HIERARCHICAL_MOCK_ROOT();
92
+ model.addSelection(retrieveNode('1.3'));
93
+ });
94
+ it('`getPrevNode()` should select each node in reverse sequence (uncollapsed)', done => {
95
+ assertNodeRetrieval(model.getPrevNode.bind(model), uncollapsedSelectionOrder);
96
+ done();
97
+ });
98
+ it('`getPrevNode()` should select each node in reverse sequence (collapsed)', done => {
99
+ collapseNode('1.1', '1.2.1');
100
+ assertNodeRetrieval(model.getPrevNode.bind(model), uncollapsedSelectionOrder);
101
+ done();
102
+ });
103
+ it('`getPrevSelectableNode()` should select each node in reverse sequence (uncollapsed)', done => {
104
+ assertNodeRetrieval(model.getPrevSelectableNode.bind(model), uncollapsedSelectionOrder);
105
+ done();
106
+ });
107
+ it('`getPrevSelectableNode()` should select each node in reverse sequence (collapsed)', done => {
108
+ collapseNode('1.1', '1.2.1');
109
+ assertNodeRetrieval(model.getPrevSelectableNode.bind(model), collapsedSelectionOrder);
110
+ done();
111
+ });
112
+ it('`selectPrev()` should select each node in reverse sequence (uncollapsed)', done => {
113
+ assertNodeSelection(model.selectPrev.bind(model), uncollapsedSelectionOrder);
114
+ done();
115
+ });
116
+ it('`selectPrev()` should select each node in reverse sequence (collapsed)', done => {
117
+ collapseNode('1.1', '1.2.1');
118
+ assertNodeSelection(model.selectPrev.bind(model), uncollapsedSelectionOrder);
119
+ done();
120
+ });
121
+ it('`selectPrevNode()` should select each node in reverse sequence (uncollapsed)', done => {
122
+ assertNodeSelection(model.selectPrevNode.bind(model), uncollapsedSelectionOrder);
123
+ done();
124
+ });
125
+ it('`selectPrevNode()` should select each node in reverse sequence (collapsed)', done => {
126
+ collapseNode('1.1', '1.2.1');
127
+ assertNodeSelection(model.selectPrevNode.bind(model), collapsedSelectionOrder);
128
+ done();
129
+ });
130
+ });
131
+ const findNode = (id) => model.getNode(id);
132
+ function createTreeModel() {
133
+ const container = (0, tree_test_container_1.createTreeTestContainer)();
134
+ return container.get(tree_model_1.TreeModel);
135
+ }
136
+ function retrieveNode(id) {
137
+ const readonlyNode = model.getNode(id);
138
+ return readonlyNode;
139
+ }
140
+ function collapseNode(...ids) {
141
+ ids.map(findNode).filter(objects_1.notEmpty).filter(tree_expansion_1.ExpandableTreeNode.is).forEach(node => {
142
+ model.collapseNode(node);
143
+ (0, chai_1.expect)(node).to.have.property('expanded', false);
144
+ });
145
+ }
146
+ });
147
+ //# sourceMappingURL=tree-selectable.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-selectable.spec.js","sourceRoot":"","sources":["../../../src/browser/tree/tree-selectable.spec.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,34 @@ export declare namespace Disposable {
11
11
  /** Always provides a reference to a new disposable. */
12
12
  const NULL: Disposable;
13
13
  }
14
+ /**
15
+ * Utility for tracking a collection of Disposable objects.
16
+ *
17
+ * This utility provides a number of benefits over just using an array of
18
+ * Disposables:
19
+ *
20
+ * - the collection is auto-pruned when an element it contains is disposed by
21
+ * any code that has a reference to it
22
+ * - you can register to be notified when all elements in the collection have
23
+ * been disposed [1]
24
+ * - you can conveniently dispose all elements by calling dispose()
25
+ * on the collection
26
+ *
27
+ * Unlike an array, however, this utility does not give you direct access to
28
+ * its elements.
29
+ *
30
+ * Being notified when all elements are disposed is simple:
31
+ * ```
32
+ * const dc = new DisposableCollection(myDisposables);
33
+ * dc.onDispose(() => {
34
+ * console.log('All elements in the collection have been disposed');
35
+ * });
36
+ * ```
37
+ *
38
+ * [1] The collection will notify only once. It will continue to function in so
39
+ * far as accepting new Disposables and pruning them when they are disposed, but
40
+ * such activity will never result in another notification.
41
+ */
14
42
  export declare class DisposableCollection implements Disposable {
15
43
  protected readonly disposables: Disposable[];
16
44
  protected readonly onDisposeEmitter: Emitter<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../src/common/disposable.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzC,MAAM,WAAW,UAAU;IACvB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,yBAAiB,UAAU,CAAC;IACxB,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAElD;IACD,SAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,UAAU,CAEnD;IACD,uDAAuD;IACxC,MAAM,IAAI,EAAE,UAAU,CAAC;CACzC;AAcD,qBAAa,oBAAqB,YAAW,UAAU;IAEnD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAM;IAClD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,gBAAuB;gBAE9C,GAAG,SAAS,EAAE,UAAU,EAAE;IAItC;;;OAGG;IACH,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAE3B;IAED,SAAS,CAAC,aAAa,IAAI,IAAI;IAO/B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,IAAI,IAAI;IAgBf,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAmBxC,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;CAMnD;AAED,oBAAY,eAAe,GAAG;IAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,CAAC;AAC7G,yBAAiB,eAAe,CAAC;IAC7B,SAAgB,OAAO,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,IAAI;QAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;KAAE,CAExG;IACD,SAAgB,MAAM,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,IAAI;QAAE,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;KAAE,CAEtG;CACJ;AAED,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,UAAU,CAGpF;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAEhD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAqC;IAEvD,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAQjC,OAAO,IAAI,IAAI;CAOlB"}
1
+ {"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../src/common/disposable.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzC,MAAM,WAAW,UAAU;IACvB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,yBAAiB,UAAU,CAAC;IACxB,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAElD;IACD,SAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,UAAU,CAEnD;IACD,uDAAuD;IACxC,MAAM,IAAI,EAAE,UAAU,CAAC;CACzC;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,oBAAqB,YAAW,UAAU;IAEnD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAM;IAClD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,gBAAuB;gBAE9C,GAAG,SAAS,EAAE,UAAU,EAAE;IAItC;;;OAGG;IACH,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAE3B;IAED,SAAS,CAAC,aAAa,IAAI,IAAI;IAO/B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,IAAI,IAAI;IAgBf,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAmBxC,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;CAMnD;AAED,oBAAY,eAAe,GAAG;IAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,CAAC;AAC7G,yBAAiB,eAAe,CAAC;IAC7B,SAAgB,OAAO,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,IAAI;QAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;KAAE,CAExG;IACD,SAAgB,MAAM,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,IAAI;QAAE,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;KAAE,CAEtG;CACJ;AAED,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,UAAU,CAGpF;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAEhD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAqC;IAEvD,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAQjC,OAAO,IAAI,IAAI;CAOlB"}
@@ -40,6 +40,34 @@ Object.defineProperty(Disposable, 'NULL', {
40
40
  return { dispose: () => { } };
41
41
  }
42
42
  });
43
+ /**
44
+ * Utility for tracking a collection of Disposable objects.
45
+ *
46
+ * This utility provides a number of benefits over just using an array of
47
+ * Disposables:
48
+ *
49
+ * - the collection is auto-pruned when an element it contains is disposed by
50
+ * any code that has a reference to it
51
+ * - you can register to be notified when all elements in the collection have
52
+ * been disposed [1]
53
+ * - you can conveniently dispose all elements by calling dispose()
54
+ * on the collection
55
+ *
56
+ * Unlike an array, however, this utility does not give you direct access to
57
+ * its elements.
58
+ *
59
+ * Being notified when all elements are disposed is simple:
60
+ * ```
61
+ * const dc = new DisposableCollection(myDisposables);
62
+ * dc.onDispose(() => {
63
+ * console.log('All elements in the collection have been disposed');
64
+ * });
65
+ * ```
66
+ *
67
+ * [1] The collection will notify only once. It will continue to function in so
68
+ * far as accepting new Disposables and pruning them when they are disposed, but
69
+ * such activity will never result in another notification.
70
+ */
43
71
  class DisposableCollection {
44
72
  constructor(...toDispose) {
45
73
  this.disposables = [];