@opensumi/ide-comments 2.21.13 → 2.22.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 (64) hide show
  1. package/lib/browser/comments-feature.registry.js.map +1 -1
  2. package/lib/browser/comments-panel.view.d.ts +2 -3
  3. package/lib/browser/comments-panel.view.d.ts.map +1 -1
  4. package/lib/browser/comments-panel.view.js +32 -70
  5. package/lib/browser/comments-panel.view.js.map +1 -1
  6. package/lib/browser/comments-thread.d.ts +4 -2
  7. package/lib/browser/comments-thread.d.ts.map +1 -1
  8. package/lib/browser/comments-thread.js +14 -7
  9. package/lib/browser/comments-thread.js.map +1 -1
  10. package/lib/browser/comments-zone.service.js.map +1 -1
  11. package/lib/browser/comments-zone.view.d.ts +1 -1
  12. package/lib/browser/comments-zone.view.d.ts.map +1 -1
  13. package/lib/browser/comments-zone.view.js +1 -1
  14. package/lib/browser/comments-zone.view.js.map +1 -1
  15. package/lib/browser/comments.contribution.d.ts +1 -0
  16. package/lib/browser/comments.contribution.d.ts.map +1 -1
  17. package/lib/browser/comments.contribution.js +6 -1
  18. package/lib/browser/comments.contribution.js.map +1 -1
  19. package/lib/browser/comments.service.d.ts +7 -4
  20. package/lib/browser/comments.service.d.ts.map +1 -1
  21. package/lib/browser/comments.service.js +60 -87
  22. package/lib/browser/comments.service.js.map +1 -1
  23. package/lib/browser/index.d.ts +0 -1
  24. package/lib/browser/index.d.ts.map +1 -1
  25. package/lib/browser/index.js +5 -1
  26. package/lib/browser/index.js.map +1 -1
  27. package/lib/browser/tree/comment-node.d.ts +14 -0
  28. package/lib/browser/tree/comment-node.d.ts.map +1 -0
  29. package/lib/browser/tree/comment-node.js +64 -0
  30. package/lib/browser/tree/comment-node.js.map +1 -0
  31. package/lib/browser/tree/tree-model.service.d.ts +43 -0
  32. package/lib/browser/tree/tree-model.service.d.ts.map +1 -0
  33. package/lib/browser/tree/tree-model.service.js +150 -0
  34. package/lib/browser/tree/tree-model.service.js.map +1 -0
  35. package/lib/browser/tree/tree-node.defined.d.ts +61 -0
  36. package/lib/browser/tree/tree-node.defined.d.ts.map +1 -0
  37. package/lib/browser/tree/tree-node.defined.js +116 -0
  38. package/lib/browser/tree/tree-node.defined.js.map +1 -0
  39. package/lib/browser/tree/tree-node.module.less +154 -0
  40. package/lib/common/index.d.ts +38 -36
  41. package/lib/common/index.d.ts.map +1 -1
  42. package/lib/common/index.js.map +1 -1
  43. package/package.json +13 -12
  44. package/src/browser/comment-reactions.view.tsx +109 -0
  45. package/src/browser/comments-body.tsx +57 -0
  46. package/src/browser/comments-feature.registry.ts +91 -0
  47. package/src/browser/comments-item.view.tsx +362 -0
  48. package/src/browser/comments-panel.view.tsx +90 -0
  49. package/src/browser/comments-textarea.view.tsx +194 -0
  50. package/src/browser/comments-thread.ts +309 -0
  51. package/src/browser/comments-zone.service.ts +29 -0
  52. package/src/browser/comments-zone.view.tsx +206 -0
  53. package/src/browser/comments.contribution.ts +201 -0
  54. package/src/browser/comments.module.less +210 -0
  55. package/src/browser/comments.service.ts +546 -0
  56. package/src/browser/index.ts +29 -0
  57. package/src/browser/markdown.style.ts +25 -0
  58. package/src/browser/mentions.style.ts +55 -0
  59. package/src/browser/tree/comment-node.tsx +130 -0
  60. package/src/browser/tree/tree-model.service.ts +173 -0
  61. package/src/browser/tree/tree-node.defined.ts +167 -0
  62. package/src/browser/tree/tree-node.module.less +154 -0
  63. package/src/common/index.ts +710 -0
  64. package/src/index.ts +1 -0
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
5
5
  const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
6
6
  const flattenDeep_1 = tslib_1.__importDefault(require("lodash/flattenDeep"));
7
7
  const groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy"));
8
- const mobx_1 = require("mobx");
9
8
  const di_1 = require("@opensumi/di");
10
9
  const ide_core_browser_1 = require("@opensumi/ide-core-browser");
11
10
  const browser_1 = require("@opensumi/ide-editor/lib/browser");
@@ -16,13 +15,14 @@ const monaco = tslib_1.__importStar(require("@opensumi/monaco-editor-core/esm/vs
16
15
  const common_1 = require("../common");
17
16
  const comments_panel_view_1 = require("./comments-panel.view");
18
17
  const comments_thread_1 = require("./comments-thread");
19
- const { dirname } = ide_core_browser_1.path;
18
+ const tree_node_defined_1 = require("./tree/tree-node.defined");
20
19
  let CommentsService = class CommentsService extends ide_core_browser_1.Disposable {
21
20
  constructor() {
22
21
  super(...arguments);
23
22
  this.decorationChangeEmitter = new ide_core_browser_1.Emitter();
24
23
  this.threads = new Map();
25
24
  this.threadsChangeEmitter = new ide_core_browser_1.Emitter();
25
+ this.threadsCommentChangeEmitter = new ide_core_browser_1.Emitter();
26
26
  this.threadsCreatedEmitter = new ide_core_browser_1.Emitter();
27
27
  this.rangeProviderMap = new Map();
28
28
  this.rangeOwner = new Map();
@@ -30,7 +30,6 @@ let CommentsService = class CommentsService extends ide_core_browser_1.Disposabl
30
30
  // 默认在 file 协议和 git 协议中显示评论数据
31
31
  this.shouldShowCommentsSchemes = new Set(['file', 'git']);
32
32
  this.decorationProviderDisposer = ide_core_browser_1.Disposable.NULL;
33
- this.forceUpdateCount = 0;
34
33
  }
35
34
  get commentsThreads() {
36
35
  return [...this.threads.values()];
@@ -50,6 +49,9 @@ let CommentsService = class CommentsService extends ide_core_browser_1.Disposabl
50
49
  get onThreadsChanged() {
51
50
  return this.threadsChangeEmitter.event;
52
51
  }
52
+ get onThreadsCommentChange() {
53
+ return this.threadsCommentChangeEmitter.event;
54
+ }
53
55
  get onThreadsCreated() {
54
56
  return this.threadsCreatedEmitter.event;
55
57
  }
@@ -77,7 +79,7 @@ let CommentsService = class CommentsService extends ide_core_browser_1.Disposabl
77
79
  createHoverDecoration() {
78
80
  const decorationOptions = {
79
81
  description: 'comments-hover-decoration',
80
- linesDecorationsClassName: ['comments-decoration', 'comments-add', (0, ide_core_browser_1.getIcon)('message')].join(' '),
82
+ linesDecorationsClassName: ['comments-decoration', 'comments-add', (0, ide_core_browser_1.getIcon)('add-comments')].join(' '),
81
83
  };
82
84
  return textModel.ModelDecorationOptions.createDynamic(decorationOptions);
83
85
  }
@@ -182,6 +184,9 @@ let CommentsService = class CommentsService extends ide_core_browser_1.Disposabl
182
184
  this.threadsChangeEmitter.fire(thread);
183
185
  this.decorationChangeEmitter.fire(uri);
184
186
  });
187
+ thread.onDidChange(() => {
188
+ this.threadsChangeEmitter.fire(thread);
189
+ });
185
190
  this.threads.set(thread.id, thread);
186
191
  this.addDispose(thread);
187
192
  this.threadsChangeEmitter.fire(thread);
@@ -195,68 +200,53 @@ let CommentsService = class CommentsService extends ide_core_browser_1.Disposabl
195
200
  // 默认按照 rang 顺序 升序排列
196
201
  .sort((a, b) => a.range.startLineNumber - b.range.startLineNumber));
197
202
  }
198
- forceUpdateTreeNodes() {
199
- this.forceUpdateCount++;
200
- }
201
- get commentsTreeNodes() {
202
- let treeNodes = [];
203
- const commentThreads = [...this.threads.values()].filter((thread) => thread.comments.length);
204
- const threadUris = (0, groupBy_1.default)(commentThreads, (thread) => thread.uri);
205
- Object.keys(threadUris).forEach((uri) => {
206
- const threads = threadUris[uri];
207
- if (threads.length === 0) {
208
- return;
209
- }
210
- const firstThread = threads[0];
211
- const firstThreadUri = firstThread.uri;
212
- const filePath = dirname(firstThreadUri.path.toString().replace(this.appConfig.workspaceDir, ''));
213
- const rootNode = Object.assign(Object.assign({ id: uri, name: firstThreadUri.displayName, uri: firstThreadUri, description: filePath.replace(/^\//, ''), parent: undefined, thread: firstThread }, (threads.length && {
214
- expanded: true,
215
- children: [],
216
- })), {
217
- // 跳过 mobx computed, 强制在走一次 getCommentsPanelTreeNodeHandlers 逻辑
218
- _forceUpdateCount: this.forceUpdateCount });
219
- treeNodes.push(rootNode);
220
- threads.forEach((thread) => {
221
- var _a;
222
- if (thread.comments.length === 0) {
223
- return;
224
- }
225
- const [firstComment, ...otherComments] = thread.comments;
226
- const firstCommentNode = Object.assign(Object.assign({ id: firstComment.id, name: firstComment.author.name, iconStyle: {
227
- marginRight: 5,
228
- backgroundSize: '14px 14px',
229
- }, icon: this.iconService.fromIcon('', (_a = firstComment.author.iconPath) === null || _a === void 0 ? void 0 : _a.toString(), ide_theme_1.IconType.Background), description: typeof firstComment.body === 'string' ? firstComment.body : firstComment.body.value, uri: thread.uri, parent: rootNode, depth: 1, thread }, (otherComments.length && {
230
- expanded: true,
231
- children: [],
232
- })), { comment: firstComment });
233
- const firstCommentChildren = otherComments.map((comment) => {
203
+ async resolveChildren(parent) {
204
+ let childs = [];
205
+ if (!parent) {
206
+ childs.push(new tree_node_defined_1.CommentRoot(this));
207
+ }
208
+ else {
209
+ if (tree_node_defined_1.CommentRoot.isRoot(parent)) {
210
+ const commentThreads = [...this.threads.values()].filter((thread) => thread.comments.length);
211
+ const threadUris = (0, groupBy_1.default)(commentThreads, (thread) => thread.uri);
212
+ Object.keys(threadUris).map((uri) => {
234
213
  var _a;
235
- const otherCommentNode = {
236
- id: comment.id,
237
- name: comment.author.name,
238
- description: typeof comment.body === 'string' ? comment.body : comment.body.value,
239
- uri: thread.uri,
240
- iconStyle: {
241
- marginRight: 5,
242
- backgroundSize: '14px 14px',
243
- },
244
- icon: this.iconService.fromIcon('', (_a = comment.author.iconPath) === null || _a === void 0 ? void 0 : _a.toString(), ide_theme_1.IconType.Background),
245
- parent: firstCommentNode,
246
- depth: 2,
247
- thread,
248
- comment,
249
- };
250
- return otherCommentNode;
214
+ const threads = threadUris[uri];
215
+ if (threads.length === 0) {
216
+ return;
217
+ }
218
+ const workspaceDir = new ide_core_browser_1.URI(this.appConfig.workspaceDir);
219
+ const resource = new ide_core_browser_1.URI(uri);
220
+ const description = (_a = workspaceDir.relative(resource)) === null || _a === void 0 ? void 0 : _a.toString();
221
+ childs.push(new tree_node_defined_1.CommentFileNode(this, threads, description, resource.codeUri.fsPath, this.labelService.getIcon(resource), resource, parent));
251
222
  });
252
- treeNodes.push(firstCommentNode);
253
- treeNodes.push(...firstCommentChildren);
254
- });
255
- });
256
- for (const handler of this.commentsFeatureRegistry.getCommentsPanelTreeNodeHandlers()) {
257
- treeNodes = handler(treeNodes);
223
+ }
224
+ else if (tree_node_defined_1.CommentFileNode.is(parent)) {
225
+ for (const thread of parent.threads) {
226
+ const [first] = thread.comments;
227
+ const comment = typeof first.body === 'string' ? first.body : first.body.value;
228
+ childs.push(new tree_node_defined_1.CommentContentNode(this, thread, comment, `[Ln ${thread.range.startLineNumber}]`, first.author.iconPath
229
+ ? this.iconService.fromIcon('', first.author.iconPath.toString(), ide_theme_1.IconType.Background)
230
+ : (0, ide_core_browser_1.getIcon)('message'), first.author, parent.resource, parent));
231
+ }
232
+ }
233
+ else if (tree_node_defined_1.CommentContentNode.is(parent)) {
234
+ const thread = parent.thread;
235
+ const [_, ...others] = thread.comments;
236
+ const lastReply = others[others.length - 1].author.name;
237
+ childs.push(new tree_node_defined_1.CommentReplyNode(this, thread, (0, ide_core_browser_1.formatLocalize)('comment.reply.count', (others === null || others === void 0 ? void 0 : others.length) || 0), (0, ide_core_browser_1.formatLocalize)('comment.reply.lastReply', lastReply), '', parent.resource, parent));
238
+ }
239
+ }
240
+ if (childs.length === 1 && tree_node_defined_1.CommentRoot.isRoot(childs[0])) {
241
+ return childs;
258
242
  }
259
- return treeNodes;
243
+ const handlers = this.commentsFeatureRegistry.getCommentsPanelTreeNodeHandlers();
244
+ if (handlers.length > 0) {
245
+ for (const handler of handlers) {
246
+ childs = handler(childs);
247
+ }
248
+ }
249
+ return childs;
260
250
  }
261
251
  async getContributionRanges(uri) {
262
252
  // 一个diff editor对应两个uri,两个uri的rangeOwner不应该互相覆盖
@@ -288,6 +278,9 @@ let CommentsService = class CommentsService extends ide_core_browser_1.Disposabl
288
278
  deferredRes.resolve(flattenRange);
289
279
  return flattenRange;
290
280
  }
281
+ fireThreadCommentChange(thread) {
282
+ this.threadsCommentChangeEmitter.fire(thread);
283
+ }
291
284
  registerDecorationProvider() {
292
285
  // dispose 掉上一个 decorationProvider
293
286
  this.decorationProviderDisposer.dispose();
@@ -388,6 +381,10 @@ tslib_1.__decorate([
388
381
  (0, di_1.Autowired)(ide_theme_1.IIconService),
389
382
  tslib_1.__metadata("design:type", Object)
390
383
  ], CommentsService.prototype, "iconService", void 0);
384
+ tslib_1.__decorate([
385
+ (0, di_1.Autowired)(ide_core_browser_1.LabelService),
386
+ tslib_1.__metadata("design:type", ide_core_browser_1.LabelService)
387
+ ], CommentsService.prototype, "labelService", void 0);
391
388
  tslib_1.__decorate([
392
389
  (0, di_1.Autowired)(common_1.ICommentsFeatureRegistry),
393
390
  tslib_1.__metadata("design:type", Object)
@@ -408,19 +405,6 @@ tslib_1.__decorate([
408
405
  (0, di_1.Autowired)(browser_1.ResourceService),
409
406
  tslib_1.__metadata("design:type", browser_1.ResourceService)
410
407
  ], CommentsService.prototype, "resourceService", void 0);
411
- tslib_1.__decorate([
412
- mobx_1.observable,
413
- tslib_1.__metadata("design:type", Object)
414
- ], CommentsService.prototype, "threads", void 0);
415
- tslib_1.__decorate([
416
- mobx_1.observable,
417
- tslib_1.__metadata("design:type", Object)
418
- ], CommentsService.prototype, "forceUpdateCount", void 0);
419
- tslib_1.__decorate([
420
- mobx_1.computed,
421
- tslib_1.__metadata("design:type", Object),
422
- tslib_1.__metadata("design:paramtypes", [])
423
- ], CommentsService.prototype, "commentsThreads", null);
424
408
  tslib_1.__decorate([
425
409
  ide_core_browser_1.memoize,
426
410
  tslib_1.__metadata("design:type", Object),
@@ -436,17 +420,6 @@ tslib_1.__decorate([
436
420
  tslib_1.__metadata("design:type", Object),
437
421
  tslib_1.__metadata("design:paramtypes", [])
438
422
  ], CommentsService.prototype, "filterThreadDecoration", null);
439
- tslib_1.__decorate([
440
- mobx_1.action,
441
- tslib_1.__metadata("design:type", Function),
442
- tslib_1.__metadata("design:paramtypes", []),
443
- tslib_1.__metadata("design:returntype", void 0)
444
- ], CommentsService.prototype, "forceUpdateTreeNodes", null);
445
- tslib_1.__decorate([
446
- mobx_1.computed,
447
- tslib_1.__metadata("design:type", Array),
448
- tslib_1.__metadata("design:paramtypes", [])
449
- ], CommentsService.prototype, "commentsTreeNodes", null);
450
423
  CommentsService = tslib_1.__decorate([
451
424
  (0, di_1.Injectable)()
452
425
  ], CommentsService);
@@ -1 +1 @@
1
- {"version":3,"file":"comments.service.js","sourceRoot":"","sources":["../../src/browser/comments.service.ts"],"names":[],"mappings":";;;;AAAA,uEAAuC;AACvC,6EAA6C;AAC7C,qEAAqC;AACrC,+BAAoD;AAEpD,qCAA+E;AAC/E,iEAeoC;AAEpC,8DAK0C;AAC1C,+DAA+D;AAC/D,mDAA6D;AAE7D,qHAA+F;AAC/F,sGAAgF;AAEhF,sCAQmB;AAEnB,+DAAsD;AACtD,uDAAmD;AAEnD,MAAM,EAAE,OAAO,EAAE,GAAG,uBAAI,CAAC;AAGzB,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,6BAAU;IAA/C;;QA4BU,4BAAuB,GAAG,IAAI,0BAAO,EAAO,CAAC;QAG7C,YAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;QAE7C,yBAAoB,GAAG,IAAI,0BAAO,EAAmB,CAAC;QAEtD,0BAAqB,GAAG,IAAI,0BAAO,EAAmB,CAAC;QAEvD,qBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;QAE5D,eAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QAEzC,4BAAuB,GAAG,IAAI,2BAAQ,CAA6B,KAAK,CAAC,CAAC;QAElF,6BAA6B;QACrB,8BAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAErD,+BAA0B,GAAG,6BAAU,CAAC,IAAI,CAAC;QAG7C,qBAAgB,GAAG,CAAC,CAAC;IAub/B,CAAC;IApbC,IAAI,eAAe;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAGD,IAAI,4BAA4B;;QAC9B,OAAO,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,0CAAE,4BAA4B,CAAA,CAAC;IAClF,CAAC;IAGD,IAAI,mBAAmB;;QACrB,OAAO,MAAA,MAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,0CAAE,MAAM,0CAAE,MAAM,CAAC;IAClE,CAAC;IAGD,IAAI,sBAAsB;;QACxB,OAAO,MAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,0CAAE,sBAAsB,CAAC;IAC1E,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED;;;;;;;;OAQG;IACK,sBAAsB,CAAC,MAAuB;;QACpD,0CAA0C;QAC1C,MAAM,MAAM,GACV,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,0CAAE,QAAQ,EAAE,CAAC;QAC3G,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAO,EAAC,SAAS,CAAC,CAAC;QACtG,MAAM,iBAAiB,GAAkC;YACvD,WAAW,EAAE,4BAA4B;YACzC,yBAAyB;YACzB,oBAAoB,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACjF,CAAC;QACF,OAAO,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAEO,qBAAqB;QAC3B,MAAM,iBAAiB,GAAkC;YACvD,WAAW,EAAE,2BAA2B;YACxC,yBAAyB,EAAE,CAAC,qBAAqB,EAAE,cAAc,EAAE,IAAA,0BAAO,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACjG,CAAC;QACF,OAAO,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAEM,IAAI;QACT,wDAAwD;QACxD,yCAAyC;QACzC,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3D,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACnC;QACH,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7D,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACvD,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACnC;QACH,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAEM,oBAAoB,CAAC,MAAe;QACzC,MAAM,QAAQ,GAAG,IAAI,6BAAU,EAAE,CAAC;QAElC,QAAQ,CAAC,UAAU,CACjB,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,IACE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,uBAAuB;gBAC3E,KAAK,CAAC,MAAM,CAAC,OAAO;gBACpB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAC3D;gBACA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;gBACzB,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;oBAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;oBACzB,0BAA0B;oBAC1B,IACE,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAW,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,CACzD,EACD;wBACA,OAAO;qBACR;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAW,EAAE,KAAK,CAAC,CAAC;oBAC5D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACrB;aACF;iBAAM,IACL,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB;gBACvE,KAAK,CAAC,MAAM,CAAC,OAAO;gBACpB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAC9D;gBACA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;gBACzB,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;oBAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;oBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACzC,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAW,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,CACnG,CAAC;oBACF,IAAI,OAAO,CAAC,MAAM,EAAE;wBAClB,qBAAqB;wBACrB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;wBAE3E,IAAI,YAAY,EAAE;4BAChB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;yBAClD;6BAAM;4BACL,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;yBAClD;qBACF;iBACF;aACF;QACH,CAAC,CAAC,CACH,CAAC;QACF,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,QAAQ,CAAC,UAAU,CACjB,MAAM,CAAC,YAAY,CAAC,WAAW,CAC7B,IAAA,kBAAQ,EAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;YAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YACjC,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE;gBACtE,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE;oBACpE;wBACE,KAAK,EAAE,IAAA,kCAAe,EAAC,KAAK,CAAC,eAAe,CAAC;wBAC7C,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAsD;qBAC1F;iBACF,CAAC,CAAC;aACJ;iBAAM;gBACL,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;aAC3E;QACH,CAAC,EAAE,EAAE,CAAC,CACP,CACF,CAAC;QAEF,QAAQ,CAAC,UAAU,CACjB,MAAM,CAAC,YAAY,CAAC,YAAY,CAC9B,IAAA,kBAAQ,EAAC,GAAG,EAAE;YACZ,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC,EAAE,EAAE,CAAC,CACP,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,GAAQ,EAAE,KAAa;QAC7D,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnD,OAAO,KAAK,CAAC;SACd;QACD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAC9C,CAAC,iBAAiB,EAAE,EAAE,CACpB,KAAK,CAAC,eAAe,IAAI,iBAAiB,CAAC,eAAe;YAC1D,KAAK,CAAC,eAAe,IAAI,iBAAiB,CAAC,aAAa,CAC3D,CAAC;QACF,iDAAiD;QACjD,MAAM,uBAAuB,GAC3B,IAAI,CAAC,4BAA4B;YACjC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CACxB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,CAC9F,CAAC;QACJ,OAAO,gBAAgB,IAAI,uBAAuB,CAAC;IACrD,CAAC;IAEM,YAAY,CACjB,GAAQ,EACR,KAAa,EACb,UAAkC;QAChC,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,KAAK;KAChB;QAED,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gCAAc,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,eAAe,CAAC,GAAQ;QAC7B,OAAO,CACL,IAAI,CAAC,eAAe;aACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5C,oBAAoB;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CACrE,CAAC;IACJ,CAAC;IAGM,oBAAoB;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAGD,IAAI,iBAAiB;QACnB,IAAI,SAAS,GAAwB,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7F,MAAM,UAAU,GAAG,IAAA,iBAAO,EAAC,cAAc,EAAE,CAAC,MAAuB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,MAAM,OAAO,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,OAAO;aACR;YACD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC;YACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;YAClG,MAAM,QAAQ,iCACZ,EAAE,EAAE,GAAG,EACP,IAAI,EAAE,cAAc,CAAC,WAAW,EAChC,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,WAAW,IAChB,CAAC,OAAO,CAAC,MAAM,IAAI;gBACpB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,EAAE;aACb,CAAC;gBACF,+DAA+D;gBAC/D,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,GACzC,CAAC;YACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;gBACzB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,OAAO;iBACR;gBACD,MAAM,CAAC,YAAY,EAAE,GAAG,aAAa,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACzD,MAAM,gBAAgB,iCACpB,EAAE,EAAE,YAAY,CAAC,EAAE,EACnB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAC9B,SAAS,EAAE;wBACT,WAAW,EAAE,CAAC;wBACd,cAAc,EAAE,WAAW;qBAC5B,EACD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAA,YAAY,CAAC,MAAM,CAAC,QAAQ,0CAAE,QAAQ,EAAE,EAAE,oBAAQ,CAAC,UAAU,CAAC,EAClG,WAAW,EAAE,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAChG,GAAG,EAAE,MAAM,CAAC,GAAG,EACf,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,CAAC,EACR,MAAM,IACH,CAAC,aAAa,CAAC,MAAM,IAAI;oBAC1B,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,EAAE;iBACb,CAAC,KACF,OAAO,EAAE,YAAY,GACtB,CAAC;gBACF,MAAM,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;oBACzD,MAAM,gBAAgB,GAAsB;wBAC1C,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;wBACzB,WAAW,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;wBACjF,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,SAAS,EAAE;4BACT,WAAW,EAAE,CAAC;4BACd,cAAc,EAAE,WAAW;yBAC5B;wBACD,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,0CAAE,QAAQ,EAAE,EAAE,oBAAQ,CAAC,UAAU,CAAC;wBAC7F,MAAM,EAAE,gBAAgB;wBACxB,KAAK,EAAE,CAAC;wBACR,MAAM;wBACN,OAAO;qBACR,CAAC;oBACF,OAAO,gBAAgB,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,uBAAuB,CAAC,gCAAgC,EAAE,EAAE;YACrF,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;SAChC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,GAAQ;QACzC,+CAA+C;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,UAAU;QACV,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC;SAC5B;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QACpF,MAAM,YAAY,GAAoC,EAAE,CAAC;QACzD,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACjD,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC;YACrC,YAAY,CAAC,IAAI,CACf,CAAC,KAAK,IAAI,EAAE;gBACV,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAS,CAAC,CAAC;gBACpE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oBAC3B,+DAA+D;oBAC/D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;iBACjC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,EAAE,CACL,CAAC;SACH;QACD,MAAM,WAAW,GAAG,IAAI,2BAAQ,EAAY,CAAC;QAC7C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,iBAAiB;QACjB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,CAAC;QACjB,kBAAkB;QAClB,MAAM,YAAY,GAAa,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;QAC5E,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAClC,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,0BAA0B;QAChC,kCAAkC;QAClC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,iCAAiC,CAAC,0BAA0B,CAAC;YAClG,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC;YACrD,GAAG,EAAE,UAAU;YACf,qBAAqB,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK;YACzD,uBAAuB,EAAE,CAAC,GAAQ,EAAE,EAAE,CACpC,IAAI,CAAC,eAAe;iBACjB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACd,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC3B,UAAU;oBACV,MAAM,CAAC,mBAAmB,EAAE,CAAC;iBAC9B;qBAAM;oBACL,gBAAgB;oBAChB,MAAM,CAAC,oBAAoB,EAAE,CAAC;iBAC/B;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjB,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,sBAAsB,EAAE;oBAC/B,OAAO,eAAe,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;iBAC/D;gBACD,OAAO,eAAe,CAAC;YACzB,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAqD;aACjG,CAAC,CAAC;SACR,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACnD,CAAC;IAEM,oBAAoB;QACzB,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,uBAAc,CAAC,EAAE;YACvD,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,sBAAsB,CACvC;YACE;gBACE,EAAE,EAAE,uBAAc;gBAClB,SAAS,EAAE,mCAAa;aACzB;SACF,kBAEC,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,WAAW,EAAE,uBAAc,EAC3B,KAAK,EAAE,IAAA,2BAAQ,EAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EACzC,MAAM,EAAE,KAAK,EACb,kBAAkB,EAAE,iBAAiB,IAClC,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,GAE3D,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,4BAA4B,CAAC,EAAU,EAAE,QAA+B;QACtE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACxC,kCAAkC;QAClC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,6BAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;;QACnB,4BAA4B;QAC5B,sCAAsC;QACtC,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,sBAAsB,CAAC,aAAa,0CAAE,UAAU,CAAC;QAClE,GAAG,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,4CAA4C;QAC5C,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,0CAAE,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC;QACzG,WAAW,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAEM,oBAAoB,CAAC,IAAY;QACtC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;YAC9B,oBAAoB;YACpB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;SAC9C;QACD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;YACxC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC;YAChC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;gBAClG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACjB;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAteC;IADC,IAAA,cAAS,EAAC,mBAAc,CAAC;sCACC,aAAQ;iDAAC;AAGpC;IADC,IAAA,cAAS,EAAC,4BAAS,CAAC;;kDACiB;AAGtC;IADC,IAAA,cAAS,EAAC,4CAAkC,CAAC;;0EACyC;AAGvF;IADC,IAAA,cAAS,EAAC,wBAAY,CAAC;;oDACmB;AAG3C;IADC,IAAA,cAAS,EAAC,iCAAwB,CAAC;;gEAC+B;AAGnE;IADC,IAAA,cAAS,EAAC,qCAA2B,CAAC;;wDACuB;AAG9D;IADC,IAAA,cAAS,EAAC,oCAAkB,CAAC;;sDACqB;AAGnD;IADC,IAAA,cAAS,EAAC,gCAAsB,CAAC;sCACO,gCAAsB;+DAAC;AAGhE;IADC,IAAA,cAAS,EAAC,yBAAe,CAAC;sCACO,yBAAe;wDAAC;AAKlD;IADC,iBAAU;;gDAC0C;AAkBrD;IADC,iBAAU;;yDACkB;AAG7B;IADC,eAAQ;;;sDAGR;AAGD;IADC,0BAAO;;;mEAGP;AAGD;IADC,0BAAO;;;0DAGP;AAGD;IADC,0BAAO;;;6DAGP;AAwMD;IADC,aAAM;;;;2DAGN;AAGD;IADC,eAAQ;;;wDAgFR;AAjWU,eAAe;IAD3B,IAAA,eAAU,GAAE;GACA,eAAe,CAwe3B;AAxeY,0CAAe"}
1
+ {"version":3,"file":"comments.service.js","sourceRoot":"","sources":["../../src/browser/comments.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { Provider } from '@opensumi/di';
2
2
  import { BrowserModule } from '@opensumi/ide-core-browser';
3
- import './comments.module.less';
4
3
  export declare class CommentsModule extends BrowserModule {
5
4
  contributionProvider: symbol;
6
5
  providers: Provider[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,wBAAwB,CAAC;AAEhC,qBACa,cAAe,SAAQ,aAAa;IAC/C,oBAAoB,SAAwB;IAC5C,SAAS,EAAE,QAAQ,EAAE,CAUnB;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAS3D,qBACa,cAAe,SAAQ,aAAa;IAC/C,oBAAoB,SAAwB;IAC5C,SAAS,EAAE,QAAQ,EAAE,CAcnB;CACH"}
@@ -8,7 +8,7 @@ const common_1 = require("../common");
8
8
  const comments_feature_registry_1 = require("./comments-feature.registry");
9
9
  const comments_contribution_1 = require("./comments.contribution");
10
10
  const comments_service_1 = require("./comments.service");
11
- require("./comments.module.less");
11
+ const tree_model_service_1 = require("./tree/tree-model.service");
12
12
  let CommentsModule = class CommentsModule extends ide_core_browser_1.BrowserModule {
13
13
  constructor() {
14
14
  super(...arguments);
@@ -18,6 +18,10 @@ let CommentsModule = class CommentsModule extends ide_core_browser_1.BrowserModu
18
18
  token: common_1.ICommentsService,
19
19
  useClass: comments_service_1.CommentsService,
20
20
  },
21
+ {
22
+ token: tree_model_service_1.CommentModelService,
23
+ useClass: tree_model_service_1.CommentModelService,
24
+ },
21
25
  {
22
26
  token: common_1.ICommentsFeatureRegistry,
23
27
  useClass: comments_feature_registry_1.CommentsFeatureRegistry,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAoD;AACpD,iEAA2D;AAE3D,sCAA6F;AAE7F,2EAAsE;AACtE,mEAAsE;AACtE,yDAAqD;AAErD,kCAAgC;AAGhC,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,gCAAa;IAAjD;;QACE,yBAAoB,GAAG,6BAAoB,CAAC;QAC5C,cAAS,GAAe;YACtB;gBACE,KAAK,EAAE,yBAAgB;gBACvB,QAAQ,EAAE,kCAAe;aAC1B;YACD;gBACE,KAAK,EAAE,iCAAwB;gBAC/B,QAAQ,EAAE,mDAAuB;aAClC;YACD,mDAA2B;SAC5B,CAAC;IACJ,CAAC;CAAA,CAAA;AAbY,cAAc;IAD1B,IAAA,eAAU,GAAE;GACA,cAAc,CAa1B;AAbY,wCAAc"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAoD;AACpD,iEAA2D;AAE3D,sCAA6F;AAE7F,2EAAsE;AACtE,mEAAsE;AACtE,yDAAqD;AACrD,kEAAgE;AAGzD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,gCAAa;IAA1C;;QACL,yBAAoB,GAAG,6BAAoB,CAAC;QAC5C,cAAS,GAAe;YACtB;gBACE,KAAK,EAAE,yBAAgB;gBACvB,QAAQ,EAAE,kCAAe;aAC1B;YACD;gBACE,KAAK,EAAE,wCAAmB;gBAC1B,QAAQ,EAAE,wCAAmB;aAC9B;YACD;gBACE,KAAK,EAAE,iCAAwB;gBAC/B,QAAQ,EAAE,mDAAuB;aAClC;YACD,mDAA2B;SAC5B,CAAC;IACJ,CAAC;CAAA,CAAA;AAjBY,cAAc;IAD1B,IAAA,eAAU,GAAE;GACA,cAAc,CAiB1B;AAjBY,wCAAc"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { INodeRendererProps, ClasslistComposite } from '@opensumi/ide-components';
3
+ import { CommentContentNode, CommentFileNode } from './tree-node.defined';
4
+ export interface ICommentNodeProps {
5
+ item: any;
6
+ defaultLeftPadding?: number;
7
+ leftPadding?: number;
8
+ decorations?: ClasslistComposite;
9
+ onClick: (ev: React.MouseEvent, item: CommentContentNode | CommentFileNode) => void;
10
+ }
11
+ export type ICommentNodeRenderedProps = ICommentNodeProps & INodeRendererProps;
12
+ export declare const CommentNodeRendered: React.FC<ICommentNodeRenderedProps>;
13
+ export declare const COMMENT_TREE_NODE_HEIGHT = 22;
14
+ //# sourceMappingURL=comment-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment-node.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/comment-node.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAG5F,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,GAAG,CAAC;IACV,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,kBAAkB,GAAG,eAAe,KAAK,IAAI,CAAC;CACrF;AAED,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAE/E,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA4GnE,CAAC;AAEF,eAAO,MAAM,wBAAwB,KAAK,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMMENT_TREE_NODE_HEIGHT = exports.CommentNodeRendered = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
6
+ const react_1 = tslib_1.__importStar(require("react"));
7
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
8
+ const tree_node_defined_1 = require("./tree-node.defined");
9
+ const tree_node_module_less_1 = tslib_1.__importDefault(require("./tree-node.module.less"));
10
+ const CommentNodeRendered = ({ item, defaultLeftPadding = 8, leftPadding = 8, decorations, onClick, }) => {
11
+ const handleClick = (0, react_1.useCallback)((ev) => {
12
+ if (item.onSelect) {
13
+ item.onSelect(item);
14
+ }
15
+ onClick(ev, item);
16
+ }, [onClick]);
17
+ const paddingLeft = `${defaultLeftPadding +
18
+ (item.depth || 0) * (leftPadding || 0) +
19
+ (tree_node_defined_1.CommentContentNode.is(item) ? 16 : tree_node_defined_1.CommentFileNode.is(item) ? 0 : 28)}px`;
20
+ const renderedNodeStyle = {
21
+ height: exports.COMMENT_TREE_NODE_HEIGHT,
22
+ lineHeight: `${exports.COMMENT_TREE_NODE_HEIGHT}px`,
23
+ paddingLeft,
24
+ };
25
+ const renderIcon = (0, react_1.useCallback)((node) => {
26
+ if (tree_node_defined_1.CommentContentNode.is(node) || tree_node_defined_1.CommentFileNode.is(node)) {
27
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(tree_node_module_less_1.default.icon, node.icon), style: {
28
+ height: exports.COMMENT_TREE_NODE_HEIGHT,
29
+ lineHeight: `${exports.COMMENT_TREE_NODE_HEIGHT}px`,
30
+ } }));
31
+ }
32
+ }, []);
33
+ const renderDisplayName = (0, react_1.useCallback)((node) => {
34
+ if (tree_node_defined_1.CommentContentNode.is(node)) {
35
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(tree_node_module_less_1.default.segment, tree_node_module_less_1.default.displayname) }, node.renderedLabel ? (node.renderedLabel) : (react_1.default.createElement(react_1.default.Fragment, null,
36
+ node.comment,
37
+ react_1.default.createElement("span", { className: tree_node_module_less_1.default.separator }, "\u00B7"),
38
+ node.author.name))));
39
+ }
40
+ else {
41
+ return react_1.default.createElement("div", { className: (0, classnames_1.default)(tree_node_module_less_1.default.segment, tree_node_module_less_1.default.displayname) }, node.renderedLabel);
42
+ }
43
+ }, []);
44
+ const renderDescription = (0, react_1.useCallback)((node) => (react_1.default.createElement("div", { className: (0, classnames_1.default)(tree_node_module_less_1.default.segment_grow, tree_node_module_less_1.default.description) }, node.renderedDescription)), []);
45
+ const renderFolderToggle = (0, react_1.useCallback)((node) => (react_1.default.createElement("div", { className: (0, classnames_1.default)(tree_node_module_less_1.default.segment, tree_node_module_less_1.default.expansion_toggle, (0, ide_core_browser_1.getIcon)('arrow-right'), {
46
+ [`${tree_node_module_less_1.default.mod_collapsed}`]: !node.expanded,
47
+ }) })), []);
48
+ const renderTwice = (0, react_1.useCallback)((node) => {
49
+ if (tree_node_defined_1.CommentFileNode.is(node)) {
50
+ return renderFolderToggle(node);
51
+ }
52
+ }, []);
53
+ const getItemTooltip = (0, react_1.useCallback)(() => item.tooltip, [item]);
54
+ return (react_1.default.createElement("div", { key: item.id, onClick: handleClick, title: getItemTooltip(), className: (0, classnames_1.default)(tree_node_module_less_1.default.search_node, decorations ? decorations.classlist : null), style: renderedNodeStyle, "data-id": item.id },
55
+ react_1.default.createElement("div", { className: tree_node_module_less_1.default.content },
56
+ renderTwice(item),
57
+ renderIcon(item),
58
+ react_1.default.createElement("div", { className: tree_node_module_less_1.default.overflow_wrap },
59
+ renderDisplayName(item),
60
+ renderDescription(item)))));
61
+ };
62
+ exports.CommentNodeRendered = CommentNodeRendered;
63
+ exports.COMMENT_TREE_NODE_HEIGHT = 22;
64
+ //# sourceMappingURL=comment-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment-node.js","sourceRoot":"","sources":["../../../src/browser/tree/comment-node.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { DecorationsManager, IRecycleTreeHandle, TreeModel } from '@opensumi/ide-components';
2
+ import { Event, Disposable } from '@opensumi/ide-core-browser';
3
+ import { CommentContentNode, CommentFileNode, CommentReplyNode, CommentRoot } from './tree-node.defined';
4
+ export interface IEditorTreeHandle extends IRecycleTreeHandle {
5
+ hasDirectFocus: () => boolean;
6
+ }
7
+ export declare class CommentTreeModel extends TreeModel {
8
+ constructor(root: CommentRoot);
9
+ }
10
+ export declare class CommentModelService extends Disposable {
11
+ private readonly commentService;
12
+ private readonly injector;
13
+ private _treeModel;
14
+ private _whenReady;
15
+ private _decorations;
16
+ private _commentTreeHandle;
17
+ private selectedDecoration;
18
+ private focusedDecoration;
19
+ private _focusedNode;
20
+ private _selectedNodes;
21
+ private onDidUpdateTreeModelEmitter;
22
+ private disposableCollection;
23
+ constructor();
24
+ get onDidUpdateTreeModel(): Event<CommentTreeModel | undefined>;
25
+ get whenReady(): Promise<void>;
26
+ get commentTreeHandle(): IRecycleTreeHandle;
27
+ get decorations(): DecorationsManager;
28
+ get treeModel(): CommentTreeModel;
29
+ get focusedNode(): CommentFileNode | CommentContentNode | CommentReplyNode | null;
30
+ get selectedNodes(): (CommentFileNode | CommentContentNode | CommentReplyNode)[];
31
+ initTreeModel(): Promise<void>;
32
+ initDecorations(root: any): DecorationsManager;
33
+ handleTreeHandler(handle: IRecycleTreeHandle): void;
34
+ applyFocusedDecoration: (target: CommentFileNode | CommentContentNode | CommentReplyNode, dispatch?: boolean) => void;
35
+ removeFocusedDecoration: () => void;
36
+ handleTreeBlur: () => void;
37
+ handleItemClick: (ev: React.MouseEvent, node: CommentFileNode | CommentContentNode | CommentReplyNode) => Promise<void>;
38
+ toggleDirectory: (item: CommentFileNode | CommentContentNode) => void;
39
+ refresh(): Promise<void>;
40
+ collapsedAll(): Promise<void>;
41
+ dispose(): void;
42
+ }
43
+ //# sourceMappingURL=tree-model.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-model.service.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/tree-model.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAc,kBAAkB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAiC,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG9F,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGzG,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,cAAc,EAAE,MAAM,OAAO,CAAC;CAC/B;AAED,qBACa,gBAAiB,SAAQ,SAAS;gBACrB,IAAI,EAAE,WAAW;CAI1C;AAED,qBACa,mBAAoB,SAAQ,UAAU;IAEjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAGlD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,kBAAkB,CAAqB;IAG/C,OAAO,CAAC,kBAAkB,CAAmD;IAC7E,OAAO,CAAC,iBAAiB,CAAkD;IAE3E,OAAO,CAAC,YAAY,CAAiE;IACrF,OAAO,CAAC,cAAc,CAAmE;IAEzF,OAAO,CAAC,2BAA2B,CAAwD;IAE3F,OAAO,CAAC,oBAAoB,CAAoD;;IAOhF,IAAI,oBAAoB,IAAI,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAE9D;IAED,IAAI,SAAS,kBAEZ;IAED,IAAI,iBAAiB,uBAEpB;IAED,IAAI,WAAW,uBAEd;IAED,IAAI,SAAS,qBAEZ;IAED,IAAI,WAAW,mEAEd;IAED,IAAI,aAAa,gEAEhB;IAEK,aAAa;IAuBnB,eAAe,CAAC,IAAI,KAAA;IAOpB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB;IAI5C,sBAAsB,WAAY,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,8BAevF;IAEF,uBAAuB,aAMrB;IAEF,cAAc,aAEZ;IAEF,eAAe,OAAc,gBAAgB,QAAQ,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,mBAM1G;IAEF,eAAe,SAAU,eAAe,GAAG,kBAAkB,UAM3D;IAEI,OAAO;IAKP,YAAY;IAKlB,OAAO;CAGR"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommentModelService = exports.CommentTreeModel = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /* eslint-disable import/order */
6
+ const di_1 = require("@opensumi/di");
7
+ const ide_components_1 = require("@opensumi/ide-components");
8
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
9
+ const index_1 = require("../../common/index");
10
+ const tree_node_defined_1 = require("./tree-node.defined");
11
+ const tree_node_module_less_1 = tslib_1.__importDefault(require("./tree-node.module.less"));
12
+ let CommentTreeModel = class CommentTreeModel extends ide_components_1.TreeModel {
13
+ constructor(root) {
14
+ super();
15
+ this.init(root);
16
+ }
17
+ };
18
+ CommentTreeModel = tslib_1.__decorate([
19
+ (0, di_1.Injectable)({ multiple: true }),
20
+ tslib_1.__param(0, (0, di_1.Optional)()),
21
+ tslib_1.__metadata("design:paramtypes", [tree_node_defined_1.CommentRoot])
22
+ ], CommentTreeModel);
23
+ exports.CommentTreeModel = CommentTreeModel;
24
+ let CommentModelService = class CommentModelService extends ide_core_browser_1.Disposable {
25
+ constructor() {
26
+ super();
27
+ // All decoration
28
+ this.selectedDecoration = new ide_components_1.Decoration(tree_node_module_less_1.default.mod_selected); // selected
29
+ this.focusedDecoration = new ide_components_1.Decoration(tree_node_module_less_1.default.mod_focused); // focused
30
+ this._selectedNodes = [];
31
+ this.onDidUpdateTreeModelEmitter = new ide_core_browser_1.Emitter();
32
+ this.disposableCollection = new ide_core_browser_1.DisposableCollection();
33
+ this.applyFocusedDecoration = (target, dispatch = true) => {
34
+ var _a;
35
+ if (target) {
36
+ for (const target of this._selectedNodes) {
37
+ this.selectedDecoration.removeTarget(target);
38
+ }
39
+ if (this.focusedNode) {
40
+ this.focusedDecoration.removeTarget(this.focusedNode);
41
+ }
42
+ this.selectedDecoration.addTarget(target);
43
+ this.focusedDecoration.addTarget(target);
44
+ this._focusedNode = target;
45
+ this._selectedNodes = [target];
46
+ dispatch && ((_a = this.treeModel) === null || _a === void 0 ? void 0 : _a.dispatchChange());
47
+ }
48
+ };
49
+ this.removeFocusedDecoration = () => {
50
+ var _a;
51
+ if (this.focusedNode) {
52
+ this.focusedDecoration.removeTarget(this.focusedNode);
53
+ (_a = this.treeModel) === null || _a === void 0 ? void 0 : _a.dispatchChange();
54
+ }
55
+ this._focusedNode = null;
56
+ };
57
+ this.handleTreeBlur = () => {
58
+ this.removeFocusedDecoration();
59
+ };
60
+ this.handleItemClick = async (ev, node) => {
61
+ this.applyFocusedDecoration(node);
62
+ if (tree_node_defined_1.CommentFileNode.is(node)) {
63
+ this.toggleDirectory(node);
64
+ }
65
+ else if (node) {
66
+ }
67
+ };
68
+ this.toggleDirectory = (item) => {
69
+ if (item.expanded) {
70
+ this.commentTreeHandle.collapseNode(item);
71
+ }
72
+ else {
73
+ this.commentTreeHandle.expandNode(item);
74
+ }
75
+ };
76
+ this._whenReady = this.initTreeModel();
77
+ }
78
+ get onDidUpdateTreeModel() {
79
+ return this.onDidUpdateTreeModelEmitter.event;
80
+ }
81
+ get whenReady() {
82
+ return this._whenReady;
83
+ }
84
+ get commentTreeHandle() {
85
+ return this._commentTreeHandle;
86
+ }
87
+ get decorations() {
88
+ return this._decorations;
89
+ }
90
+ get treeModel() {
91
+ return this._treeModel;
92
+ }
93
+ get focusedNode() {
94
+ return this._focusedNode;
95
+ }
96
+ get selectedNodes() {
97
+ return this._selectedNodes;
98
+ }
99
+ async initTreeModel() {
100
+ const childs = await this.commentService.resolveChildren();
101
+ if (!childs) {
102
+ return;
103
+ }
104
+ const root = childs[0];
105
+ if (!root) {
106
+ return;
107
+ }
108
+ this._treeModel = this.injector.get(CommentTreeModel, [root]);
109
+ await this._treeModel.ensureReady;
110
+ this.initDecorations(root);
111
+ this.disposables.push(this.commentService.onThreadsCommentChange(() => {
112
+ this.refresh();
113
+ }));
114
+ this.onDidUpdateTreeModelEmitter.fire(this._treeModel);
115
+ }
116
+ initDecorations(root) {
117
+ this._decorations = new ide_components_1.DecorationsManager(root);
118
+ this._decorations.addDecoration(this.selectedDecoration);
119
+ this._decorations.addDecoration(this.focusedDecoration);
120
+ return this._decorations;
121
+ }
122
+ handleTreeHandler(handle) {
123
+ this._commentTreeHandle = handle;
124
+ }
125
+ async refresh() {
126
+ await this.whenReady;
127
+ this.treeModel.root.refresh();
128
+ }
129
+ async collapsedAll() {
130
+ await this.whenReady;
131
+ return this.treeModel.root.collapsedAll();
132
+ }
133
+ dispose() {
134
+ this.disposableCollection.dispose();
135
+ }
136
+ };
137
+ tslib_1.__decorate([
138
+ (0, di_1.Autowired)(index_1.ICommentsService),
139
+ tslib_1.__metadata("design:type", Object)
140
+ ], CommentModelService.prototype, "commentService", void 0);
141
+ tslib_1.__decorate([
142
+ (0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
143
+ tslib_1.__metadata("design:type", di_1.Injector)
144
+ ], CommentModelService.prototype, "injector", void 0);
145
+ CommentModelService = tslib_1.__decorate([
146
+ (0, di_1.Injectable)(),
147
+ tslib_1.__metadata("design:paramtypes", [])
148
+ ], CommentModelService);
149
+ exports.CommentModelService = CommentModelService;
150
+ //# sourceMappingURL=tree-model.service.js.map