@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.
- package/lib/browser/contributions/cell-operations.d.ts +8 -0
- package/lib/browser/contributions/cell-operations.d.ts.map +1 -0
- package/lib/browser/contributions/cell-operations.js +45 -0
- package/lib/browser/contributions/cell-operations.js.map +1 -0
- package/lib/browser/contributions/notebook-actions-contribution.d.ts +48 -0
- package/lib/browser/contributions/notebook-actions-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-actions-contribution.js +344 -0
- package/lib/browser/contributions/notebook-actions-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts +66 -0
- package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-cell-actions-contribution.js +526 -0
- package/lib/browser/contributions/notebook-cell-actions-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-color-contribution.d.ts +6 -0
- package/lib/browser/contributions/notebook-color-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-color-contribution.js +247 -0
- package/lib/browser/contributions/notebook-color-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-context-keys.d.ts +44 -0
- package/lib/browser/contributions/notebook-context-keys.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-context-keys.js +108 -0
- package/lib/browser/contributions/notebook-context-keys.js.map +1 -0
- package/lib/browser/contributions/notebook-label-provider-contribution.d.ts +19 -0
- package/lib/browser/contributions/notebook-label-provider-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-label-provider-contribution.js +86 -0
- package/lib/browser/contributions/notebook-label-provider-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-outline-contribution.d.ts +29 -0
- package/lib/browser/contributions/notebook-outline-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-outline-contribution.js +115 -0
- package/lib/browser/contributions/notebook-outline-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-output-action-contribution.d.ts +16 -0
- package/lib/browser/contributions/notebook-output-action-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-output-action-contribution.js +83 -0
- package/lib/browser/contributions/notebook-output-action-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-status-bar-contribution.d.ts +12 -0
- package/lib/browser/contributions/notebook-status-bar-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-status-bar-contribution.js +61 -0
- package/lib/browser/contributions/notebook-status-bar-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.d.ts +10 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.js +49 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.js.map +1 -0
- package/lib/browser/index.d.ts +14 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +32 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/notebook-cell-open-handler.d.ts +10 -0
- package/lib/browser/notebook-cell-open-handler.d.ts.map +1 -0
- package/lib/browser/notebook-cell-open-handler.js +52 -0
- package/lib/browser/notebook-cell-open-handler.js.map +1 -0
- package/lib/browser/notebook-cell-resource-resolver.d.ts +26 -0
- package/lib/browser/notebook-cell-resource-resolver.d.ts.map +1 -0
- package/lib/browser/notebook-cell-resource-resolver.js +109 -0
- package/lib/browser/notebook-cell-resource-resolver.js.map +1 -0
- package/lib/browser/notebook-editor-split-contribution.d.ts +14 -0
- package/lib/browser/notebook-editor-split-contribution.d.ts.map +1 -0
- package/lib/browser/notebook-editor-split-contribution.js +51 -0
- package/lib/browser/notebook-editor-split-contribution.js.map +1 -0
- package/lib/browser/notebook-editor-widget-factory.d.ts +20 -0
- package/lib/browser/notebook-editor-widget-factory.d.ts.map +1 -0
- package/lib/browser/notebook-editor-widget-factory.js +101 -0
- package/lib/browser/notebook-editor-widget-factory.js.map +1 -0
- package/lib/browser/notebook-editor-widget.d.ts +102 -0
- package/lib/browser/notebook-editor-widget.d.ts.map +1 -0
- package/lib/browser/notebook-editor-widget.js +336 -0
- package/lib/browser/notebook-editor-widget.js.map +1 -0
- package/lib/browser/notebook-frontend-module.d.ts +5 -0
- package/lib/browser/notebook-frontend-module.d.ts.map +1 -0
- package/lib/browser/notebook-frontend-module.js +116 -0
- package/lib/browser/notebook-frontend-module.js.map +1 -0
- package/lib/browser/notebook-open-handler.d.ts +29 -0
- package/lib/browser/notebook-open-handler.d.ts.map +1 -0
- package/lib/browser/notebook-open-handler.js +119 -0
- package/lib/browser/notebook-open-handler.js.map +1 -0
- package/lib/browser/notebook-output-utils.d.ts +13 -0
- package/lib/browser/notebook-output-utils.d.ts.map +1 -0
- package/lib/browser/notebook-output-utils.js +112 -0
- package/lib/browser/notebook-output-utils.js.map +1 -0
- package/lib/browser/notebook-renderer-registry.d.ts +25 -0
- package/lib/browser/notebook-renderer-registry.d.ts.map +1 -0
- package/lib/browser/notebook-renderer-registry.js +72 -0
- package/lib/browser/notebook-renderer-registry.js.map +1 -0
- package/lib/browser/notebook-type-registry.d.ts +12 -0
- package/lib/browser/notebook-type-registry.d.ts.map +1 -0
- package/lib/browser/notebook-type-registry.js +60 -0
- package/lib/browser/notebook-type-registry.js.map +1 -0
- package/lib/browser/notebook-types.d.ts +131 -0
- package/lib/browser/notebook-types.d.ts.map +1 -0
- package/lib/browser/notebook-types.js +28 -0
- package/lib/browser/notebook-types.js.map +1 -0
- package/lib/browser/renderers/cell-output-webview.d.ts +26 -0
- package/lib/browser/renderers/cell-output-webview.d.ts.map +1 -0
- package/lib/browser/renderers/cell-output-webview.js +21 -0
- package/lib/browser/renderers/cell-output-webview.js.map +1 -0
- package/lib/browser/service/notebook-cell-editor-service.d.ts +23 -0
- package/lib/browser/service/notebook-cell-editor-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-cell-editor-service.js +89 -0
- package/lib/browser/service/notebook-cell-editor-service.js.map +1 -0
- package/lib/browser/service/notebook-cell-status-bar-service.d.ts +39 -0
- package/lib/browser/service/notebook-cell-status-bar-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-cell-status-bar-service.js +69 -0
- package/lib/browser/service/notebook-cell-status-bar-service.js.map +1 -0
- package/lib/browser/service/notebook-clipboard-service.d.ts +10 -0
- package/lib/browser/service/notebook-clipboard-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-clipboard-service.js +42 -0
- package/lib/browser/service/notebook-clipboard-service.js.map +1 -0
- package/lib/browser/service/notebook-context-manager.d.ts +28 -0
- package/lib/browser/service/notebook-context-manager.d.ts.map +1 -0
- package/lib/browser/service/notebook-context-manager.js +135 -0
- package/lib/browser/service/notebook-context-manager.js.map +1 -0
- package/lib/browser/service/notebook-editor-widget-service.d.ts +27 -0
- package/lib/browser/service/notebook-editor-widget-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-editor-widget-service.js +124 -0
- package/lib/browser/service/notebook-editor-widget-service.js.map +1 -0
- package/lib/browser/service/notebook-execution-service.d.ts +25 -0
- package/lib/browser/service/notebook-execution-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-execution-service.js +150 -0
- package/lib/browser/service/notebook-execution-service.js.map +1 -0
- package/lib/browser/service/notebook-execution-state-service.d.ts +78 -0
- package/lib/browser/service/notebook-execution-state-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-execution-state-service.js +247 -0
- package/lib/browser/service/notebook-execution-state-service.js.map +1 -0
- package/lib/browser/service/notebook-kernel-history-service.d.ts +28 -0
- package/lib/browser/service/notebook-kernel-history-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-kernel-history-service.js +116 -0
- package/lib/browser/service/notebook-kernel-history-service.js.map +1 -0
- package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts +61 -0
- package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-kernel-quick-pick-service.js +425 -0
- package/lib/browser/service/notebook-kernel-quick-pick-service.js.map +1 -0
- package/lib/browser/service/notebook-kernel-service.d.ts +125 -0
- package/lib/browser/service/notebook-kernel-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-kernel-service.js +268 -0
- package/lib/browser/service/notebook-kernel-service.js.map +1 -0
- package/lib/browser/service/notebook-model-resolver-service.d.ts +28 -0
- package/lib/browser/service/notebook-model-resolver-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-model-resolver-service.js +157 -0
- package/lib/browser/service/notebook-model-resolver-service.js.map +1 -0
- package/lib/browser/service/notebook-monaco-text-model-service.d.ts +21 -0
- package/lib/browser/service/notebook-monaco-text-model-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-monaco-text-model-service.js +73 -0
- package/lib/browser/service/notebook-monaco-text-model-service.js.map +1 -0
- package/lib/browser/service/notebook-options.d.ts +30 -0
- package/lib/browser/service/notebook-options.d.ts.map +1 -0
- package/lib/browser/service/notebook-options.js +130 -0
- package/lib/browser/service/notebook-options.js.map +1 -0
- package/lib/browser/service/notebook-renderer-messaging-service.d.ts +35 -0
- package/lib/browser/service/notebook-renderer-messaging-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-renderer-messaging-service.js +100 -0
- package/lib/browser/service/notebook-renderer-messaging-service.js.map +1 -0
- package/lib/browser/service/notebook-service.d.ts +68 -0
- package/lib/browser/service/notebook-service.d.ts.map +1 -0
- package/lib/browser/service/notebook-service.js +184 -0
- package/lib/browser/service/notebook-service.js.map +1 -0
- package/lib/browser/view/notebook-cell-editor.d.ts +46 -0
- package/lib/browser/view/notebook-cell-editor.d.ts.map +1 -0
- package/lib/browser/view/notebook-cell-editor.js +271 -0
- package/lib/browser/view/notebook-cell-editor.js.map +1 -0
- package/lib/browser/view/notebook-cell-list-view.d.ts +58 -0
- package/lib/browser/view/notebook-cell-list-view.d.ts.map +1 -0
- package/lib/browser/view/notebook-cell-list-view.js +225 -0
- package/lib/browser/view/notebook-cell-list-view.js.map +1 -0
- package/lib/browser/view/notebook-cell-toolbar-factory.d.ts +33 -0
- package/lib/browser/view/notebook-cell-toolbar-factory.d.ts.map +1 -0
- package/lib/browser/view/notebook-cell-toolbar-factory.js +110 -0
- package/lib/browser/view/notebook-cell-toolbar-factory.js.map +1 -0
- package/lib/browser/view/notebook-cell-toolbar.d.ts +25 -0
- package/lib/browser/view/notebook-cell-toolbar.d.ts.map +1 -0
- package/lib/browser/view/notebook-cell-toolbar.js +51 -0
- package/lib/browser/view/notebook-cell-toolbar.js.map +1 -0
- package/lib/browser/view/notebook-code-cell-view.d.ts +93 -0
- package/lib/browser/view/notebook-code-cell-view.d.ts.map +1 -0
- package/lib/browser/view/notebook-code-cell-view.js +338 -0
- package/lib/browser/view/notebook-code-cell-view.js.map +1 -0
- package/lib/browser/view/notebook-find-widget.d.ts +63 -0
- package/lib/browser/view/notebook-find-widget.d.ts.map +1 -0
- package/lib/browser/view/notebook-find-widget.js +225 -0
- package/lib/browser/view/notebook-find-widget.js.map +1 -0
- package/lib/browser/view/notebook-main-toolbar.d.ts +53 -0
- package/lib/browser/view/notebook-main-toolbar.d.ts.map +1 -0
- package/lib/browser/view/notebook-main-toolbar.js +184 -0
- package/lib/browser/view/notebook-main-toolbar.js.map +1 -0
- package/lib/browser/view/notebook-markdown-cell-view.d.ts +28 -0
- package/lib/browser/view/notebook-markdown-cell-view.d.ts.map +1 -0
- package/lib/browser/view/notebook-markdown-cell-view.js +216 -0
- package/lib/browser/view/notebook-markdown-cell-view.js.map +1 -0
- package/lib/browser/view/notebook-viewport-service.d.ts +17 -0
- package/lib/browser/view/notebook-viewport-service.d.ts.map +1 -0
- package/lib/browser/view/notebook-viewport-service.js +61 -0
- package/lib/browser/view/notebook-viewport-service.js.map +1 -0
- package/lib/browser/view-model/notebook-cell-model.d.ts +137 -0
- package/lib/browser/view-model/notebook-cell-model.d.ts.map +1 -0
- package/lib/browser/view-model/notebook-cell-model.js +367 -0
- package/lib/browser/view-model/notebook-cell-model.js.map +1 -0
- package/lib/browser/view-model/notebook-cell-output-model.d.ts +17 -0
- package/lib/browser/view-model/notebook-cell-output-model.d.ts.map +1 -0
- package/lib/browser/view-model/notebook-cell-output-model.js +87 -0
- package/lib/browser/view-model/notebook-cell-output-model.js.map +1 -0
- package/lib/browser/view-model/notebook-model.d.ts +85 -0
- package/lib/browser/view-model/notebook-model.d.ts.map +1 -0
- package/lib/browser/view-model/notebook-model.js +446 -0
- package/lib/browser/view-model/notebook-model.js.map +1 -0
- package/lib/browser/view-model/notebook-view-model.d.ts +40 -0
- package/lib/browser/view-model/notebook-view-model.d.ts.map +1 -0
- package/lib/browser/view-model/notebook-view-model.js +120 -0
- package/lib/browser/view-model/notebook-view-model.js.map +1 -0
- package/lib/common/index.d.ts +3 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +21 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/notebook-common.d.ts +227 -0
- package/lib/common/notebook-common.d.ts.map +1 -0
- package/lib/common/notebook-common.js +151 -0
- package/lib/common/notebook-common.js.map +1 -0
- package/lib/common/notebook-preferences.d.ts +15 -0
- package/lib/common/notebook-preferences.d.ts.map +1 -0
- package/lib/common/notebook-preferences.js +89 -0
- package/lib/common/notebook-preferences.js.map +1 -0
- package/lib/common/notebook-protocol.d.ts +21 -0
- package/lib/common/notebook-protocol.d.ts.map +1 -0
- package/lib/common/notebook-protocol.js +18 -0
- package/lib/common/notebook-protocol.js.map +1 -0
- package/lib/common/notebook-range.d.ts +14 -0
- package/lib/common/notebook-range.d.ts.map +1 -0
- package/lib/common/notebook-range.js +18 -0
- package/lib/common/notebook-range.js.map +1 -0
- package/lib/node/notebook-backend-module.d.ts +4 -0
- package/lib/node/notebook-backend-module.d.ts.map +1 -0
- package/lib/node/notebook-backend-module.js +23 -0
- package/lib/node/notebook-backend-module.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,271 @@
|
|
|
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.CellEditor = exports.FIND_MATCH_DECORATION = exports.CURRENT_FIND_MATCH_DECORATION = void 0;
|
|
19
|
+
const React = require("@theia/core/shared/react");
|
|
20
|
+
const simple_monaco_editor_1 = require("@theia/monaco/lib/browser/simple-monaco-editor");
|
|
21
|
+
const monaco_editor_provider_1 = require("@theia/monaco/lib/browser/monaco-editor-provider");
|
|
22
|
+
const contextkey_1 = require("@theia/monaco-editor-core/esm/vs/platform/contextkey/common/contextkey");
|
|
23
|
+
const core_1 = require("@theia/core");
|
|
24
|
+
const notebook_context_keys_1 = require("../contributions/notebook-context-keys");
|
|
25
|
+
const editorExtensions_1 = require("@theia/monaco-editor-core/esm/vs/editor/browser/editorExtensions");
|
|
26
|
+
const textModel_1 = require("@theia/monaco-editor-core/esm/vs/editor/common/model/textModel");
|
|
27
|
+
const model_1 = require("@theia/monaco-editor-core/esm/vs/editor/common/model");
|
|
28
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
29
|
+
const DEFAULT_EDITOR_OPTIONS = {
|
|
30
|
+
...monaco_editor_provider_1.MonacoEditorProvider.inlineOptions,
|
|
31
|
+
minHeight: -1,
|
|
32
|
+
maxHeight: -1,
|
|
33
|
+
scrollbar: {
|
|
34
|
+
...monaco_editor_provider_1.MonacoEditorProvider.inlineOptions.scrollbar,
|
|
35
|
+
alwaysConsumeMouseWheel: false
|
|
36
|
+
},
|
|
37
|
+
lineDecorationsWidth: 10,
|
|
38
|
+
};
|
|
39
|
+
exports.CURRENT_FIND_MATCH_DECORATION = textModel_1.ModelDecorationOptions.register({
|
|
40
|
+
description: 'current-find-match',
|
|
41
|
+
stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,
|
|
42
|
+
zIndex: 13,
|
|
43
|
+
className: 'currentFindMatch',
|
|
44
|
+
inlineClassName: 'currentFindMatchInline',
|
|
45
|
+
showIfCollapsed: true,
|
|
46
|
+
overviewRuler: {
|
|
47
|
+
color: 'editorOverviewRuler.findMatchForeground',
|
|
48
|
+
position: model_1.OverviewRulerLane.Center
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
exports.FIND_MATCH_DECORATION = textModel_1.ModelDecorationOptions.register({
|
|
52
|
+
description: 'find-match',
|
|
53
|
+
stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,
|
|
54
|
+
zIndex: 10,
|
|
55
|
+
className: 'findMatch',
|
|
56
|
+
inlineClassName: 'findMatchInline',
|
|
57
|
+
showIfCollapsed: true,
|
|
58
|
+
overviewRuler: {
|
|
59
|
+
color: 'editorOverviewRuler.findMatchForeground',
|
|
60
|
+
position: model_1.OverviewRulerLane.Center
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
class CellEditor extends React.Component {
|
|
64
|
+
constructor() {
|
|
65
|
+
super(...arguments);
|
|
66
|
+
this.toDispose = new core_1.DisposableCollection();
|
|
67
|
+
this.matches = [];
|
|
68
|
+
this.oldMatchDecorations = [];
|
|
69
|
+
this.handleResize = () => {
|
|
70
|
+
var _a;
|
|
71
|
+
(_a = this.editor) === null || _a === void 0 ? void 0 : _a.refresh();
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
componentDidMount() {
|
|
75
|
+
var _a;
|
|
76
|
+
const cellViewModel = this.props.notebookViewModel.cellViewModels.get(this.props.cell.handle);
|
|
77
|
+
if (!cellViewModel) {
|
|
78
|
+
throw new Error('CellViewModel not found for cell ' + this.props.cell.handle);
|
|
79
|
+
}
|
|
80
|
+
this.disposeEditor();
|
|
81
|
+
this.toDispose.push(cellViewModel.onWillFocusCellEditor(focusRequest => {
|
|
82
|
+
var _a, _b, _c, _d, _e, _f;
|
|
83
|
+
(_a = this.editor) === null || _a === void 0 ? void 0 : _a.getControl().focus();
|
|
84
|
+
const lineCount = (_c = (_b = this.editor) === null || _b === void 0 ? void 0 : _b.getControl().getModel()) === null || _c === void 0 ? void 0 : _c.getLineCount();
|
|
85
|
+
if (focusRequest && lineCount !== undefined) {
|
|
86
|
+
(_d = this.editor) === null || _d === void 0 ? void 0 : _d.getControl().setPosition(focusRequest === 'lastLine' ?
|
|
87
|
+
{ lineNumber: lineCount, column: 1 } :
|
|
88
|
+
{ lineNumber: focusRequest, column: 1 }, 'keyboard');
|
|
89
|
+
}
|
|
90
|
+
const currentLine = (_f = (_e = this.editor) === null || _e === void 0 ? void 0 : _e.getControl().getPosition()) === null || _f === void 0 ? void 0 : _f.lineNumber;
|
|
91
|
+
this.props.notebookContextManager.scopedStore.setContext(notebook_context_keys_1.NOTEBOOK_CELL_CURSOR_FIRST_LINE, currentLine === 1);
|
|
92
|
+
this.props.notebookContextManager.scopedStore.setContext(notebook_context_keys_1.NOTEBOOK_CELL_CURSOR_LAST_LINE, currentLine === lineCount);
|
|
93
|
+
}));
|
|
94
|
+
this.toDispose.push(cellViewModel.onWillBlurCellEditor(() => this.blurEditor()));
|
|
95
|
+
this.toDispose.push(this.props.cell.onDidChangeEditorOptions(options => {
|
|
96
|
+
var _a;
|
|
97
|
+
(_a = this.editor) === null || _a === void 0 ? void 0 : _a.getControl().updateOptions(options);
|
|
98
|
+
}));
|
|
99
|
+
this.toDispose.push(this.props.cell.onDidChangeLanguage(language => {
|
|
100
|
+
var _a;
|
|
101
|
+
(_a = this.editor) === null || _a === void 0 ? void 0 : _a.setLanguage(language);
|
|
102
|
+
}));
|
|
103
|
+
this.toDispose.push(this.props.cell.onDidFindMatches(matches => {
|
|
104
|
+
this.matches = matches;
|
|
105
|
+
(0, browser_1.animationFrame)().then(() => this.setMatches());
|
|
106
|
+
}));
|
|
107
|
+
this.toDispose.push(this.props.cell.onDidSelectFindMatch(match => this.centerEditorInView()));
|
|
108
|
+
this.toDispose.push(this.props.notebookViewModel.onDidChangeSelectedCell(e => {
|
|
109
|
+
var _a;
|
|
110
|
+
if (e.cell !== this.props.cell && ((_a = this.editor) === null || _a === void 0 ? void 0 : _a.getControl().hasTextFocus())) {
|
|
111
|
+
this.blurEditor();
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
if (!this.props.notebookViewportService || (this.container && this.props.notebookViewportService.isElementInViewport(this.container))) {
|
|
115
|
+
this.initEditor();
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const disposable = (_a = this.props.notebookViewportService) === null || _a === void 0 ? void 0 : _a.onDidChangeViewport(() => {
|
|
119
|
+
if (!this.editor && this.container && this.props.notebookViewportService.isElementInViewport(this.container)) {
|
|
120
|
+
this.initEditor();
|
|
121
|
+
disposable.dispose();
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
this.toDispose.push(disposable);
|
|
125
|
+
}
|
|
126
|
+
this.toDispose.push(this.props.cell.onDidRequestCenterEditor(() => {
|
|
127
|
+
this.centerEditorInView();
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
componentWillUnmount() {
|
|
131
|
+
if (this.resizeObserver) {
|
|
132
|
+
if (this.container) {
|
|
133
|
+
this.resizeObserver.unobserve(this.container);
|
|
134
|
+
}
|
|
135
|
+
this.resizeObserver.disconnect();
|
|
136
|
+
this.resizeObserver = undefined;
|
|
137
|
+
}
|
|
138
|
+
this.disposeEditor();
|
|
139
|
+
}
|
|
140
|
+
disposeEditor() {
|
|
141
|
+
if (this.editor) {
|
|
142
|
+
this.props.notebookCellEditorService.editorDisposed(this.editor.uri);
|
|
143
|
+
}
|
|
144
|
+
this.toDispose.dispose();
|
|
145
|
+
this.toDispose = new core_1.DisposableCollection();
|
|
146
|
+
}
|
|
147
|
+
centerEditorInView() {
|
|
148
|
+
var _a, _b;
|
|
149
|
+
const editorDomNode = (_a = this.editor) === null || _a === void 0 ? void 0 : _a.getControl().getDomNode();
|
|
150
|
+
if (editorDomNode) {
|
|
151
|
+
editorDomNode.scrollIntoView({
|
|
152
|
+
behavior: 'instant',
|
|
153
|
+
block: 'center'
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
(_b = this.container) === null || _b === void 0 ? void 0 : _b.scrollIntoView({
|
|
158
|
+
behavior: 'instant',
|
|
159
|
+
block: 'center'
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async initEditor() {
|
|
164
|
+
const { cell, notebookModel, monacoServices } = this.props;
|
|
165
|
+
if (this.container) {
|
|
166
|
+
const editorNode = this.container;
|
|
167
|
+
editorNode.style.height = '';
|
|
168
|
+
const editorModel = await cell.resolveTextModel();
|
|
169
|
+
const uri = cell.uri;
|
|
170
|
+
this.editor = new simple_monaco_editor_1.SimpleMonacoEditor(uri, editorModel, editorNode, monacoServices, { ...DEFAULT_EDITOR_OPTIONS, ...cell.editorOptions }, [[contextkey_1.IContextKeyService, this.props.notebookContextManager.scopedStore]], { contributions: editorExtensions_1.EditorExtensionsRegistry.getEditorContributions().filter(c => c.id !== 'editor.contrib.findController') });
|
|
171
|
+
this.toDispose.push(this.editor);
|
|
172
|
+
this.editor.setLanguage(cell.language);
|
|
173
|
+
this.toDispose.push(this.editor.getControl().onDidContentSizeChange(() => {
|
|
174
|
+
editorNode.style.height = this.editor.getControl().getContentHeight() + 7 + 'px';
|
|
175
|
+
this.editor.setSize({ width: -1, height: this.editor.getControl().getContentHeight() });
|
|
176
|
+
}));
|
|
177
|
+
this.toDispose.push(this.editor.onDocumentContentChanged(e => {
|
|
178
|
+
notebookModel.cellDirtyChanged(cell, true);
|
|
179
|
+
}));
|
|
180
|
+
this.toDispose.push(this.editor.getControl().onDidFocusEditorText(() => {
|
|
181
|
+
this.props.notebookViewModel.setSelectedCell(cell, false);
|
|
182
|
+
this.props.notebookCellEditorService.editorFocusChanged(this.editor);
|
|
183
|
+
}));
|
|
184
|
+
this.toDispose.push(this.editor.getControl().onDidBlurEditorText(() => {
|
|
185
|
+
var _a;
|
|
186
|
+
if (((_a = this.props.notebookCellEditorService.getActiveCell()) === null || _a === void 0 ? void 0 : _a.uri.toString()) === this.props.cell.uri.toString()) {
|
|
187
|
+
this.props.notebookCellEditorService.editorFocusChanged(undefined);
|
|
188
|
+
}
|
|
189
|
+
}));
|
|
190
|
+
this.toDispose.push(this.editor.getControl().onDidChangeCursorSelection(e => {
|
|
191
|
+
const selectedText = this.editor.getControl().getModel().getValueInRange(e.selection);
|
|
192
|
+
// TODO handle secondary selections
|
|
193
|
+
this.props.cell.selection = {
|
|
194
|
+
start: { line: e.selection.startLineNumber - 1, character: e.selection.startColumn - 1 },
|
|
195
|
+
end: { line: e.selection.endLineNumber - 1, character: e.selection.endColumn - 1 }
|
|
196
|
+
};
|
|
197
|
+
this.props.notebookModel.selectedText = selectedText;
|
|
198
|
+
}));
|
|
199
|
+
this.toDispose.push(this.editor.getControl().onDidChangeCursorPosition(e => {
|
|
200
|
+
if (e.secondaryPositions.length === 0) {
|
|
201
|
+
this.props.notebookContextManager.scopedStore.setContext(notebook_context_keys_1.NOTEBOOK_CELL_CURSOR_FIRST_LINE, e.position.lineNumber === 1);
|
|
202
|
+
this.props.notebookContextManager.scopedStore.setContext(notebook_context_keys_1.NOTEBOOK_CELL_CURSOR_LAST_LINE, e.position.lineNumber === this.editor.getControl().getModel().getLineCount());
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
this.props.notebookContextManager.scopedStore.setContext(notebook_context_keys_1.NOTEBOOK_CELL_CURSOR_FIRST_LINE, false);
|
|
206
|
+
this.props.notebookContextManager.scopedStore.setContext(notebook_context_keys_1.NOTEBOOK_CELL_CURSOR_LAST_LINE, false);
|
|
207
|
+
}
|
|
208
|
+
}));
|
|
209
|
+
this.props.notebookCellEditorService.editorCreated(uri, this.editor);
|
|
210
|
+
this.setMatches();
|
|
211
|
+
if (this.props.notebookViewModel.selectedCell === cell) {
|
|
212
|
+
this.editor.getControl().focus();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
setMatches() {
|
|
217
|
+
if (!this.editor) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const decorations = [];
|
|
221
|
+
for (const match of this.matches) {
|
|
222
|
+
const decoration = match.selected ? exports.CURRENT_FIND_MATCH_DECORATION : exports.FIND_MATCH_DECORATION;
|
|
223
|
+
decorations.push({
|
|
224
|
+
range: {
|
|
225
|
+
startLineNumber: match.range.start.line,
|
|
226
|
+
startColumn: match.range.start.character,
|
|
227
|
+
endLineNumber: match.range.end.line,
|
|
228
|
+
endColumn: match.range.end.character
|
|
229
|
+
},
|
|
230
|
+
options: decoration
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
this.oldMatchDecorations = this.editor.getControl()
|
|
234
|
+
.changeDecorations(accessor => accessor.deltaDecorations(this.oldMatchDecorations, decorations));
|
|
235
|
+
}
|
|
236
|
+
setContainer(component) {
|
|
237
|
+
if (this.resizeObserver && this.container) {
|
|
238
|
+
this.resizeObserver.unobserve(this.container);
|
|
239
|
+
}
|
|
240
|
+
this.container = component !== null && component !== void 0 ? component : undefined;
|
|
241
|
+
if (this.container) {
|
|
242
|
+
if (!this.resizeObserver) {
|
|
243
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
244
|
+
this.handleResize();
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
this.resizeObserver.observe(this.container);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
;
|
|
251
|
+
estimateHeight() {
|
|
252
|
+
var _a, _b;
|
|
253
|
+
const lineHeight = (_b = (_a = this.props.fontInfo) === null || _a === void 0 ? void 0 : _a.lineHeight) !== null && _b !== void 0 ? _b : 20;
|
|
254
|
+
return this.props.cell.text.split(core_1.OS.backend.EOL).length * lineHeight + 10 + 7 + 'px';
|
|
255
|
+
}
|
|
256
|
+
render() {
|
|
257
|
+
return React.createElement("div", { className: 'theia-notebook-cell-editor', id: this.props.cell.uri.toString(), ref: container => this.setContainer(container), style: { height: this.editor ? undefined : this.estimateHeight() } });
|
|
258
|
+
}
|
|
259
|
+
blurEditor() {
|
|
260
|
+
var _a;
|
|
261
|
+
let parent = (_a = this.container) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
262
|
+
while (parent && !parent.classList.contains('theia-notebook-cell')) {
|
|
263
|
+
parent = parent.parentElement;
|
|
264
|
+
}
|
|
265
|
+
if (parent) {
|
|
266
|
+
parent.focus();
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.CellEditor = CellEditor;
|
|
271
|
+
//# sourceMappingURL=notebook-cell-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook-cell-editor.js","sourceRoot":"","sources":["../../../src/browser/view/notebook-cell-editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import * as React from '@theia/core/shared/react';
|
|
3
|
+
import { CellKind } from '../../common';
|
|
4
|
+
import { NotebookCellModel } from '../view-model/notebook-cell-model';
|
|
5
|
+
import { NotebookModel } from '../view-model/notebook-model';
|
|
6
|
+
import { NotebookCellToolbarFactory } from './notebook-cell-toolbar-factory';
|
|
7
|
+
import { CommandRegistry, DisposableCollection, MenuModelRegistry } from '@theia/core';
|
|
8
|
+
import { NotebookContextManager } from '../service/notebook-context-manager';
|
|
9
|
+
import { NotebookViewModel } from '../view-model/notebook-view-model';
|
|
10
|
+
export interface CellRenderer {
|
|
11
|
+
render(notebookData: NotebookModel, cell: NotebookCellModel, index: number): React.ReactNode;
|
|
12
|
+
renderSidebar(notebookModel: NotebookModel, cell: NotebookCellModel): React.ReactNode;
|
|
13
|
+
renderDragImage(cell: NotebookCellModel): HTMLElement;
|
|
14
|
+
}
|
|
15
|
+
export declare function observeCellHeight(ref: HTMLDivElement | null, cell: NotebookCellModel): void;
|
|
16
|
+
interface CellListProps {
|
|
17
|
+
renderers: Map<CellKind, CellRenderer>;
|
|
18
|
+
notebookModel: NotebookModel;
|
|
19
|
+
notebookViewModel: NotebookViewModel;
|
|
20
|
+
notebookContext: NotebookContextManager;
|
|
21
|
+
toolbarRenderer: NotebookCellToolbarFactory;
|
|
22
|
+
commandRegistry: CommandRegistry;
|
|
23
|
+
menuRegistry: MenuModelRegistry;
|
|
24
|
+
}
|
|
25
|
+
interface NotebookCellListState {
|
|
26
|
+
selectedCell?: NotebookCellModel;
|
|
27
|
+
scrollIntoView: boolean;
|
|
28
|
+
dragOverIndicator: {
|
|
29
|
+
cell: NotebookCellModel;
|
|
30
|
+
position: 'top' | 'bottom';
|
|
31
|
+
} | undefined;
|
|
32
|
+
}
|
|
33
|
+
export declare class NotebookCellListView extends React.Component<CellListProps, NotebookCellListState> {
|
|
34
|
+
protected toDispose: DisposableCollection;
|
|
35
|
+
protected static dragGhost: HTMLElement | undefined;
|
|
36
|
+
protected cellListRef: React.RefObject<HTMLUListElement>;
|
|
37
|
+
constructor(props: CellListProps);
|
|
38
|
+
componentWillUnmount(): void;
|
|
39
|
+
render(): React.ReactNode;
|
|
40
|
+
renderCellContent(cell: NotebookCellModel, index: number): React.ReactNode;
|
|
41
|
+
renderCellSidebar(cell: NotebookCellModel): React.ReactNode;
|
|
42
|
+
protected onDragStart(event: React.DragEvent<HTMLElement>): void;
|
|
43
|
+
protected onDragOver(event: React.DragEvent<HTMLLIElement>, cell: NotebookCellModel, position?: 'top' | 'bottom'): void;
|
|
44
|
+
protected isEnabled(): boolean;
|
|
45
|
+
protected onDrop(event: React.DragEvent<HTMLLIElement>, dropElementIndex: number): void;
|
|
46
|
+
protected onAddNewCell(handler: (...args: unknown[]) => void, index: number): void;
|
|
47
|
+
protected shouldRenderDragOverIndicator(cell: NotebookCellModel, position: 'top' | 'bottom'): boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface NotebookCellDividerProps {
|
|
50
|
+
isVisible: () => boolean;
|
|
51
|
+
onAddNewCell: (createCommand: (...args: unknown[]) => void) => void;
|
|
52
|
+
onDrop: (event: React.DragEvent<HTMLLIElement>) => void;
|
|
53
|
+
onDragOver: (event: React.DragEvent<HTMLLIElement>) => void;
|
|
54
|
+
menuRegistry: MenuModelRegistry;
|
|
55
|
+
}
|
|
56
|
+
export declare function NotebookCellDivider({ isVisible, onAddNewCell, onDrop, onDragOver, menuRegistry }: NotebookCellDividerProps): React.JSX.Element;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=notebook-cell-list-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook-cell-list-view.d.ts","sourceRoot":"","sources":["../../../src/browser/view/notebook-cell-list-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotebookCellDivider = exports.NotebookCellListView = exports.observeCellHeight = void 0;
|
|
4
|
+
// *****************************************************************************
|
|
5
|
+
// Copyright (C) 2023 TypeFox and others.
|
|
6
|
+
//
|
|
7
|
+
// This program and the accompanying materials are made available under the
|
|
8
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
9
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
10
|
+
//
|
|
11
|
+
// This Source Code may also be made available under the following Secondary
|
|
12
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
13
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
14
|
+
// with the GNU Classpath Exception which is available at
|
|
15
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
16
|
+
//
|
|
17
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
18
|
+
// *****************************************************************************
|
|
19
|
+
const React = require("@theia/core/shared/react");
|
|
20
|
+
const common_1 = require("../../common");
|
|
21
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
22
|
+
const core_1 = require("@theia/core");
|
|
23
|
+
const notebook_actions_contribution_1 = require("../contributions/notebook-actions-contribution");
|
|
24
|
+
const notebook_cell_actions_contribution_1 = require("../contributions/notebook-cell-actions-contribution");
|
|
25
|
+
function observeCellHeight(ref, cell) {
|
|
26
|
+
var _a;
|
|
27
|
+
if (ref) {
|
|
28
|
+
cell.cellHeight = (_a = ref === null || ref === void 0 ? void 0 : ref.getBoundingClientRect().height) !== null && _a !== void 0 ? _a : 0;
|
|
29
|
+
new ResizeObserver(entries => { var _a; return cell.cellHeight = (_a = ref === null || ref === void 0 ? void 0 : ref.getBoundingClientRect().height) !== null && _a !== void 0 ? _a : 0; }).observe(ref);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.observeCellHeight = observeCellHeight;
|
|
33
|
+
class NotebookCellListView extends React.Component {
|
|
34
|
+
constructor(props) {
|
|
35
|
+
super(props);
|
|
36
|
+
this.toDispose = new core_1.DisposableCollection();
|
|
37
|
+
this.cellListRef = React.createRef();
|
|
38
|
+
this.state = { selectedCell: props.notebookViewModel.selectedCell, dragOverIndicator: undefined, scrollIntoView: true };
|
|
39
|
+
this.toDispose.push(props.notebookModel.onDidAddOrRemoveCell(e => {
|
|
40
|
+
if (e.newCellIds && e.newCellIds.length > 0) {
|
|
41
|
+
this.setState({
|
|
42
|
+
...this.state,
|
|
43
|
+
selectedCell: props.notebookViewModel.selectedCell,
|
|
44
|
+
scrollIntoView: true
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.setState({
|
|
49
|
+
...this.state,
|
|
50
|
+
selectedCell: props.notebookViewModel.selectedCell,
|
|
51
|
+
scrollIntoView: false
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}));
|
|
55
|
+
this.toDispose.push(props.notebookModel.onDidChangeContent(events => {
|
|
56
|
+
if (events.some(e => e.kind === common_1.NotebookCellsChangeType.Move)) {
|
|
57
|
+
// When a cell has been moved, we need to rerender the whole component
|
|
58
|
+
this.forceUpdate();
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
this.toDispose.push(props.notebookViewModel.onDidChangeSelectedCell(e => {
|
|
62
|
+
this.setState({
|
|
63
|
+
...this.state,
|
|
64
|
+
selectedCell: e.cell,
|
|
65
|
+
scrollIntoView: e.scrollIntoView
|
|
66
|
+
});
|
|
67
|
+
}));
|
|
68
|
+
this.toDispose.push((0, browser_1.onDomEvent)(document, 'focusin', () => {
|
|
69
|
+
(0, browser_1.animationFrame)().then(() => {
|
|
70
|
+
if (!this.cellListRef.current) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
let hasCellFocus = false;
|
|
74
|
+
let hasFocus = false;
|
|
75
|
+
if (this.cellListRef.current.contains(document.activeElement)) {
|
|
76
|
+
if (this.props.notebookViewModel.selectedCell) {
|
|
77
|
+
hasCellFocus = true;
|
|
78
|
+
}
|
|
79
|
+
hasFocus = true;
|
|
80
|
+
}
|
|
81
|
+
this.props.notebookContext.changeCellFocus(hasCellFocus);
|
|
82
|
+
this.props.notebookContext.changeCellListFocus(hasFocus);
|
|
83
|
+
});
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
componentWillUnmount() {
|
|
87
|
+
this.toDispose.dispose();
|
|
88
|
+
}
|
|
89
|
+
render() {
|
|
90
|
+
return React.createElement("ul", { className: 'theia-notebook-cell-list', ref: this.cellListRef, onDragStart: e => this.onDragStart(e) },
|
|
91
|
+
this.props.notebookModel.getVisibleCells()
|
|
92
|
+
.map((cell, index) => {
|
|
93
|
+
const cellViewModel = this.props.notebookViewModel.cellViewModels.get(cell.handle);
|
|
94
|
+
return React.createElement(React.Fragment, { key: 'cell-' + cell.handle },
|
|
95
|
+
React.createElement(NotebookCellDivider, { menuRegistry: this.props.menuRegistry, isVisible: () => this.isEnabled(), onAddNewCell: handler => this.onAddNewCell(handler, index), onDrop: e => this.onDrop(e, index), onDragOver: e => this.onDragOver(e, cell, 'top') }),
|
|
96
|
+
React.createElement(CellDropIndicator, { visible: this.shouldRenderDragOverIndicator(cell, 'top') }),
|
|
97
|
+
React.createElement("li", { className: 'theia-notebook-cell' + (this.state.selectedCell === cell ? ' focused' : '') + (this.isEnabled() ? ' draggable' : ''), onDragEnd: e => {
|
|
98
|
+
var _a;
|
|
99
|
+
(_a = NotebookCellListView.dragGhost) === null || _a === void 0 ? void 0 : _a.remove();
|
|
100
|
+
this.setState({ ...this.state, dragOverIndicator: undefined });
|
|
101
|
+
}, onDragOver: e => this.onDragOver(e, cell), onDrop: e => this.onDrop(e, index), draggable: true, tabIndex: -1, "data-cell-handle": cell.handle, ref: ref => {
|
|
102
|
+
if (ref && cell === this.state.selectedCell && this.state.scrollIntoView) {
|
|
103
|
+
ref.scrollIntoView({ block: 'nearest' });
|
|
104
|
+
if (cell.cellKind === common_1.CellKind.Markup && !(cellViewModel === null || cellViewModel === void 0 ? void 0 : cellViewModel.editing)) {
|
|
105
|
+
ref.focus();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}, onClick: e => {
|
|
109
|
+
this.setState({ ...this.state, selectedCell: cell });
|
|
110
|
+
this.props.notebookViewModel.setSelectedCell(cell, false);
|
|
111
|
+
} },
|
|
112
|
+
React.createElement("div", { className: 'theia-notebook-cell-sidebar' },
|
|
113
|
+
React.createElement("div", { className: 'theia-notebook-cell-marker' + (this.state.selectedCell === cell ? ' theia-notebook-cell-marker-selected' : '') }),
|
|
114
|
+
this.renderCellSidebar(cell)),
|
|
115
|
+
React.createElement("div", { className: 'theia-notebook-cell-content' }, this.renderCellContent(cell, index)),
|
|
116
|
+
this.state.selectedCell === cell &&
|
|
117
|
+
this.props.toolbarRenderer.renderCellToolbar(notebook_cell_actions_contribution_1.NotebookCellActionContribution.ACTION_MENU, cell, {
|
|
118
|
+
contextMenuArgs: () => [cell], commandArgs: () => [this.props.notebookModel, cell]
|
|
119
|
+
})),
|
|
120
|
+
React.createElement(CellDropIndicator, { visible: this.shouldRenderDragOverIndicator(cell, 'bottom') }));
|
|
121
|
+
}),
|
|
122
|
+
React.createElement(NotebookCellDivider, { menuRegistry: this.props.menuRegistry, isVisible: () => this.isEnabled(), onAddNewCell: handler => this.onAddNewCell(handler, this.props.notebookModel.cells.length), onDrop: e => this.onDrop(e, this.props.notebookModel.cells.length - 1), onDragOver: e => this.onDragOver(e, this.props.notebookModel.cells[this.props.notebookModel.cells.length - 1], 'bottom') }));
|
|
123
|
+
}
|
|
124
|
+
renderCellContent(cell, index) {
|
|
125
|
+
const renderer = this.props.renderers.get(cell.cellKind);
|
|
126
|
+
if (!renderer) {
|
|
127
|
+
throw new Error(`No renderer found for cell type ${cell.cellKind}`);
|
|
128
|
+
}
|
|
129
|
+
return renderer.render(this.props.notebookModel, cell, index);
|
|
130
|
+
}
|
|
131
|
+
renderCellSidebar(cell) {
|
|
132
|
+
const renderer = this.props.renderers.get(cell.cellKind);
|
|
133
|
+
if (!renderer) {
|
|
134
|
+
throw new Error(`No renderer found for cell type ${cell.cellKind}`);
|
|
135
|
+
}
|
|
136
|
+
return renderer.renderSidebar(this.props.notebookModel, cell);
|
|
137
|
+
}
|
|
138
|
+
onDragStart(event) {
|
|
139
|
+
var _a, _b;
|
|
140
|
+
event.stopPropagation();
|
|
141
|
+
if (!this.isEnabled()) {
|
|
142
|
+
event.preventDefault();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const cellHandle = event.target.getAttribute('data-cell-handle');
|
|
146
|
+
if (!cellHandle) {
|
|
147
|
+
throw new Error('Cell handle not found in element for cell drag event');
|
|
148
|
+
}
|
|
149
|
+
const index = this.props.notebookModel.getCellIndexByHandle(parseInt(cellHandle));
|
|
150
|
+
const cell = this.props.notebookModel.cells[index];
|
|
151
|
+
NotebookCellListView.dragGhost = document.createElement('div');
|
|
152
|
+
NotebookCellListView.dragGhost.classList.add('theia-notebook-drag-ghost-image');
|
|
153
|
+
NotebookCellListView.dragGhost.appendChild((_b = (_a = this.props.renderers.get(cell.cellKind)) === null || _a === void 0 ? void 0 : _a.renderDragImage(cell)) !== null && _b !== void 0 ? _b : document.createElement('div'));
|
|
154
|
+
document.body.appendChild(NotebookCellListView.dragGhost);
|
|
155
|
+
event.dataTransfer.setDragImage(NotebookCellListView.dragGhost, -10, 0);
|
|
156
|
+
event.dataTransfer.setData('text/theia-notebook-cell-index', index.toString());
|
|
157
|
+
event.dataTransfer.setData('text/plain', this.props.notebookModel.cells[index].source);
|
|
158
|
+
}
|
|
159
|
+
onDragOver(event, cell, position) {
|
|
160
|
+
if (!this.isEnabled()) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
event.preventDefault();
|
|
164
|
+
event.stopPropagation();
|
|
165
|
+
// show indicator
|
|
166
|
+
this.setState({ ...this.state, dragOverIndicator: { cell, position: (position !== null && position !== void 0 ? position : event.nativeEvent.offsetY < event.currentTarget.clientHeight / 2) ? 'top' : 'bottom' } });
|
|
167
|
+
}
|
|
168
|
+
isEnabled() {
|
|
169
|
+
return !Boolean(this.props.notebookModel.readOnly);
|
|
170
|
+
}
|
|
171
|
+
onDrop(event, dropElementIndex) {
|
|
172
|
+
var _a;
|
|
173
|
+
if (!this.isEnabled()) {
|
|
174
|
+
this.setState({ dragOverIndicator: undefined });
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const index = parseInt(event.dataTransfer.getData('text/theia-notebook-cell-index'));
|
|
178
|
+
const isTargetBelow = index < dropElementIndex;
|
|
179
|
+
let newIdx = ((_a = this.state.dragOverIndicator) === null || _a === void 0 ? void 0 : _a.position) === 'top' ? dropElementIndex : dropElementIndex + 1;
|
|
180
|
+
newIdx = isTargetBelow ? newIdx - 1 : newIdx;
|
|
181
|
+
if (index !== undefined && index !== dropElementIndex) {
|
|
182
|
+
this.props.notebookModel.applyEdits([{
|
|
183
|
+
editType: 6 /* CellEditType.Move */,
|
|
184
|
+
length: 1,
|
|
185
|
+
index,
|
|
186
|
+
newIdx
|
|
187
|
+
}], true);
|
|
188
|
+
}
|
|
189
|
+
this.setState({ ...this.state, dragOverIndicator: undefined });
|
|
190
|
+
}
|
|
191
|
+
onAddNewCell(handler, index) {
|
|
192
|
+
if (this.isEnabled()) {
|
|
193
|
+
this.props.commandRegistry.executeCommand(notebook_actions_contribution_1.NotebookCommands.CHANGE_SELECTED_CELL.id, index - 1);
|
|
194
|
+
handler(this.props.notebookModel, index);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
shouldRenderDragOverIndicator(cell, position) {
|
|
198
|
+
return this.isEnabled() &&
|
|
199
|
+
this.state.dragOverIndicator !== undefined &&
|
|
200
|
+
this.state.dragOverIndicator.cell === cell &&
|
|
201
|
+
this.state.dragOverIndicator.position === position;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
exports.NotebookCellListView = NotebookCellListView;
|
|
205
|
+
function NotebookCellDivider({ isVisible, onAddNewCell, onDrop, onDragOver, menuRegistry }) {
|
|
206
|
+
const [hover, setHover] = React.useState(false);
|
|
207
|
+
const menuPath = notebook_actions_contribution_1.NotebookMenus.NOTEBOOK_MAIN_TOOLBAR_CELL_ADD_GROUP; // we contribute into this menu, so it will exist
|
|
208
|
+
const menuItems = menuRegistry.getMenu(menuPath).children.filter(item => core_1.CommandMenu.is(item)).map(item => item);
|
|
209
|
+
const renderItem = (item) => {
|
|
210
|
+
const execute = (...args) => {
|
|
211
|
+
if (core_1.CommandMenu.is(item)) {
|
|
212
|
+
item.run([...menuPath, item.id], ...args);
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
return React.createElement("button", { key: item.id, className: 'theia-notebook-add-cell-button', onClick: () => onAddNewCell(execute), title: core_1.nls.localizeByDefault(`Add ${item.label} Cell`) },
|
|
216
|
+
React.createElement("div", { className: item.icon + ' theia-notebook-add-cell-button-icon' }),
|
|
217
|
+
React.createElement("div", { className: 'theia-notebook-add-cell-button-text' }, item.label));
|
|
218
|
+
};
|
|
219
|
+
return React.createElement("li", { className: 'theia-notebook-cell-divider', onMouseEnter: () => setHover(true), onMouseLeave: () => setHover(false), onDrop: onDrop, onDragOver: onDragOver }, hover && isVisible() && React.createElement("div", { className: 'theia-notebook-add-cell-buttons' }, menuItems.map((item) => renderItem(item))));
|
|
220
|
+
}
|
|
221
|
+
exports.NotebookCellDivider = NotebookCellDivider;
|
|
222
|
+
function CellDropIndicator(props) {
|
|
223
|
+
return React.createElement("div", { className: 'theia-notebook-cell-drop-indicator', style: { visibility: props.visible ? 'visible' : 'hidden' } });
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=notebook-cell-list-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook-cell-list-view.js","sourceRoot":"","sources":["../../../src/browser/view/notebook-cell-list-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import * as React from '@theia/core/shared/react';
|
|
3
|
+
import { CommandRegistry, DisposableCollection, Emitter, Event, MenuModelRegistry } from '@theia/core';
|
|
4
|
+
import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
5
|
+
import { ContextMenuRenderer } from '@theia/core/lib/browser';
|
|
6
|
+
import { NotebookCellModel } from '../view-model/notebook-cell-model';
|
|
7
|
+
import { NotebookContextManager } from '../service/notebook-context-manager';
|
|
8
|
+
export interface NotebookCellToolbarItem {
|
|
9
|
+
id: string;
|
|
10
|
+
icon?: string;
|
|
11
|
+
label?: string;
|
|
12
|
+
onClick: (e: React.MouseEvent) => void;
|
|
13
|
+
isVisible: () => boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface toolbarItemOptions {
|
|
16
|
+
contextMenuArgs?: () => unknown[];
|
|
17
|
+
commandArgs?: () => unknown[];
|
|
18
|
+
}
|
|
19
|
+
export declare class NotebookCellToolbarFactory {
|
|
20
|
+
protected menuRegistry: MenuModelRegistry;
|
|
21
|
+
protected contextKeyService: ContextKeyService;
|
|
22
|
+
protected readonly contextMenuRenderer: ContextMenuRenderer;
|
|
23
|
+
protected readonly commandRegistry: CommandRegistry;
|
|
24
|
+
protected readonly notebookContextManager: NotebookContextManager;
|
|
25
|
+
protected readonly onDidChangeContextEmitter: Emitter<void>;
|
|
26
|
+
readonly onDidChangeContext: Event<void>;
|
|
27
|
+
protected toDisposeOnRender: DisposableCollection;
|
|
28
|
+
renderCellToolbar(menuPath: string[], cell: NotebookCellModel, itemOptions: toolbarItemOptions): React.ReactNode;
|
|
29
|
+
renderSidebar(menuPath: string[], cell: NotebookCellModel, itemOptions: toolbarItemOptions): React.ReactNode;
|
|
30
|
+
private getMenuItems;
|
|
31
|
+
private createToolbarItem;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=notebook-cell-toolbar-factory.d.ts.map
|