@theia/notebook 1.67.0-next.56 → 1.67.0-next.59

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 (229) hide show
  1. package/lib/browser/contributions/cell-operations.d.ts +8 -0
  2. package/lib/browser/contributions/cell-operations.d.ts.map +1 -0
  3. package/lib/browser/contributions/cell-operations.js +45 -0
  4. package/lib/browser/contributions/cell-operations.js.map +1 -0
  5. package/lib/browser/contributions/notebook-actions-contribution.d.ts +48 -0
  6. package/lib/browser/contributions/notebook-actions-contribution.d.ts.map +1 -0
  7. package/lib/browser/contributions/notebook-actions-contribution.js +344 -0
  8. package/lib/browser/contributions/notebook-actions-contribution.js.map +1 -0
  9. package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts +66 -0
  10. package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts.map +1 -0
  11. package/lib/browser/contributions/notebook-cell-actions-contribution.js +526 -0
  12. package/lib/browser/contributions/notebook-cell-actions-contribution.js.map +1 -0
  13. package/lib/browser/contributions/notebook-color-contribution.d.ts +6 -0
  14. package/lib/browser/contributions/notebook-color-contribution.d.ts.map +1 -0
  15. package/lib/browser/contributions/notebook-color-contribution.js +247 -0
  16. package/lib/browser/contributions/notebook-color-contribution.js.map +1 -0
  17. package/lib/browser/contributions/notebook-context-keys.d.ts +44 -0
  18. package/lib/browser/contributions/notebook-context-keys.d.ts.map +1 -0
  19. package/lib/browser/contributions/notebook-context-keys.js +108 -0
  20. package/lib/browser/contributions/notebook-context-keys.js.map +1 -0
  21. package/lib/browser/contributions/notebook-label-provider-contribution.d.ts +19 -0
  22. package/lib/browser/contributions/notebook-label-provider-contribution.d.ts.map +1 -0
  23. package/lib/browser/contributions/notebook-label-provider-contribution.js +86 -0
  24. package/lib/browser/contributions/notebook-label-provider-contribution.js.map +1 -0
  25. package/lib/browser/contributions/notebook-outline-contribution.d.ts +29 -0
  26. package/lib/browser/contributions/notebook-outline-contribution.d.ts.map +1 -0
  27. package/lib/browser/contributions/notebook-outline-contribution.js +115 -0
  28. package/lib/browser/contributions/notebook-outline-contribution.js.map +1 -0
  29. package/lib/browser/contributions/notebook-output-action-contribution.d.ts +16 -0
  30. package/lib/browser/contributions/notebook-output-action-contribution.d.ts.map +1 -0
  31. package/lib/browser/contributions/notebook-output-action-contribution.js +83 -0
  32. package/lib/browser/contributions/notebook-output-action-contribution.js.map +1 -0
  33. package/lib/browser/contributions/notebook-status-bar-contribution.d.ts +12 -0
  34. package/lib/browser/contributions/notebook-status-bar-contribution.d.ts.map +1 -0
  35. package/lib/browser/contributions/notebook-status-bar-contribution.js +61 -0
  36. package/lib/browser/contributions/notebook-status-bar-contribution.js.map +1 -0
  37. package/lib/browser/contributions/notebook-undo-redo-handler.d.ts +10 -0
  38. package/lib/browser/contributions/notebook-undo-redo-handler.d.ts.map +1 -0
  39. package/lib/browser/contributions/notebook-undo-redo-handler.js +49 -0
  40. package/lib/browser/contributions/notebook-undo-redo-handler.js.map +1 -0
  41. package/lib/browser/index.d.ts +14 -0
  42. package/lib/browser/index.d.ts.map +1 -0
  43. package/lib/browser/index.js +32 -0
  44. package/lib/browser/index.js.map +1 -0
  45. package/lib/browser/notebook-cell-open-handler.d.ts +10 -0
  46. package/lib/browser/notebook-cell-open-handler.d.ts.map +1 -0
  47. package/lib/browser/notebook-cell-open-handler.js +52 -0
  48. package/lib/browser/notebook-cell-open-handler.js.map +1 -0
  49. package/lib/browser/notebook-cell-resource-resolver.d.ts +26 -0
  50. package/lib/browser/notebook-cell-resource-resolver.d.ts.map +1 -0
  51. package/lib/browser/notebook-cell-resource-resolver.js +109 -0
  52. package/lib/browser/notebook-cell-resource-resolver.js.map +1 -0
  53. package/lib/browser/notebook-editor-split-contribution.d.ts +14 -0
  54. package/lib/browser/notebook-editor-split-contribution.d.ts.map +1 -0
  55. package/lib/browser/notebook-editor-split-contribution.js +51 -0
  56. package/lib/browser/notebook-editor-split-contribution.js.map +1 -0
  57. package/lib/browser/notebook-editor-widget-factory.d.ts +20 -0
  58. package/lib/browser/notebook-editor-widget-factory.d.ts.map +1 -0
  59. package/lib/browser/notebook-editor-widget-factory.js +101 -0
  60. package/lib/browser/notebook-editor-widget-factory.js.map +1 -0
  61. package/lib/browser/notebook-editor-widget.d.ts +102 -0
  62. package/lib/browser/notebook-editor-widget.d.ts.map +1 -0
  63. package/lib/browser/notebook-editor-widget.js +336 -0
  64. package/lib/browser/notebook-editor-widget.js.map +1 -0
  65. package/lib/browser/notebook-frontend-module.d.ts +5 -0
  66. package/lib/browser/notebook-frontend-module.d.ts.map +1 -0
  67. package/lib/browser/notebook-frontend-module.js +116 -0
  68. package/lib/browser/notebook-frontend-module.js.map +1 -0
  69. package/lib/browser/notebook-open-handler.d.ts +29 -0
  70. package/lib/browser/notebook-open-handler.d.ts.map +1 -0
  71. package/lib/browser/notebook-open-handler.js +119 -0
  72. package/lib/browser/notebook-open-handler.js.map +1 -0
  73. package/lib/browser/notebook-output-utils.d.ts +13 -0
  74. package/lib/browser/notebook-output-utils.d.ts.map +1 -0
  75. package/lib/browser/notebook-output-utils.js +112 -0
  76. package/lib/browser/notebook-output-utils.js.map +1 -0
  77. package/lib/browser/notebook-renderer-registry.d.ts +25 -0
  78. package/lib/browser/notebook-renderer-registry.d.ts.map +1 -0
  79. package/lib/browser/notebook-renderer-registry.js +72 -0
  80. package/lib/browser/notebook-renderer-registry.js.map +1 -0
  81. package/lib/browser/notebook-type-registry.d.ts +12 -0
  82. package/lib/browser/notebook-type-registry.d.ts.map +1 -0
  83. package/lib/browser/notebook-type-registry.js +60 -0
  84. package/lib/browser/notebook-type-registry.js.map +1 -0
  85. package/lib/browser/notebook-types.d.ts +131 -0
  86. package/lib/browser/notebook-types.d.ts.map +1 -0
  87. package/lib/browser/notebook-types.js +28 -0
  88. package/lib/browser/notebook-types.js.map +1 -0
  89. package/lib/browser/renderers/cell-output-webview.d.ts +26 -0
  90. package/lib/browser/renderers/cell-output-webview.d.ts.map +1 -0
  91. package/lib/browser/renderers/cell-output-webview.js +21 -0
  92. package/lib/browser/renderers/cell-output-webview.js.map +1 -0
  93. package/lib/browser/service/notebook-cell-editor-service.d.ts +23 -0
  94. package/lib/browser/service/notebook-cell-editor-service.d.ts.map +1 -0
  95. package/lib/browser/service/notebook-cell-editor-service.js +89 -0
  96. package/lib/browser/service/notebook-cell-editor-service.js.map +1 -0
  97. package/lib/browser/service/notebook-cell-status-bar-service.d.ts +39 -0
  98. package/lib/browser/service/notebook-cell-status-bar-service.d.ts.map +1 -0
  99. package/lib/browser/service/notebook-cell-status-bar-service.js +69 -0
  100. package/lib/browser/service/notebook-cell-status-bar-service.js.map +1 -0
  101. package/lib/browser/service/notebook-clipboard-service.d.ts +10 -0
  102. package/lib/browser/service/notebook-clipboard-service.d.ts.map +1 -0
  103. package/lib/browser/service/notebook-clipboard-service.js +42 -0
  104. package/lib/browser/service/notebook-clipboard-service.js.map +1 -0
  105. package/lib/browser/service/notebook-context-manager.d.ts +28 -0
  106. package/lib/browser/service/notebook-context-manager.d.ts.map +1 -0
  107. package/lib/browser/service/notebook-context-manager.js +135 -0
  108. package/lib/browser/service/notebook-context-manager.js.map +1 -0
  109. package/lib/browser/service/notebook-editor-widget-service.d.ts +27 -0
  110. package/lib/browser/service/notebook-editor-widget-service.d.ts.map +1 -0
  111. package/lib/browser/service/notebook-editor-widget-service.js +124 -0
  112. package/lib/browser/service/notebook-editor-widget-service.js.map +1 -0
  113. package/lib/browser/service/notebook-execution-service.d.ts +25 -0
  114. package/lib/browser/service/notebook-execution-service.d.ts.map +1 -0
  115. package/lib/browser/service/notebook-execution-service.js +150 -0
  116. package/lib/browser/service/notebook-execution-service.js.map +1 -0
  117. package/lib/browser/service/notebook-execution-state-service.d.ts +78 -0
  118. package/lib/browser/service/notebook-execution-state-service.d.ts.map +1 -0
  119. package/lib/browser/service/notebook-execution-state-service.js +247 -0
  120. package/lib/browser/service/notebook-execution-state-service.js.map +1 -0
  121. package/lib/browser/service/notebook-kernel-history-service.d.ts +28 -0
  122. package/lib/browser/service/notebook-kernel-history-service.d.ts.map +1 -0
  123. package/lib/browser/service/notebook-kernel-history-service.js +116 -0
  124. package/lib/browser/service/notebook-kernel-history-service.js.map +1 -0
  125. package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts +61 -0
  126. package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts.map +1 -0
  127. package/lib/browser/service/notebook-kernel-quick-pick-service.js +425 -0
  128. package/lib/browser/service/notebook-kernel-quick-pick-service.js.map +1 -0
  129. package/lib/browser/service/notebook-kernel-service.d.ts +125 -0
  130. package/lib/browser/service/notebook-kernel-service.d.ts.map +1 -0
  131. package/lib/browser/service/notebook-kernel-service.js +268 -0
  132. package/lib/browser/service/notebook-kernel-service.js.map +1 -0
  133. package/lib/browser/service/notebook-model-resolver-service.d.ts +28 -0
  134. package/lib/browser/service/notebook-model-resolver-service.d.ts.map +1 -0
  135. package/lib/browser/service/notebook-model-resolver-service.js +157 -0
  136. package/lib/browser/service/notebook-model-resolver-service.js.map +1 -0
  137. package/lib/browser/service/notebook-monaco-text-model-service.d.ts +21 -0
  138. package/lib/browser/service/notebook-monaco-text-model-service.d.ts.map +1 -0
  139. package/lib/browser/service/notebook-monaco-text-model-service.js +73 -0
  140. package/lib/browser/service/notebook-monaco-text-model-service.js.map +1 -0
  141. package/lib/browser/service/notebook-options.d.ts +30 -0
  142. package/lib/browser/service/notebook-options.d.ts.map +1 -0
  143. package/lib/browser/service/notebook-options.js +130 -0
  144. package/lib/browser/service/notebook-options.js.map +1 -0
  145. package/lib/browser/service/notebook-renderer-messaging-service.d.ts +35 -0
  146. package/lib/browser/service/notebook-renderer-messaging-service.d.ts.map +1 -0
  147. package/lib/browser/service/notebook-renderer-messaging-service.js +100 -0
  148. package/lib/browser/service/notebook-renderer-messaging-service.js.map +1 -0
  149. package/lib/browser/service/notebook-service.d.ts +68 -0
  150. package/lib/browser/service/notebook-service.d.ts.map +1 -0
  151. package/lib/browser/service/notebook-service.js +184 -0
  152. package/lib/browser/service/notebook-service.js.map +1 -0
  153. package/lib/browser/view/notebook-cell-editor.d.ts +46 -0
  154. package/lib/browser/view/notebook-cell-editor.d.ts.map +1 -0
  155. package/lib/browser/view/notebook-cell-editor.js +271 -0
  156. package/lib/browser/view/notebook-cell-editor.js.map +1 -0
  157. package/lib/browser/view/notebook-cell-list-view.d.ts +58 -0
  158. package/lib/browser/view/notebook-cell-list-view.d.ts.map +1 -0
  159. package/lib/browser/view/notebook-cell-list-view.js +225 -0
  160. package/lib/browser/view/notebook-cell-list-view.js.map +1 -0
  161. package/lib/browser/view/notebook-cell-toolbar-factory.d.ts +33 -0
  162. package/lib/browser/view/notebook-cell-toolbar-factory.d.ts.map +1 -0
  163. package/lib/browser/view/notebook-cell-toolbar-factory.js +110 -0
  164. package/lib/browser/view/notebook-cell-toolbar-factory.js.map +1 -0
  165. package/lib/browser/view/notebook-cell-toolbar.d.ts +25 -0
  166. package/lib/browser/view/notebook-cell-toolbar.d.ts.map +1 -0
  167. package/lib/browser/view/notebook-cell-toolbar.js +51 -0
  168. package/lib/browser/view/notebook-cell-toolbar.js.map +1 -0
  169. package/lib/browser/view/notebook-code-cell-view.d.ts +93 -0
  170. package/lib/browser/view/notebook-code-cell-view.d.ts.map +1 -0
  171. package/lib/browser/view/notebook-code-cell-view.js +338 -0
  172. package/lib/browser/view/notebook-code-cell-view.js.map +1 -0
  173. package/lib/browser/view/notebook-find-widget.d.ts +63 -0
  174. package/lib/browser/view/notebook-find-widget.d.ts.map +1 -0
  175. package/lib/browser/view/notebook-find-widget.js +225 -0
  176. package/lib/browser/view/notebook-find-widget.js.map +1 -0
  177. package/lib/browser/view/notebook-main-toolbar.d.ts +53 -0
  178. package/lib/browser/view/notebook-main-toolbar.d.ts.map +1 -0
  179. package/lib/browser/view/notebook-main-toolbar.js +184 -0
  180. package/lib/browser/view/notebook-main-toolbar.js.map +1 -0
  181. package/lib/browser/view/notebook-markdown-cell-view.d.ts +28 -0
  182. package/lib/browser/view/notebook-markdown-cell-view.d.ts.map +1 -0
  183. package/lib/browser/view/notebook-markdown-cell-view.js +216 -0
  184. package/lib/browser/view/notebook-markdown-cell-view.js.map +1 -0
  185. package/lib/browser/view/notebook-viewport-service.d.ts +17 -0
  186. package/lib/browser/view/notebook-viewport-service.d.ts.map +1 -0
  187. package/lib/browser/view/notebook-viewport-service.js +61 -0
  188. package/lib/browser/view/notebook-viewport-service.js.map +1 -0
  189. package/lib/browser/view-model/notebook-cell-model.d.ts +137 -0
  190. package/lib/browser/view-model/notebook-cell-model.d.ts.map +1 -0
  191. package/lib/browser/view-model/notebook-cell-model.js +367 -0
  192. package/lib/browser/view-model/notebook-cell-model.js.map +1 -0
  193. package/lib/browser/view-model/notebook-cell-output-model.d.ts +17 -0
  194. package/lib/browser/view-model/notebook-cell-output-model.d.ts.map +1 -0
  195. package/lib/browser/view-model/notebook-cell-output-model.js +87 -0
  196. package/lib/browser/view-model/notebook-cell-output-model.js.map +1 -0
  197. package/lib/browser/view-model/notebook-model.d.ts +85 -0
  198. package/lib/browser/view-model/notebook-model.d.ts.map +1 -0
  199. package/lib/browser/view-model/notebook-model.js +446 -0
  200. package/lib/browser/view-model/notebook-model.js.map +1 -0
  201. package/lib/browser/view-model/notebook-view-model.d.ts +40 -0
  202. package/lib/browser/view-model/notebook-view-model.d.ts.map +1 -0
  203. package/lib/browser/view-model/notebook-view-model.js +120 -0
  204. package/lib/browser/view-model/notebook-view-model.js.map +1 -0
  205. package/lib/common/index.d.ts +3 -0
  206. package/lib/common/index.d.ts.map +1 -0
  207. package/lib/common/index.js +21 -0
  208. package/lib/common/index.js.map +1 -0
  209. package/lib/common/notebook-common.d.ts +227 -0
  210. package/lib/common/notebook-common.d.ts.map +1 -0
  211. package/lib/common/notebook-common.js +151 -0
  212. package/lib/common/notebook-common.js.map +1 -0
  213. package/lib/common/notebook-preferences.d.ts +15 -0
  214. package/lib/common/notebook-preferences.d.ts.map +1 -0
  215. package/lib/common/notebook-preferences.js +89 -0
  216. package/lib/common/notebook-preferences.js.map +1 -0
  217. package/lib/common/notebook-protocol.d.ts +21 -0
  218. package/lib/common/notebook-protocol.d.ts.map +1 -0
  219. package/lib/common/notebook-protocol.js +18 -0
  220. package/lib/common/notebook-protocol.js.map +1 -0
  221. package/lib/common/notebook-range.d.ts +14 -0
  222. package/lib/common/notebook-range.d.ts.map +1 -0
  223. package/lib/common/notebook-range.js +18 -0
  224. package/lib/common/notebook-range.js.map +1 -0
  225. package/lib/node/notebook-backend-module.d.ts +4 -0
  226. package/lib/node/notebook-backend-module.d.ts.map +1 -0
  227. package/lib/node/notebook-backend-module.js +23 -0
  228. package/lib/node/notebook-backend-module.js.map +1 -0
  229. package/package.json +7 -7
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2024 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
+ exports.NotebookOptionsService = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const common_1 = require("@theia/core/lib/common");
22
+ const core_1 = require("@theia/core");
23
+ const notebook_preferences_1 = require("../../common/notebook-preferences");
24
+ const editor_preferences_1 = require("@theia/editor/lib/common/editor-preferences");
25
+ const fontInfo_1 = require("@theia/monaco-editor-core/esm/vs/editor/common/config/fontInfo");
26
+ const pixelRatio_1 = require("@theia/monaco-editor-core/esm/vs/base/browser/pixelRatio");
27
+ const notebookOutputOptionsRelevantPreferences = [
28
+ 'editor.fontSize',
29
+ 'editor.fontFamily',
30
+ notebook_preferences_1.NotebookPreferences.NOTEBOOK_LINE_NUMBERS,
31
+ notebook_preferences_1.NotebookPreferences.OUTPUT_LINE_HEIGHT,
32
+ notebook_preferences_1.NotebookPreferences.OUTPUT_FONT_SIZE,
33
+ notebook_preferences_1.NotebookPreferences.OUTPUT_FONT_FAMILY,
34
+ notebook_preferences_1.NotebookPreferences.OUTPUT_SCROLLING,
35
+ notebook_preferences_1.NotebookPreferences.OUTPUT_WORD_WRAP,
36
+ notebook_preferences_1.NotebookPreferences.OUTPUT_LINE_LIMIT
37
+ ];
38
+ let NotebookOptionsService = class NotebookOptionsService {
39
+ constructor() {
40
+ this.outputOptionsChangedEmitter = new core_1.Emitter();
41
+ this.onDidChangeOutputOptions = this.outputOptionsChangedEmitter.event;
42
+ }
43
+ get editorFontInfo() {
44
+ return this.getOrCreateMonacoFontInfo();
45
+ }
46
+ init() {
47
+ this.preferenceService.onPreferencesChanged(async (preferenceChanges) => {
48
+ if (notebookOutputOptionsRelevantPreferences.some(p => p in preferenceChanges)) {
49
+ this.outputOptionsChangedEmitter.fire(this.computeOutputOptions());
50
+ }
51
+ });
52
+ }
53
+ computeOutputOptions() {
54
+ const outputLineHeight = this.getNotebookPreferenceWithDefault(notebook_preferences_1.NotebookPreferences.OUTPUT_LINE_HEIGHT);
55
+ const fontSize = this.preferenceService.get('editor.fontSize');
56
+ const outputFontSize = this.getNotebookPreferenceWithDefault(notebook_preferences_1.NotebookPreferences.OUTPUT_FONT_SIZE);
57
+ return {
58
+ fontSize,
59
+ outputFontSize: outputFontSize,
60
+ fontFamily: this.preferenceService.get('editor.fontFamily'),
61
+ outputNodeLeftPadding: 8,
62
+ outputFontFamily: this.getNotebookPreferenceWithDefault(notebook_preferences_1.NotebookPreferences.OUTPUT_FONT_FAMILY),
63
+ outputLineHeight: this.computeOutputLineHeight(outputLineHeight, outputFontSize !== null && outputFontSize !== void 0 ? outputFontSize : fontSize),
64
+ outputScrolling: this.getNotebookPreferenceWithDefault(notebook_preferences_1.NotebookPreferences.OUTPUT_SCROLLING),
65
+ outputWordWrap: this.getNotebookPreferenceWithDefault(notebook_preferences_1.NotebookPreferences.OUTPUT_WORD_WRAP),
66
+ outputLineLimit: this.getNotebookPreferenceWithDefault(notebook_preferences_1.NotebookPreferences.OUTPUT_LINE_LIMIT)
67
+ };
68
+ }
69
+ getNotebookPreferenceWithDefault(key) {
70
+ var _a, _b;
71
+ return this.preferenceService.get(key, (_b = (_a = notebook_preferences_1.notebookPreferenceSchema.properties) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.default);
72
+ }
73
+ computeOutputLineHeight(lineHeight, outputFontSize) {
74
+ const minimumLineHeight = 9;
75
+ if (lineHeight === 0) {
76
+ // use editor line height
77
+ lineHeight = this.editorFontInfo.lineHeight;
78
+ }
79
+ else if (lineHeight < minimumLineHeight) {
80
+ // Values too small to be line heights in pixels are in ems.
81
+ let fontSize = outputFontSize;
82
+ if (fontSize === 0) {
83
+ fontSize = this.preferenceService.get('editor.fontSize');
84
+ }
85
+ lineHeight = lineHeight * fontSize;
86
+ }
87
+ // Enforce integer, minimum constraints
88
+ lineHeight = Math.round(lineHeight);
89
+ if (lineHeight < minimumLineHeight) {
90
+ lineHeight = minimumLineHeight;
91
+ }
92
+ return lineHeight;
93
+ }
94
+ getOrCreateMonacoFontInfo() {
95
+ if (!this.fontInfo) {
96
+ this.fontInfo = this.createFontInfo();
97
+ this.editorPreferences.onPreferenceChanged(e => this.fontInfo = this.createFontInfo());
98
+ }
99
+ return this.fontInfo;
100
+ }
101
+ createFontInfo() {
102
+ return fontInfo_1.BareFontInfo.createFromRawSettings({
103
+ fontFamily: this.editorPreferences['editor.fontFamily'],
104
+ fontWeight: String(this.editorPreferences['editor.fontWeight']),
105
+ fontSize: this.editorPreferences['editor.fontSize'],
106
+ fontLigatures: this.editorPreferences['editor.fontLigatures'],
107
+ lineHeight: this.editorPreferences['editor.lineHeight'],
108
+ letterSpacing: this.editorPreferences['editor.letterSpacing'],
109
+ }, pixelRatio_1.PixelRatio.getInstance(window).value);
110
+ }
111
+ };
112
+ exports.NotebookOptionsService = NotebookOptionsService;
113
+ tslib_1.__decorate([
114
+ (0, inversify_1.inject)(common_1.PreferenceService),
115
+ tslib_1.__metadata("design:type", Object)
116
+ ], NotebookOptionsService.prototype, "preferenceService", void 0);
117
+ tslib_1.__decorate([
118
+ (0, inversify_1.inject)(editor_preferences_1.EditorPreferences),
119
+ tslib_1.__metadata("design:type", Object)
120
+ ], NotebookOptionsService.prototype, "editorPreferences", void 0);
121
+ tslib_1.__decorate([
122
+ (0, inversify_1.postConstruct)(),
123
+ tslib_1.__metadata("design:type", Function),
124
+ tslib_1.__metadata("design:paramtypes", []),
125
+ tslib_1.__metadata("design:returntype", void 0)
126
+ ], NotebookOptionsService.prototype, "init", null);
127
+ exports.NotebookOptionsService = NotebookOptionsService = tslib_1.__decorate([
128
+ (0, inversify_1.injectable)()
129
+ ], NotebookOptionsService);
130
+ //# sourceMappingURL=notebook-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-options.js","sourceRoot":"","sources":["../../../src/browser/service/notebook-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Emitter } from '@theia/core';
2
+ import { Disposable } from '@theia/core/shared/vscode-languageserver-protocol';
3
+ import { NotebookEditorWidgetService } from './notebook-editor-widget-service';
4
+ interface RendererMessage {
5
+ editorId: string;
6
+ rendererId: string;
7
+ message: unknown;
8
+ }
9
+ export interface RendererMessaging extends Disposable {
10
+ /**
11
+ * Method called when a message is received. Should return a boolean
12
+ * indicating whether a renderer received it.
13
+ */
14
+ receiveMessage?: (rendererId: string, message: unknown) => Promise<boolean>;
15
+ /**
16
+ * Sends a message to an extension from a renderer.
17
+ */
18
+ postMessage(rendererId: string, message: unknown): void;
19
+ }
20
+ export declare class NotebookRendererMessagingService implements Disposable {
21
+ protected readonly postMessageEmitter: Emitter<RendererMessage>;
22
+ readonly onPostMessage: import("@theia/core").Event<RendererMessage>;
23
+ protected readonly willActivateRendererEmitter: Emitter<string>;
24
+ readonly onWillActivateRenderer: import("@theia/core").Event<string>;
25
+ protected readonly editorWidgetService: NotebookEditorWidgetService;
26
+ protected readonly activations: Map<string, RendererMessage[] | undefined>;
27
+ protected readonly scopedMessaging: Map<string, RendererMessaging>;
28
+ receiveMessage(editorId: string | undefined, rendererId: string, message: unknown): Promise<boolean>;
29
+ prepare(rendererId: string): void;
30
+ getScoped(editorId: string): RendererMessaging;
31
+ protected postMessage(editorId: string, rendererId: string, message: unknown): void;
32
+ dispose(): void;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=notebook-renderer-messaging-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-renderer-messaging-service.d.ts","sourceRoot":"","sources":["../../../src/browser/service/notebook-renderer-messaging-service.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mDAAmD,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,UAAU,eAAe;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACjD;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5E;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3D;AAED,qBACa,gCAAiC,YAAW,UAAU;IAE/D,SAAS,CAAC,QAAQ,CAAC,kBAAkB,2BAAkC;IACvE,QAAQ,CAAC,aAAa,+CAAiC;IAEvD,SAAS,CAAC,QAAQ,CAAC,2BAA2B,kBAAyB;IACvE,QAAQ,CAAC,sBAAsB,sCAA0C;IAGzE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;IAEpE,SAAS,CAAC,QAAQ,CAAC,WAAW,6CAAqE;IACnG,SAAS,CAAC,QAAQ,CAAC,eAAe,iCAAuD;IAEzF,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IASpG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAgB1B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAmBrD,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAcnF,OAAO,IAAI,IAAI;CAGlB"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 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
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.NotebookRendererMessagingService = void 0;
23
+ const tslib_1 = require("tslib");
24
+ const core_1 = require("@theia/core");
25
+ const inversify_1 = require("@theia/core/shared/inversify");
26
+ const notebook_editor_widget_service_1 = require("./notebook-editor-widget-service");
27
+ ;
28
+ let NotebookRendererMessagingService = class NotebookRendererMessagingService {
29
+ constructor() {
30
+ this.postMessageEmitter = new core_1.Emitter();
31
+ this.onPostMessage = this.postMessageEmitter.event;
32
+ this.willActivateRendererEmitter = new core_1.Emitter();
33
+ this.onWillActivateRenderer = this.willActivateRendererEmitter.event;
34
+ this.activations = new Map();
35
+ this.scopedMessaging = new Map();
36
+ }
37
+ receiveMessage(editorId, rendererId, message) {
38
+ var _a, _b, _c;
39
+ if (editorId === undefined) {
40
+ const sends = [...this.scopedMessaging.values()].map(e => { var _a; return (_a = e.receiveMessage) === null || _a === void 0 ? void 0 : _a.call(e, rendererId, message); });
41
+ return Promise.all(sends).then(values => values.some(value => !!value));
42
+ }
43
+ return (_c = (_b = (_a = this.scopedMessaging.get(editorId)) === null || _a === void 0 ? void 0 : _a.receiveMessage) === null || _b === void 0 ? void 0 : _b.call(_a, rendererId, message)) !== null && _c !== void 0 ? _c : Promise.resolve(false);
44
+ }
45
+ prepare(rendererId) {
46
+ if (this.activations.has(rendererId)) {
47
+ return;
48
+ }
49
+ const queue = [];
50
+ this.activations.set(rendererId, queue);
51
+ Promise.all(this.willActivateRendererEmitter.fire(rendererId)).then(() => {
52
+ for (const message of queue) {
53
+ this.postMessageEmitter.fire(message);
54
+ }
55
+ this.activations.set(rendererId, undefined);
56
+ });
57
+ }
58
+ getScoped(editorId) {
59
+ const existing = this.scopedMessaging.get(editorId);
60
+ if (existing) {
61
+ return existing;
62
+ }
63
+ const messaging = {
64
+ postMessage: (rendererId, message) => this.postMessage(editorId, rendererId, message),
65
+ receiveMessage: async (rendererId, message) => {
66
+ var _a;
67
+ (_a = this.editorWidgetService.getNotebookEditor(editorId)) === null || _a === void 0 ? void 0 : _a.postRendererMessage(rendererId, message);
68
+ return true;
69
+ },
70
+ dispose: () => this.scopedMessaging.delete(editorId),
71
+ };
72
+ this.scopedMessaging.set(editorId, messaging);
73
+ return messaging;
74
+ }
75
+ postMessage(editorId, rendererId, message) {
76
+ if (!this.activations.has(rendererId)) {
77
+ this.prepare(rendererId);
78
+ }
79
+ const activation = this.activations.get(rendererId);
80
+ const toSend = { rendererId, editorId, message };
81
+ if (activation === undefined) {
82
+ this.postMessageEmitter.fire(toSend);
83
+ }
84
+ else {
85
+ activation.push(toSend);
86
+ }
87
+ }
88
+ dispose() {
89
+ this.postMessageEmitter.dispose();
90
+ }
91
+ };
92
+ exports.NotebookRendererMessagingService = NotebookRendererMessagingService;
93
+ tslib_1.__decorate([
94
+ (0, inversify_1.inject)(notebook_editor_widget_service_1.NotebookEditorWidgetService),
95
+ tslib_1.__metadata("design:type", notebook_editor_widget_service_1.NotebookEditorWidgetService)
96
+ ], NotebookRendererMessagingService.prototype, "editorWidgetService", void 0);
97
+ exports.NotebookRendererMessagingService = NotebookRendererMessagingService = tslib_1.__decorate([
98
+ (0, inversify_1.injectable)()
99
+ ], NotebookRendererMessagingService);
100
+ //# sourceMappingURL=notebook-renderer-messaging-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-renderer-messaging-service.js","sourceRoot":"","sources":["../../../src/browser/service/notebook-renderer-messaging-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { Disposable, DisposableCollection, Emitter, Resource, URI } from '@theia/core';
2
+ import { BinaryBuffer } from '@theia/core/lib/common/buffer';
3
+ import { NotebookData, TransientOptions } from '../../common';
4
+ import { NotebookModel, NotebookModelProps } from '../view-model/notebook-model';
5
+ import { FileService } from '@theia/filesystem/lib/browser/file-service';
6
+ import { NotebookCellModel, NotebookCellModelProps } from '../view-model/notebook-cell-model';
7
+ import { Deferred } from '@theia/core/lib/common/promise-util';
8
+ import { NotebookMonacoTextModelService } from './notebook-monaco-text-model-service';
9
+ import { CellEditOperation } from '../notebook-types';
10
+ export declare const NotebookProvider: unique symbol;
11
+ export interface NotebookProviderInfo {
12
+ readonly notebookType: string;
13
+ readonly serializer: NotebookSerializer;
14
+ }
15
+ export interface NotebookSerializer {
16
+ options: TransientOptions;
17
+ toNotebook(data: BinaryBuffer): Promise<NotebookData>;
18
+ fromNotebook(data: NotebookData): Promise<BinaryBuffer>;
19
+ }
20
+ export interface NotebookWorkspaceEdit {
21
+ edits: {
22
+ resource: URI;
23
+ edit: CellEditOperation;
24
+ }[];
25
+ }
26
+ export declare class NotebookService implements Disposable {
27
+ protected fileService: FileService;
28
+ protected notebookModelFactory: (props: NotebookModelProps) => NotebookModel;
29
+ protected notebookCellModelFactory: (props: NotebookCellModelProps) => NotebookCellModel;
30
+ protected textModelService: NotebookMonacoTextModelService;
31
+ protected willUseNotebookSerializerEmitter: Emitter<string>;
32
+ readonly onWillUseNotebookSerializer: import("@theia/core").Event<string>;
33
+ protected readonly disposables: DisposableCollection;
34
+ protected readonly notebookProviders: Map<string, NotebookProviderInfo>;
35
+ protected readonly notebookModels: Map<string, NotebookModel>;
36
+ protected readonly didRegisterNotebookSerializerEmitter: Emitter<string>;
37
+ readonly onDidRegisterNotebookSerializer: import("@theia/core").Event<string>;
38
+ protected readonly didRemoveViewTypeEmitter: Emitter<string>;
39
+ readonly onDidRemoveViewType: import("@theia/core").Event<string>;
40
+ protected readonly willOpenNotebookTypeEmitter: Emitter<string>;
41
+ readonly onWillOpenNotebook: import("@theia/core").Event<string>;
42
+ protected readonly didAddNotebookDocumentEmitter: Emitter<NotebookModel>;
43
+ readonly onDidAddNotebookDocument: import("@theia/core").Event<NotebookModel>;
44
+ protected readonly didRemoveNotebookDocumentEmitter: Emitter<NotebookModel>;
45
+ readonly onDidRemoveNotebookDocument: import("@theia/core").Event<NotebookModel>;
46
+ dispose(): void;
47
+ protected readonly ready: Deferred<void>;
48
+ /**
49
+ * Marks the notebook service as ready. From this point on, the service will start dispatching the `onNotebookSerializer` event.
50
+ */
51
+ markReady(): void;
52
+ registerNotebookSerializer(viewType: string, serializer: NotebookSerializer): Disposable;
53
+ createNotebookModel(data: NotebookData, viewType: string, resource: Resource): Promise<NotebookModel>;
54
+ getNotebookDataProvider(viewType: string): Promise<NotebookProviderInfo>;
55
+ /**
56
+ * When the application starts up, notebook providers from plugins are not registered yet.
57
+ * It takes a few seconds for the plugin host to start so that notebook data providers can be registered.
58
+ * This methods waits until the notebook provider is registered.
59
+ */
60
+ protected waitForNotebookProvider(type: string): Promise<NotebookProviderInfo>;
61
+ getNotebookEditorModel(uri: URI): NotebookModel | undefined;
62
+ getNotebookModels(): Iterable<NotebookModel>;
63
+ willOpenNotebook(type: string): Promise<void>;
64
+ listNotebookDocuments(): NotebookModel[];
65
+ applyWorkspaceEdit(workspaceEdit: NotebookWorkspaceEdit): boolean;
66
+ getCodeCellLanguage(model: NotebookModel): string;
67
+ }
68
+ //# sourceMappingURL=notebook-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-service.d.ts","sourceRoot":"","sources":["../../../src/browser/service/notebook-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 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
+ exports.NotebookService = exports.NotebookProvider = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const core_1 = require("@theia/core");
21
+ const inversify_1 = require("@theia/core/shared/inversify");
22
+ const common_1 = require("../../common");
23
+ const notebook_model_1 = require("../view-model/notebook-model");
24
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
25
+ const notebook_cell_model_1 = require("../view-model/notebook-cell-model");
26
+ const promise_util_1 = require("@theia/core/lib/common/promise-util");
27
+ const notebook_monaco_text_model_service_1 = require("./notebook-monaco-text-model-service");
28
+ exports.NotebookProvider = Symbol('notebook provider');
29
+ let NotebookService = class NotebookService {
30
+ constructor() {
31
+ this.willUseNotebookSerializerEmitter = new core_1.Emitter();
32
+ this.onWillUseNotebookSerializer = this.willUseNotebookSerializerEmitter.event;
33
+ this.disposables = new core_1.DisposableCollection();
34
+ this.notebookProviders = new Map();
35
+ this.notebookModels = new Map();
36
+ this.didRegisterNotebookSerializerEmitter = new core_1.Emitter();
37
+ this.onDidRegisterNotebookSerializer = this.didRegisterNotebookSerializerEmitter.event;
38
+ this.didRemoveViewTypeEmitter = new core_1.Emitter();
39
+ this.onDidRemoveViewType = this.didRemoveViewTypeEmitter.event;
40
+ this.willOpenNotebookTypeEmitter = new core_1.Emitter();
41
+ this.onWillOpenNotebook = this.willOpenNotebookTypeEmitter.event;
42
+ this.didAddNotebookDocumentEmitter = new core_1.Emitter();
43
+ this.onDidAddNotebookDocument = this.didAddNotebookDocumentEmitter.event;
44
+ this.didRemoveNotebookDocumentEmitter = new core_1.Emitter();
45
+ this.onDidRemoveNotebookDocument = this.didRemoveNotebookDocumentEmitter.event;
46
+ this.ready = new promise_util_1.Deferred();
47
+ }
48
+ dispose() {
49
+ this.disposables.dispose();
50
+ }
51
+ /**
52
+ * Marks the notebook service as ready. From this point on, the service will start dispatching the `onNotebookSerializer` event.
53
+ */
54
+ markReady() {
55
+ this.ready.resolve();
56
+ }
57
+ registerNotebookSerializer(viewType, serializer) {
58
+ if (this.notebookProviders.has(viewType)) {
59
+ throw new Error(`notebook provider for viewtype '${viewType}' already exists`);
60
+ }
61
+ this.notebookProviders.set(viewType, { notebookType: viewType, serializer });
62
+ this.didRegisterNotebookSerializerEmitter.fire(viewType);
63
+ return core_1.Disposable.create(() => {
64
+ this.notebookProviders.delete(viewType);
65
+ this.didRemoveViewTypeEmitter.fire(viewType);
66
+ });
67
+ }
68
+ async createNotebookModel(data, viewType, resource) {
69
+ const dataProvider = await this.getNotebookDataProvider(viewType);
70
+ const serializer = dataProvider.serializer;
71
+ const model = this.notebookModelFactory({ data, resource, viewType, serializer });
72
+ this.notebookModels.set(resource.uri.toString(), model);
73
+ // Resolve cell text models right after creating the notebook model
74
+ // This ensures that all text models are available in the plugin host
75
+ await this.textModelService.createTextModelsForNotebook(model);
76
+ this.didAddNotebookDocumentEmitter.fire(model);
77
+ model.onDidDispose(() => {
78
+ this.notebookModels.delete(resource.uri.toString());
79
+ this.didRemoveNotebookDocumentEmitter.fire(model);
80
+ });
81
+ return model;
82
+ }
83
+ async getNotebookDataProvider(viewType) {
84
+ try {
85
+ return await this.waitForNotebookProvider(viewType);
86
+ }
87
+ catch {
88
+ throw new Error(`No provider registered for view type: '${viewType}'`);
89
+ }
90
+ }
91
+ /**
92
+ * When the application starts up, notebook providers from plugins are not registered yet.
93
+ * It takes a few seconds for the plugin host to start so that notebook data providers can be registered.
94
+ * This methods waits until the notebook provider is registered.
95
+ */
96
+ waitForNotebookProvider(type) {
97
+ const existing = this.notebookProviders.get(type);
98
+ if (existing) {
99
+ return Promise.resolve(existing);
100
+ }
101
+ const deferred = new promise_util_1.Deferred();
102
+ // 20 seconds of timeout
103
+ const timeoutDuration = 20000;
104
+ // Must declare these variables where they can be captured by the closure
105
+ let disposable;
106
+ // eslint-disable-next-line
107
+ let timeout;
108
+ // eslint-disable-next-line
109
+ disposable = this.onDidRegisterNotebookSerializer(viewType => {
110
+ if (viewType === type) {
111
+ clearTimeout(timeout);
112
+ disposable.dispose();
113
+ const newProvider = this.notebookProviders.get(type);
114
+ if (!newProvider) {
115
+ deferred.reject(new Error(`Notebook provider for type ${type} is invalid`));
116
+ }
117
+ else {
118
+ deferred.resolve(newProvider);
119
+ }
120
+ }
121
+ });
122
+ timeout = setTimeout(() => {
123
+ clearTimeout(timeout);
124
+ disposable.dispose();
125
+ deferred.reject(new Error(`Timed out while waiting for notebook serializer for type ${type} to be registered`));
126
+ }, timeoutDuration);
127
+ this.ready.promise.then(() => {
128
+ this.willUseNotebookSerializerEmitter.fire(type);
129
+ });
130
+ return deferred.promise;
131
+ }
132
+ getNotebookEditorModel(uri) {
133
+ return this.notebookModels.get(uri.toString());
134
+ }
135
+ getNotebookModels() {
136
+ return this.notebookModels.values();
137
+ }
138
+ async willOpenNotebook(type) {
139
+ return this.willOpenNotebookTypeEmitter.sequence(async (listener) => listener(type));
140
+ }
141
+ listNotebookDocuments() {
142
+ return [...this.notebookModels.values()];
143
+ }
144
+ applyWorkspaceEdit(workspaceEdit) {
145
+ try {
146
+ workspaceEdit.edits.forEach(edit => {
147
+ const notebook = this.getNotebookEditorModel(edit.resource);
148
+ notebook === null || notebook === void 0 ? void 0 : notebook.applyEdits([edit.edit], true);
149
+ });
150
+ return true;
151
+ }
152
+ catch (e) {
153
+ console.error(e);
154
+ return false;
155
+ }
156
+ }
157
+ getCodeCellLanguage(model) {
158
+ var _a;
159
+ const firstCodeCell = model.cells.find(cellModel => cellModel.cellKind === common_1.CellKind.Code);
160
+ const cellLanguage = (_a = firstCodeCell === null || firstCodeCell === void 0 ? void 0 : firstCodeCell.language) !== null && _a !== void 0 ? _a : 'plaintext';
161
+ return cellLanguage;
162
+ }
163
+ };
164
+ exports.NotebookService = NotebookService;
165
+ tslib_1.__decorate([
166
+ (0, inversify_1.inject)(file_service_1.FileService),
167
+ tslib_1.__metadata("design:type", file_service_1.FileService)
168
+ ], NotebookService.prototype, "fileService", void 0);
169
+ tslib_1.__decorate([
170
+ (0, inversify_1.inject)(notebook_model_1.NotebookModelFactory),
171
+ tslib_1.__metadata("design:type", Function)
172
+ ], NotebookService.prototype, "notebookModelFactory", void 0);
173
+ tslib_1.__decorate([
174
+ (0, inversify_1.inject)(notebook_cell_model_1.NotebookCellModelFactory),
175
+ tslib_1.__metadata("design:type", Function)
176
+ ], NotebookService.prototype, "notebookCellModelFactory", void 0);
177
+ tslib_1.__decorate([
178
+ (0, inversify_1.inject)(notebook_monaco_text_model_service_1.NotebookMonacoTextModelService),
179
+ tslib_1.__metadata("design:type", notebook_monaco_text_model_service_1.NotebookMonacoTextModelService)
180
+ ], NotebookService.prototype, "textModelService", void 0);
181
+ exports.NotebookService = NotebookService = tslib_1.__decorate([
182
+ (0, inversify_1.injectable)()
183
+ ], NotebookService);
184
+ //# sourceMappingURL=notebook-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-service.js","sourceRoot":"","sources":["../../../src/browser/service/notebook-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /// <reference types="react" />
2
+ import * as React from '@theia/core/shared/react';
3
+ import { NotebookModel } from '../view-model/notebook-model';
4
+ import { NotebookCellModel, NotebookCodeEditorFindMatch } from '../view-model/notebook-cell-model';
5
+ import { SimpleMonacoEditor } from '@theia/monaco/lib/browser/simple-monaco-editor';
6
+ import { MonacoEditorServices } from '@theia/monaco/lib/browser/monaco-editor';
7
+ import { NotebookContextManager } from '../service/notebook-context-manager';
8
+ import { DisposableCollection } from '@theia/core';
9
+ import { NotebookViewportService } from './notebook-viewport-service';
10
+ import { BareFontInfo } from '@theia/monaco-editor-core/esm/vs/editor/common/config/fontInfo';
11
+ import { ModelDecorationOptions } from '@theia/monaco-editor-core/esm/vs/editor/common/model/textModel';
12
+ import { NotebookCellEditorService } from '../service/notebook-cell-editor-service';
13
+ import { NotebookViewModel } from '../view-model/notebook-view-model';
14
+ interface CellEditorProps {
15
+ notebookModel: NotebookModel;
16
+ notebookViewModel: NotebookViewModel;
17
+ cell: NotebookCellModel;
18
+ monacoServices: MonacoEditorServices;
19
+ notebookContextManager: NotebookContextManager;
20
+ notebookCellEditorService: NotebookCellEditorService;
21
+ notebookViewportService?: NotebookViewportService;
22
+ fontInfo?: BareFontInfo;
23
+ }
24
+ export declare const CURRENT_FIND_MATCH_DECORATION: ModelDecorationOptions;
25
+ export declare const FIND_MATCH_DECORATION: ModelDecorationOptions;
26
+ export declare class CellEditor extends React.Component<CellEditorProps, {}> {
27
+ protected editor?: SimpleMonacoEditor;
28
+ protected toDispose: DisposableCollection;
29
+ protected container?: HTMLDivElement;
30
+ protected matches: NotebookCodeEditorFindMatch[];
31
+ protected oldMatchDecorations: string[];
32
+ protected resizeObserver?: ResizeObserver;
33
+ componentDidMount(): void;
34
+ componentWillUnmount(): void;
35
+ protected disposeEditor(): void;
36
+ protected centerEditorInView(): void;
37
+ protected initEditor(): Promise<void>;
38
+ protected setMatches(): void;
39
+ protected setContainer(component: HTMLDivElement | null): void;
40
+ protected handleResize: () => void;
41
+ protected estimateHeight(): string;
42
+ render(): React.ReactNode;
43
+ protected blurEditor(): void;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=notebook-cell-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-cell-editor.d.ts","sourceRoot":"","sources":["../../../src/browser/view/notebook-cell-editor.tsx"],"names":[],"mappings":";AAgBA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAgB,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAG7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAM,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gEAAgE,CAAC;AAG9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAC;AAGxG,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,UAAU,eAAe;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,IAAI,EAAE,iBAAiB,CAAC;IACxB,cAAc,EAAE,oBAAoB,CAAC;IACrC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B;AAaD,eAAO,MAAM,6BAA6B,wBAWxC,CAAC;AAEH,eAAO,MAAM,qBAAqB,wBAWhC,CAAC;AAEH,qBAAa,UAAW,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;IAEhE,SAAS,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACtC,SAAS,CAAC,SAAS,uBAA8B;IACjD,SAAS,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;IACrC,SAAS,CAAC,OAAO,EAAE,2BAA2B,EAAE,CAAM;IACtD,SAAS,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAM;IAC7C,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEjC,iBAAiB,IAAI,IAAI;IA6DzB,oBAAoB,IAAI,IAAI;IAWrC,SAAS,CAAC,aAAa,IAAI,IAAI;IAQ/B,SAAS,CAAC,kBAAkB,IAAI,IAAI;cAepB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D3C,SAAS,CAAC,UAAU,IAAI,IAAI;IAsB5B,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAiB9D,SAAS,CAAC,YAAY,aAEpB;IAEF,SAAS,CAAC,cAAc,IAAI,MAAM;IAKzB,MAAM,IAAI,KAAK,CAAC,SAAS;IAMlC,SAAS,CAAC,UAAU,IAAI,IAAI;CAU/B"}