@codingame/monaco-vscode-api 2.1.3 → 2.2.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +10 -0
  2. package/contributions.js +1 -0
  3. package/extensions.d.ts +6 -3
  4. package/extensions.js +18 -7
  5. package/lifecycle.js +11 -3
  6. package/missing-services.js +55 -10
  7. package/monaco.js +7 -3
  8. package/package.json +8 -8
  9. package/service-override/tools/editor.js +3 -1
  10. package/service-override/tools/views.d.ts +98 -0
  11. package/service-override/tools/views.js +249 -0
  12. package/services.d.ts +4 -2
  13. package/services.js +11 -9
  14. package/vscode/src/vs/base/browser/deviceAccess.js +60 -0
  15. package/vscode/src/vs/base/browser/dom.js +18 -1
  16. package/vscode/src/vs/base/browser/ui/centered/centeredViewLayout.js +178 -0
  17. package/vscode/src/vs/base/browser/ui/grid/grid.js +492 -0
  18. package/vscode/src/vs/base/browser/ui/grid/gridview.css.js +4 -0
  19. package/vscode/src/vs/base/browser/ui/grid/gridview.d.ts +1 -0
  20. package/vscode/src/vs/base/browser/ui/grid/gridview.js +1109 -0
  21. package/vscode/src/vs/base/browser/ui/sash/sash.js +9 -1
  22. package/vscode/src/vs/base/browser/ui/splitview/splitview.d.ts +348 -1
  23. package/vscode/src/vs/base/common/async.js +46 -2
  24. package/vscode/src/vs/base/common/codicons.d.ts +579 -0
  25. package/vscode/src/vs/base/common/event.js +11 -2
  26. package/vscode/src/vs/base/common/keybindingParser.js +87 -0
  27. package/vscode/src/vs/base/common/network.js +1 -2
  28. package/vscode/src/vs/base/common/observableInternal/utils.js +1 -1
  29. package/vscode/src/vs/base/common/platform.js +2 -1
  30. package/vscode/src/vs/base/common/scrollable.d.ts +28 -0
  31. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/colors.js +17 -0
  32. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/diffEditorItemTemplate.js +214 -0
  33. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorViewModel.js +84 -0
  34. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidget.js +54 -0
  35. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidgetImpl.js +324 -0
  36. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/objectPool.js +46 -0
  37. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/style.css.js +4 -0
  38. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/utils.js +11 -0
  39. package/vscode/src/vs/platform/keyboardLayout/common/keyboardLayout.js +61 -1
  40. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +10 -0
  41. package/vscode/src/vs/platform/log/browser/log.js +24 -0
  42. package/vscode/src/vs/platform/product/common/product.js +1 -2
  43. package/vscode/src/vs/platform/userDataSync/common/abstractSynchronizer.js +772 -0
  44. package/vscode/src/vs/platform/userDataSync/common/userDataSyncStoreService.js +551 -0
  45. package/vscode/src/vs/platform/webview/common/mimeTypes.js +22 -0
  46. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +62 -0
  47. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +788 -0
  48. package/vscode/src/vs/workbench/browser/actions/listCommands.js +763 -0
  49. package/vscode/src/vs/workbench/browser/layout.d.ts +26 -0
  50. package/vscode/src/vs/workbench/browser/media/style.css.js +1 -1
  51. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +610 -0
  52. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +4 -0
  53. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +4 -0
  54. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +148 -0
  55. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css.js +4 -0
  56. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +603 -0
  57. package/vscode/src/vs/workbench/browser/parts/compositePart.js +333 -0
  58. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +221 -0
  59. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +1406 -0
  60. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +184 -0
  61. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +509 -0
  62. package/vscode/src/vs/workbench/browser/parts/editor/editorPane.d.ts +112 -0
  63. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +1018 -0
  64. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +389 -0
  65. package/vscode/src/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +4 -0
  66. package/vscode/src/vs/workbench/browser/parts/media/compositepart.css.js +4 -0
  67. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +4 -0
  68. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsActions.css.js +4 -0
  69. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsCenter.css.js +4 -0
  70. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsList.css.js +4 -0
  71. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsToasts.css.js +4 -0
  72. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsActions.js +213 -0
  73. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsAlerts.js +73 -0
  74. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +307 -0
  75. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.js +226 -0
  76. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsStatus.js +218 -0
  77. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +433 -0
  78. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +436 -0
  79. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +643 -0
  80. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +377 -0
  81. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +66 -0
  82. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +144 -0
  83. package/vscode/src/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +4 -0
  84. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +220 -0
  85. package/vscode/src/vs/workbench/browser/window.js +239 -5
  86. package/vscode/src/vs/workbench/common/configuration.js +11 -1
  87. package/vscode/src/vs/workbench/common/theme.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +298 -0
  89. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +363 -0
  90. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +133 -0
  91. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +4 -0
  92. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +90 -0
  93. package/vscode/src/vs/workbench/contrib/comments/browser/commentMenus.js +43 -0
  94. package/vscode/src/vs/workbench/contrib/comments/browser/commentService.js +317 -2
  95. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadRangeDecorator.js +107 -0
  96. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +395 -0
  97. package/vscode/src/vs/workbench/contrib/comments/browser/comments.js +3 -0
  98. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +1277 -0
  99. package/vscode/src/vs/workbench/contrib/comments/browser/commentsFilterOptions.js +17 -0
  100. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +123 -0
  101. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +342 -0
  102. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +451 -0
  103. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +176 -0
  104. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +4 -0
  105. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +35 -0
  106. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +16 -0
  107. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +143 -0
  108. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +212 -0
  109. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +4 -0
  110. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +76 -0
  111. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +61 -0
  112. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +117 -0
  113. package/vscode/src/vs/workbench/contrib/editSessions/common/editSessions.js +62 -0
  114. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +5 -0
  115. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +77 -0
  116. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorHandler.js +72 -0
  117. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +254 -0
  118. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.js +97 -0
  119. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +442 -0
  120. package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +430 -0
  121. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +784 -0
  122. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +487 -0
  123. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +521 -0
  124. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +150 -0
  125. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +61 -0
  126. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveDocumentService.js +25 -1
  127. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +178 -0
  128. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveHistoryService.js +49 -0
  129. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +408 -0
  130. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +4 -0
  131. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +145 -0
  132. package/vscode/src/vs/workbench/contrib/mappedEdits/common/mappedEdits.contribution.js +22 -0
  133. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +691 -0
  134. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +238 -0
  135. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +76 -0
  136. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +40 -0
  137. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +69 -0
  138. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +346 -0
  139. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +96 -0
  140. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +144 -0
  141. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +103 -0
  142. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +399 -0
  143. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +195 -0
  144. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/fixedZoneWidget.js +39 -0
  145. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +126 -0
  146. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +4 -0
  147. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +611 -0
  148. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +156 -0
  149. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +262 -0
  150. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +171 -0
  151. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.js +41 -0
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +317 -0
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.js +56 -0
  154. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +315 -0
  155. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +193 -0
  156. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +2 -1
  157. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +37 -0
  158. package/vscode/src/vs/workbench/contrib/sash/browser/sash.js +39 -0
  159. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +138 -2
  160. package/vscode/src/vs/workbench/contrib/tags/browser/workspaceTagsService.js +12 -0
  161. package/vscode/src/vs/workbench/contrib/tags/common/workspaceTags.js +3 -0
  162. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +4 -0
  163. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +281 -0
  164. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +358 -0
  165. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +131 -0
  166. package/vscode/src/vs/workbench/contrib/update/common/update.js +2 -0
  167. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +288 -0
  168. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +94 -0
  169. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +86 -0
  170. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +77 -0
  171. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +646 -0
  172. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +63 -0
  173. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +57 -0
  174. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +140 -0
  175. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +119 -0
  176. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +67 -0
  177. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +233 -0
  178. package/vscode/src/vs/workbench/services/activity/browser/activityService.js +143 -0
  179. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +0 -3
  180. package/vscode/src/vs/workbench/services/driver/browser/driver.js +184 -0
  181. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +668 -0
  182. package/vscode/src/vs/workbench/services/history/browser/historyService.js +1482 -0
  183. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +17 -1
  184. package/vscode/src/vs/workbench/services/lifecycle/common/lifecycle.js +8 -1
  185. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +4 -0
  186. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +521 -0
  187. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +102 -0
  188. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +296 -0
  189. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +99 -0
  190. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +711 -0
  191. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +596 -0
@@ -0,0 +1,436 @@
1
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { clearNode, $, EventType, addDisposableListener, EventHelper, isEventLike } from '../../../../base/browser/dom.js';
3
+ import { IOpenerService } from '../../../../platform/opener/common/opener.js';
4
+ import { URI } from '../../../../base/common/uri.js';
5
+ import { localizeWithPath } from '../../../../nls.js';
6
+ import { ButtonBar } from '../../../../base/browser/ui/button/button.js';
7
+ import { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';
8
+ import { toAction, Separator, ActionRunner } from '../../../../base/common/actions.js';
9
+ import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
10
+ import { DisposableStore, dispose, Disposable } from '../../../../base/common/lifecycle.js';
11
+ import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';
12
+ import { NotificationViewItem, ChoiceAction } from '../../../common/notifications.js';
13
+ import { ConfigureNotificationAction, ClearNotificationAction, ExpandNotificationAction, CollapseNotificationAction } from './notificationsActions.js';
14
+ import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';
15
+ import { ProgressBar } from '../../../../base/browser/ui/progressbar/progressbar.js';
16
+ import { isNotificationSource, NotificationsFilter, Severity, INotificationService } from '../../../../platform/notification/common/notification.js';
17
+ import { isNonEmptyArray } from '../../../../base/common/arrays.js';
18
+ import { Codicon } from '../../../../base/common/codicons.js';
19
+ import { ThemeIcon } from '../../../../base/common/themables.js';
20
+ import { DropdownMenuActionViewItem } from '../../../../base/browser/ui/dropdown/dropdownActionViewItem.js';
21
+ import { DomEmitter } from '../../../../base/browser/event.js';
22
+ import { Gesture, EventType as EventType$1 } from '../../../../base/browser/touch.js';
23
+ import { Event } from '../../../../base/common/event.js';
24
+ import { defaultProgressBarStyles, defaultButtonStyles } from '../../../../platform/theme/browser/defaultStyles.js';
25
+ import { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js';
26
+ var NotificationRenderer_1, NotificationTemplateRenderer_1;
27
+ class NotificationsListDelegate {
28
+ static { this.ROW_HEIGHT = 42; }
29
+ static { this.LINE_HEIGHT = 22; }
30
+ constructor(container) {
31
+ this.offsetHelper = this.createOffsetHelper(container);
32
+ }
33
+ createOffsetHelper(container) {
34
+ const offsetHelper = document.createElement('div');
35
+ offsetHelper.classList.add('notification-offset-helper');
36
+ container.appendChild(offsetHelper);
37
+ return offsetHelper;
38
+ }
39
+ getHeight(notification) {
40
+ if (!notification.expanded) {
41
+ return NotificationsListDelegate.ROW_HEIGHT;
42
+ }
43
+ let expandedHeight = NotificationsListDelegate.ROW_HEIGHT;
44
+ const preferredMessageHeight = this.computePreferredHeight(notification);
45
+ const messageOverflows = NotificationsListDelegate.LINE_HEIGHT < preferredMessageHeight;
46
+ if (messageOverflows) {
47
+ const overflow = preferredMessageHeight - NotificationsListDelegate.LINE_HEIGHT;
48
+ expandedHeight += overflow;
49
+ }
50
+ if (notification.source || isNonEmptyArray(notification.actions && notification.actions.primary)) {
51
+ expandedHeight += NotificationsListDelegate.ROW_HEIGHT;
52
+ }
53
+ if (expandedHeight === NotificationsListDelegate.ROW_HEIGHT) {
54
+ notification.collapse(true );
55
+ }
56
+ return expandedHeight;
57
+ }
58
+ computePreferredHeight(notification) {
59
+ let actions = 0;
60
+ if (!notification.hasProgress) {
61
+ actions++;
62
+ }
63
+ if (notification.canCollapse) {
64
+ actions++;
65
+ }
66
+ if (isNonEmptyArray(notification.actions && notification.actions.secondary)) {
67
+ actions++;
68
+ }
69
+ this.offsetHelper.style.width = `${450 - ((10 + 30 + (actions * 30) - (Math.max(actions - 1, 0) * 4)) )}px`;
70
+ const renderedMessage = NotificationMessageRenderer.render(notification.message);
71
+ this.offsetHelper.appendChild(renderedMessage);
72
+ const preferredHeight = Math.max(this.offsetHelper.offsetHeight, this.offsetHelper.scrollHeight);
73
+ clearNode(this.offsetHelper);
74
+ return preferredHeight;
75
+ }
76
+ getTemplateId(element) {
77
+ if (element instanceof NotificationViewItem) {
78
+ return NotificationRenderer.TEMPLATE_ID;
79
+ }
80
+ throw new Error('unknown element type: ' + element);
81
+ }
82
+ }
83
+ class NotificationMessageRenderer {
84
+ static render(message, actionHandler) {
85
+ const messageContainer = document.createElement('span');
86
+ for (const node of message.linkedText.nodes) {
87
+ if (typeof node === 'string') {
88
+ messageContainer.appendChild(document.createTextNode(node));
89
+ }
90
+ else {
91
+ let title = node.title;
92
+ if (!title && node.href.startsWith('command:')) {
93
+ title = ( localizeWithPath(
94
+ 'vs/workbench/browser/parts/notifications/notificationsViewer',
95
+ 'executeCommand',
96
+ "Click to execute command '{0}'",
97
+ node.href.substr('command:'.length)
98
+ ));
99
+ }
100
+ else if (!title) {
101
+ title = node.href;
102
+ }
103
+ const anchor = $('a', { href: node.href, title, tabIndex: 0 }, node.label);
104
+ if (actionHandler) {
105
+ const handleOpen = (e) => {
106
+ if (isEventLike(e)) {
107
+ EventHelper.stop(e, true);
108
+ }
109
+ actionHandler.callback(node.href);
110
+ };
111
+ const onClick = actionHandler.toDispose.add(( new DomEmitter(anchor, EventType.CLICK))).event;
112
+ const onKeydown = actionHandler.toDispose.add(( new DomEmitter(anchor, EventType.KEY_DOWN))).event;
113
+ const onSpaceOrEnter = Event.chain(onKeydown, $ => $.filter(e => {
114
+ const event = ( new StandardKeyboardEvent(e));
115
+ return event.equals(10 ) || event.equals(3 );
116
+ }));
117
+ actionHandler.toDispose.add(Gesture.addTarget(anchor));
118
+ const onTap = actionHandler.toDispose.add(( new DomEmitter(anchor, EventType$1.Tap))).event;
119
+ Event.any(onClick, onTap, onSpaceOrEnter)(handleOpen, null, actionHandler.toDispose);
120
+ }
121
+ messageContainer.appendChild(anchor);
122
+ }
123
+ }
124
+ return messageContainer;
125
+ }
126
+ }
127
+ let NotificationRenderer = class NotificationRenderer {
128
+ static { NotificationRenderer_1 = this; }
129
+ static { this.TEMPLATE_ID = 'notification'; }
130
+ constructor(actionRunner, contextMenuService, instantiationService, notificationService) {
131
+ this.actionRunner = actionRunner;
132
+ this.contextMenuService = contextMenuService;
133
+ this.instantiationService = instantiationService;
134
+ this.notificationService = notificationService;
135
+ }
136
+ get templateId() {
137
+ return NotificationRenderer_1.TEMPLATE_ID;
138
+ }
139
+ renderTemplate(container) {
140
+ const data = Object.create(null);
141
+ data.toDispose = ( new DisposableStore());
142
+ data.container = document.createElement('div');
143
+ data.container.classList.add('notification-list-item');
144
+ data.mainRow = document.createElement('div');
145
+ data.mainRow.classList.add('notification-list-item-main-row');
146
+ data.icon = document.createElement('div');
147
+ data.icon.classList.add('notification-list-item-icon', 'codicon');
148
+ data.message = document.createElement('div');
149
+ data.message.classList.add('notification-list-item-message');
150
+ const that = this;
151
+ const toolbarContainer = document.createElement('div');
152
+ toolbarContainer.classList.add('notification-list-item-toolbar-container');
153
+ data.toolbar = ( new ActionBar(toolbarContainer, {
154
+ ariaLabel: ( localizeWithPath(
155
+ 'vs/workbench/browser/parts/notifications/notificationsViewer',
156
+ 'notificationActions',
157
+ "Notification Actions"
158
+ )),
159
+ actionViewItemProvider: action => {
160
+ if (action instanceof ConfigureNotificationAction) {
161
+ return data.toDispose.add(( new DropdownMenuActionViewItem(action, {
162
+ getActions() {
163
+ const actions = [];
164
+ const source = { id: action.notification.sourceId, label: action.notification.source };
165
+ if (isNotificationSource(source)) {
166
+ const isSourceFiltered = that.notificationService.getFilter(source) === NotificationsFilter.ERROR;
167
+ actions.push(toAction({
168
+ id: source.id,
169
+ label: isSourceFiltered ? ( localizeWithPath(
170
+ 'vs/workbench/browser/parts/notifications/notificationsViewer',
171
+ 'turnOnNotifications',
172
+ "Turn On Notifications from '{0}'",
173
+ source.label
174
+ )) : ( localizeWithPath(
175
+ 'vs/workbench/browser/parts/notifications/notificationsViewer',
176
+ 'turnOffNotifications',
177
+ "Turn Off Notifications from '{0}'",
178
+ source.label
179
+ )),
180
+ run: () => that.notificationService.setFilter({ ...source, filter: isSourceFiltered ? NotificationsFilter.OFF : NotificationsFilter.ERROR })
181
+ }));
182
+ if (action.notification.actions?.secondary?.length) {
183
+ actions.push(( new Separator()));
184
+ }
185
+ }
186
+ if (Array.isArray(action.notification.actions?.secondary)) {
187
+ actions.push(...action.notification.actions.secondary);
188
+ }
189
+ return actions;
190
+ },
191
+ }, this.contextMenuService, {
192
+ actionRunner: this.actionRunner,
193
+ classNames: action.class
194
+ })));
195
+ }
196
+ return undefined;
197
+ },
198
+ actionRunner: this.actionRunner
199
+ }));
200
+ data.toDispose.add(data.toolbar);
201
+ data.detailsRow = document.createElement('div');
202
+ data.detailsRow.classList.add('notification-list-item-details-row');
203
+ data.source = document.createElement('div');
204
+ data.source.classList.add('notification-list-item-source');
205
+ data.buttonsContainer = document.createElement('div');
206
+ data.buttonsContainer.classList.add('notification-list-item-buttons-container');
207
+ container.appendChild(data.container);
208
+ data.container.appendChild(data.detailsRow);
209
+ data.detailsRow.appendChild(data.source);
210
+ data.detailsRow.appendChild(data.buttonsContainer);
211
+ data.container.appendChild(data.mainRow);
212
+ data.mainRow.appendChild(data.icon);
213
+ data.mainRow.appendChild(data.message);
214
+ data.mainRow.appendChild(toolbarContainer);
215
+ data.progress = ( new ProgressBar(container, defaultProgressBarStyles));
216
+ data.toDispose.add(data.progress);
217
+ data.renderer = this.instantiationService.createInstance(NotificationTemplateRenderer, data, this.actionRunner);
218
+ data.toDispose.add(data.renderer);
219
+ return data;
220
+ }
221
+ renderElement(notification, index, data) {
222
+ data.renderer.setInput(notification);
223
+ }
224
+ disposeTemplate(templateData) {
225
+ dispose(templateData.toDispose);
226
+ }
227
+ };
228
+ NotificationRenderer = NotificationRenderer_1 = ( __decorate([
229
+ ( __param(1, IContextMenuService)),
230
+ ( __param(2, IInstantiationService)),
231
+ ( __param(3, INotificationService))
232
+ ], NotificationRenderer));
233
+ let NotificationTemplateRenderer = class NotificationTemplateRenderer extends Disposable {
234
+ static { NotificationTemplateRenderer_1 = this; }
235
+ static { this.SEVERITIES = [Severity.Info, Severity.Warning, Severity.Error]; }
236
+ constructor(template, actionRunner, openerService, instantiationService, keybindingService, contextMenuService) {
237
+ super();
238
+ this.template = template;
239
+ this.actionRunner = actionRunner;
240
+ this.openerService = openerService;
241
+ this.instantiationService = instantiationService;
242
+ this.keybindingService = keybindingService;
243
+ this.contextMenuService = contextMenuService;
244
+ this.inputDisposables = this._register(( new DisposableStore()));
245
+ if (!NotificationTemplateRenderer_1.closeNotificationAction) {
246
+ NotificationTemplateRenderer_1.closeNotificationAction = instantiationService.createInstance(ClearNotificationAction, ClearNotificationAction.ID, ClearNotificationAction.LABEL);
247
+ NotificationTemplateRenderer_1.expandNotificationAction = instantiationService.createInstance(ExpandNotificationAction, ExpandNotificationAction.ID, ExpandNotificationAction.LABEL);
248
+ NotificationTemplateRenderer_1.collapseNotificationAction = instantiationService.createInstance(CollapseNotificationAction, CollapseNotificationAction.ID, CollapseNotificationAction.LABEL);
249
+ }
250
+ }
251
+ setInput(notification) {
252
+ this.inputDisposables.clear();
253
+ this.render(notification);
254
+ }
255
+ render(notification) {
256
+ this.template.container.classList.toggle('expanded', notification.expanded);
257
+ this.inputDisposables.add(addDisposableListener(this.template.container, EventType.MOUSE_UP, e => {
258
+ if (e.button === 1 ) {
259
+ EventHelper.stop(e, true);
260
+ }
261
+ }));
262
+ this.inputDisposables.add(addDisposableListener(this.template.container, EventType.AUXCLICK, e => {
263
+ if (!notification.hasProgress && e.button === 1 ) {
264
+ EventHelper.stop(e, true);
265
+ notification.close();
266
+ }
267
+ }));
268
+ this.renderSeverity(notification);
269
+ const messageOverflows = this.renderMessage(notification);
270
+ this.renderSecondaryActions(notification, messageOverflows);
271
+ this.renderSource(notification);
272
+ this.renderButtons(notification);
273
+ this.renderProgress(notification);
274
+ this.inputDisposables.add(notification.onDidChangeContent(event => {
275
+ switch (event.kind) {
276
+ case 0 :
277
+ this.renderSeverity(notification);
278
+ break;
279
+ case 3 :
280
+ this.renderProgress(notification);
281
+ break;
282
+ case 1 :
283
+ this.renderMessage(notification);
284
+ break;
285
+ }
286
+ }));
287
+ }
288
+ renderSeverity(notification) {
289
+ NotificationTemplateRenderer_1.SEVERITIES.forEach(severity => {
290
+ if (notification.severity !== severity) {
291
+ this.template.icon.classList.remove(...ThemeIcon.asClassNameArray(this.toSeverityIcon(severity)));
292
+ }
293
+ });
294
+ this.template.icon.classList.add(...ThemeIcon.asClassNameArray(this.toSeverityIcon(notification.severity)));
295
+ }
296
+ renderMessage(notification) {
297
+ clearNode(this.template.message);
298
+ this.template.message.appendChild(NotificationMessageRenderer.render(notification.message, {
299
+ callback: link => this.openerService.open(( URI.parse(link)), { allowCommands: true }),
300
+ toDispose: this.inputDisposables
301
+ }));
302
+ const messageOverflows = notification.canCollapse && !notification.expanded && this.template.message.scrollWidth > this.template.message.clientWidth;
303
+ if (messageOverflows) {
304
+ this.template.message.title = this.template.message.textContent + '';
305
+ }
306
+ else {
307
+ this.template.message.removeAttribute('title');
308
+ }
309
+ return messageOverflows;
310
+ }
311
+ renderSecondaryActions(notification, messageOverflows) {
312
+ const actions = [];
313
+ if (isNonEmptyArray(notification.actions?.secondary)) {
314
+ const configureNotificationAction = this.instantiationService.createInstance(ConfigureNotificationAction, ConfigureNotificationAction.ID, ConfigureNotificationAction.LABEL, notification);
315
+ actions.push(configureNotificationAction);
316
+ this.inputDisposables.add(configureNotificationAction);
317
+ }
318
+ let showExpandCollapseAction = false;
319
+ if (notification.canCollapse) {
320
+ if (notification.expanded) {
321
+ showExpandCollapseAction = true;
322
+ }
323
+ else if (notification.source) {
324
+ showExpandCollapseAction = true;
325
+ }
326
+ else if (messageOverflows) {
327
+ showExpandCollapseAction = true;
328
+ }
329
+ }
330
+ if (showExpandCollapseAction) {
331
+ actions.push(notification.expanded ? NotificationTemplateRenderer_1.collapseNotificationAction : NotificationTemplateRenderer_1.expandNotificationAction);
332
+ }
333
+ if (!notification.hasProgress) {
334
+ actions.push(NotificationTemplateRenderer_1.closeNotificationAction);
335
+ }
336
+ this.template.toolbar.clear();
337
+ this.template.toolbar.context = notification;
338
+ actions.forEach(action => this.template.toolbar.push(action, { icon: true, label: false, keybinding: this.getKeybindingLabel(action) }));
339
+ }
340
+ renderSource(notification) {
341
+ if (notification.expanded && notification.source) {
342
+ this.template.source.textContent = ( localizeWithPath(
343
+ 'vs/workbench/browser/parts/notifications/notificationsViewer',
344
+ 'notificationSource',
345
+ "Source: {0}",
346
+ notification.source
347
+ ));
348
+ this.template.source.title = notification.source;
349
+ }
350
+ else {
351
+ this.template.source.textContent = '';
352
+ this.template.source.removeAttribute('title');
353
+ }
354
+ }
355
+ renderButtons(notification) {
356
+ clearNode(this.template.buttonsContainer);
357
+ const primaryActions = notification.actions ? notification.actions.primary : undefined;
358
+ if (notification.expanded && isNonEmptyArray(primaryActions)) {
359
+ const that = this;
360
+ const actionRunner = new (class extends ActionRunner {
361
+ async runAction(action) {
362
+ that.actionRunner.run(action, notification);
363
+ if (!(action instanceof ChoiceAction) || !action.keepOpen) {
364
+ notification.close();
365
+ }
366
+ }
367
+ })();
368
+ const buttonToolbar = this.inputDisposables.add(( new ButtonBar(this.template.buttonsContainer)));
369
+ for (let i = 0; i < primaryActions.length; i++) {
370
+ const action = primaryActions[i];
371
+ const options = {
372
+ title: true,
373
+ secondary: i > 0,
374
+ ...defaultButtonStyles
375
+ };
376
+ const dropdownActions = action instanceof ChoiceAction ? action.menu : undefined;
377
+ const button = this.inputDisposables.add(dropdownActions ?
378
+ buttonToolbar.addButtonWithDropdown({
379
+ ...options,
380
+ contextMenuProvider: this.contextMenuService,
381
+ actions: dropdownActions,
382
+ actionRunner
383
+ }) :
384
+ buttonToolbar.addButton(options));
385
+ button.label = action.label;
386
+ this.inputDisposables.add(button.onDidClick(e => {
387
+ if (e) {
388
+ EventHelper.stop(e, true);
389
+ }
390
+ actionRunner.run(action);
391
+ }));
392
+ }
393
+ }
394
+ }
395
+ renderProgress(notification) {
396
+ if (!notification.hasProgress) {
397
+ this.template.progress.stop().hide();
398
+ return;
399
+ }
400
+ const state = notification.progress.state;
401
+ if (state.infinite) {
402
+ this.template.progress.infinite().show();
403
+ }
404
+ else if (typeof state.total === 'number' || typeof state.worked === 'number') {
405
+ if (typeof state.total === 'number' && !this.template.progress.hasTotal()) {
406
+ this.template.progress.total(state.total);
407
+ }
408
+ if (typeof state.worked === 'number') {
409
+ this.template.progress.setWorked(state.worked).show();
410
+ }
411
+ }
412
+ else {
413
+ this.template.progress.done().hide();
414
+ }
415
+ }
416
+ toSeverityIcon(severity) {
417
+ switch (severity) {
418
+ case Severity.Warning:
419
+ return Codicon.warning;
420
+ case Severity.Error:
421
+ return Codicon.error;
422
+ }
423
+ return Codicon.info;
424
+ }
425
+ getKeybindingLabel(action) {
426
+ const keybinding = this.keybindingService.lookupKeybinding(action.id);
427
+ return keybinding ? keybinding.getLabel() : null;
428
+ }
429
+ };
430
+ NotificationTemplateRenderer = NotificationTemplateRenderer_1 = ( __decorate([
431
+ ( __param(2, IOpenerService)),
432
+ ( __param(3, IInstantiationService)),
433
+ ( __param(4, IKeybindingService)),
434
+ ( __param(5, IContextMenuService))
435
+ ], NotificationTemplateRenderer));
436
+ export { NotificationRenderer, NotificationTemplateRenderer, NotificationsListDelegate };