@opensumi/ide-notebook 3.5.1-next-1733469232.0 → 3.6.1-next-1733711618.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +0 -2
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/kernel-panel/index.d.ts +0 -1
- package/lib/browser/kernel-panel/index.d.ts.map +1 -1
- package/lib/browser/kernel-panel/index.js +0 -1
- package/lib/browser/kernel-panel/index.js.map +1 -1
- package/lib/browser/libro/libro-opensumi-content-contribution.d.ts.map +1 -1
- package/lib/browser/libro/libro-opensumi-content-contribution.js +3 -2
- package/lib/browser/libro/libro-opensumi-content-contribution.js.map +1 -1
- package/lib/browser/libro-keybind-contribution.d.ts +5 -7
- package/lib/browser/libro-keybind-contribution.d.ts.map +1 -1
- package/lib/browser/libro-keybind-contribution.js +14 -23
- package/lib/browser/libro-keybind-contribution.js.map +1 -1
- package/lib/browser/libro.contribution.d.ts +4 -2
- package/lib/browser/libro.contribution.d.ts.map +1 -1
- package/lib/browser/libro.contribution.js +33 -4
- package/lib/browser/libro.contribution.js.map +1 -1
- package/lib/browser/variables/index.less +102 -0
- package/lib/browser/variables/inspector-script.d.ts +17 -0
- package/lib/browser/variables/inspector-script.d.ts.map +1 -0
- package/lib/browser/variables/inspector-script.js +339 -0
- package/lib/browser/variables/inspector-script.js.map +1 -0
- package/lib/browser/variables/libro-variable-color-registry.d.ts +6 -0
- package/lib/browser/variables/libro-variable-color-registry.d.ts.map +1 -0
- package/lib/browser/variables/libro-variable-color-registry.js +111 -0
- package/lib/browser/variables/libro-variable-color-registry.js.map +1 -0
- package/lib/browser/variables/libro-variable-module.d.ts +3 -0
- package/lib/browser/variables/libro-variable-module.d.ts.map +1 -0
- package/lib/browser/variables/libro-variable-module.js +5 -0
- package/lib/browser/variables/libro-variable-module.js.map +1 -0
- package/lib/browser/variables/variable-panel.d.ts +6 -0
- package/lib/browser/variables/variable-panel.d.ts.map +1 -0
- package/lib/browser/variables/variable-panel.js +57 -0
- package/lib/browser/variables/variable-panel.js.map +1 -0
- package/lib/browser/variables/variable-protocol.d.ts +2 -0
- package/lib/browser/variables/variable-protocol.d.ts.map +1 -0
- package/lib/browser/variables/variable-protocol.js +2 -0
- package/lib/browser/variables/variable-protocol.js.map +1 -0
- package/lib/browser/variables/variable-view.d.ts +45 -0
- package/lib/browser/variables/variable-view.d.ts.map +1 -0
- package/lib/browser/variables/variable-view.js +242 -0
- package/lib/browser/variables/variable-view.js.map +1 -0
- package/package.json +13 -13
- package/src/browser/index.ts +0 -2
- package/src/browser/kernel-panel/index.ts +0 -1
- package/src/browser/libro/libro-opensumi-content-contribution.ts +3 -2
- package/src/browser/libro-keybind-contribution.ts +17 -24
- package/src/browser/libro.contribution.tsx +47 -3
- package/src/browser/variables/index.less +102 -0
- package/src/browser/variables/inspector-script.ts +349 -0
- package/src/browser/variables/libro-variable-color-registry.ts +131 -0
- package/src/browser/variables/libro-variable-module.ts +6 -0
- package/src/browser/variables/variable-panel.tsx +73 -0
- package/src/browser/variables/variable-protocol.ts +1 -0
- package/src/browser/variables/variable-view.tsx +311 -0
- package/lib/browser/kernel-panel/kernel.panel.contribution.d.ts +0 -7
- package/lib/browser/kernel-panel/kernel.panel.contribution.d.ts.map +0 -1
- package/lib/browser/kernel-panel/kernel.panel.contribution.js +0 -32
- package/lib/browser/kernel-panel/kernel.panel.contribution.js.map +0 -1
- package/src/browser/kernel-panel/kernel.panel.contribution.ts +0 -32
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { SearchOutlined, SelectOutlined } from '@ant-design/icons';
|
|
2
|
+
import { LibroContextKey, LibroJupyterModel, LibroView, NotebookCommands } from '@difizen/libro-jupyter/noeditor';
|
|
3
|
+
import {
|
|
4
|
+
BaseView,
|
|
5
|
+
CommandRegistry,
|
|
6
|
+
ThemeService,
|
|
7
|
+
ViewInstance,
|
|
8
|
+
inject,
|
|
9
|
+
prop,
|
|
10
|
+
transient,
|
|
11
|
+
useInject,
|
|
12
|
+
view,
|
|
13
|
+
} from '@difizen/mana-app';
|
|
14
|
+
import { Input, List, Tag, Tooltip, message } from 'antd';
|
|
15
|
+
import React, { forwardRef } from 'react';
|
|
16
|
+
import './index.less';
|
|
17
|
+
|
|
18
|
+
import { DisposableCollection, localize } from '@opensumi/ide-core-common';
|
|
19
|
+
|
|
20
|
+
import { Languages } from './inspector-script';
|
|
21
|
+
|
|
22
|
+
import type { LanguageModel } from './inspector-script';
|
|
23
|
+
import type { KernelMessage } from '@difizen/libro-kernel';
|
|
24
|
+
|
|
25
|
+
const LibroVariableComponent = forwardRef<HTMLDivElement>((props, ref) => {
|
|
26
|
+
const instance = useInject<LibroVariablePanelView>(ViewInstance);
|
|
27
|
+
const themeService = useInject(ThemeService);
|
|
28
|
+
const libroContextKey = useInject(LibroContextKey);
|
|
29
|
+
return (
|
|
30
|
+
<div ref={ref} className='libro-variable-content'>
|
|
31
|
+
<div className='libro-variable-search'>
|
|
32
|
+
<Input
|
|
33
|
+
className='libro-variable-search-input'
|
|
34
|
+
placeholder={localize('notebook.variable.panel.search.placeholder')}
|
|
35
|
+
prefix={<SearchOutlined />}
|
|
36
|
+
onChange={(e) => instance.search(e.target.value)}
|
|
37
|
+
onFocus={() => {
|
|
38
|
+
libroContextKey.disableCommandMode();
|
|
39
|
+
}}
|
|
40
|
+
onBlur={() => {
|
|
41
|
+
libroContextKey.enableCommandMode();
|
|
42
|
+
}}
|
|
43
|
+
/>
|
|
44
|
+
<img
|
|
45
|
+
src={`${
|
|
46
|
+
themeService.getCurrentTheme().type === 'dark'
|
|
47
|
+
? 'https://mdn.alipayobjects.com/huamei_xt20ge/afts/img/A*rY0oTpYcmZsAAAAAAAAAAAAADiuUAQ/original'
|
|
48
|
+
: 'https://mdn.alipayobjects.com/huamei_xt20ge/afts/img/A*VApRSqHz8wQAAAAAAAAAAAAADiuUAQ/original'
|
|
49
|
+
}`}
|
|
50
|
+
onClick={instance.refresh}
|
|
51
|
+
className='libro-variable-search-extra'
|
|
52
|
+
></img>
|
|
53
|
+
</div>
|
|
54
|
+
<List
|
|
55
|
+
className='libro-variable-list'
|
|
56
|
+
itemLayout='horizontal'
|
|
57
|
+
dataSource={instance.filteredList}
|
|
58
|
+
renderItem={(item) => {
|
|
59
|
+
const DesrendeItem = () => <Tooltip title={item.varContent}>{item.varContent}</Tooltip>;
|
|
60
|
+
return (
|
|
61
|
+
<List.Item>
|
|
62
|
+
<List.Item.Meta
|
|
63
|
+
title={
|
|
64
|
+
<div className='libro-variable-title'>
|
|
65
|
+
<span className='libro-variable-name'>
|
|
66
|
+
{item.varName}
|
|
67
|
+
<Tag className='libro-variable-type-tag' bordered={false}>
|
|
68
|
+
{item.varType}
|
|
69
|
+
</Tag>
|
|
70
|
+
</span>
|
|
71
|
+
<Tooltip placement='top' title={localize('notebook.variable.panel.show.detail')}>
|
|
72
|
+
<SelectOutlined onClick={() => instance.showVariable(item)} className='libro-variable-extra' />
|
|
73
|
+
</Tooltip>
|
|
74
|
+
</div>
|
|
75
|
+
}
|
|
76
|
+
description={<DesrendeItem />}
|
|
77
|
+
/>
|
|
78
|
+
</List.Item>
|
|
79
|
+
);
|
|
80
|
+
}}
|
|
81
|
+
/>
|
|
82
|
+
</div>
|
|
83
|
+
);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
export interface IVariable {
|
|
87
|
+
varName: string;
|
|
88
|
+
varSize: string;
|
|
89
|
+
varShape: string;
|
|
90
|
+
varContent: string;
|
|
91
|
+
varType: string;
|
|
92
|
+
isMatrix: boolean;
|
|
93
|
+
isWidget: boolean;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@transient()
|
|
97
|
+
@view('libro-variable-panel-view')
|
|
98
|
+
export class LibroVariablePanelView extends BaseView {
|
|
99
|
+
@inject(CommandRegistry) commands: CommandRegistry | undefined;
|
|
100
|
+
protected connectorToDispose = new DisposableCollection();
|
|
101
|
+
@prop()
|
|
102
|
+
list?: IVariable[];
|
|
103
|
+
@prop()
|
|
104
|
+
searchValue?: string;
|
|
105
|
+
protected languageModel?: LanguageModel;
|
|
106
|
+
protected kernelInited = false;
|
|
107
|
+
view = LibroVariableComponent;
|
|
108
|
+
parent?: LibroView;
|
|
109
|
+
|
|
110
|
+
get filteredList() {
|
|
111
|
+
if (!this.searchValue) {
|
|
112
|
+
return this.list;
|
|
113
|
+
}
|
|
114
|
+
if (!this.list) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
return this.list.filter((item) => {
|
|
118
|
+
if (!this.searchValue) {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
return item.varName.includes(this.searchValue);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
showVariable = async (variable: IVariable) => {
|
|
125
|
+
if (!this.parent) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
let activeIndex = this.parent.model.cells.length;
|
|
129
|
+
if (this.parent.activeCell) {
|
|
130
|
+
activeIndex = this.parent.findCellIndex(this.parent.activeCell) + 1;
|
|
131
|
+
}
|
|
132
|
+
await this.parent.addCell(
|
|
133
|
+
{
|
|
134
|
+
cell: {
|
|
135
|
+
cell_type: 'code',
|
|
136
|
+
source: variable.varName,
|
|
137
|
+
metadata: {},
|
|
138
|
+
outputs: [],
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
activeIndex,
|
|
142
|
+
);
|
|
143
|
+
const cell = this.parent.model.cells[activeIndex];
|
|
144
|
+
window.requestAnimationFrame(() => {
|
|
145
|
+
this.commands?.executeCommand(NotebookCommands.RunCell.id, cell, this.parent);
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
async update() {
|
|
149
|
+
if (!this.parent) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (!(this.parent.model instanceof LibroJupyterModel)) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const model = this.parent.model;
|
|
156
|
+
const connection = model.kernelConnection;
|
|
157
|
+
if (connection) {
|
|
158
|
+
this.connectorToDispose.push(
|
|
159
|
+
connection.statusChanged((status) => {
|
|
160
|
+
if (status === 'dead') {
|
|
161
|
+
this.kernelInited = false;
|
|
162
|
+
this.list = undefined;
|
|
163
|
+
this.connectorToDispose.dispose();
|
|
164
|
+
}
|
|
165
|
+
}),
|
|
166
|
+
);
|
|
167
|
+
this.connectorToDispose.push(
|
|
168
|
+
connection.statusChanged((status) => {
|
|
169
|
+
if (status === 'restarting') {
|
|
170
|
+
this.kernelInited = false;
|
|
171
|
+
this.list = undefined;
|
|
172
|
+
this.setupConnector(model);
|
|
173
|
+
}
|
|
174
|
+
}),
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
this.setupConnector(model);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
protected async setupConnector(model: LibroJupyterModel) {
|
|
181
|
+
if (!this.kernelInited) {
|
|
182
|
+
model.kcReady.then(async (connection) => {
|
|
183
|
+
const lang = (await connection.info).language_info.name;
|
|
184
|
+
const languageModel = await Languages.getScript(lang);
|
|
185
|
+
this.languageModel = languageModel;
|
|
186
|
+
this.initOnKernel().then(() => {
|
|
187
|
+
this.kernelInited = true;
|
|
188
|
+
this.connectorToDispose.push(connection.iopubMessage(this.queryCall));
|
|
189
|
+
this.performInspection();
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
} else {
|
|
193
|
+
if (model.kernelConnection) {
|
|
194
|
+
this.connectorToDispose.push(model.kernelConnection.iopubMessage(this.queryCall));
|
|
195
|
+
this.performInspection();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
pause = () => {
|
|
201
|
+
this.connectorToDispose.dispose();
|
|
202
|
+
this.connectorToDispose = new DisposableCollection();
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
search = (v: string) => {
|
|
206
|
+
this.searchValue = v;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
/*
|
|
210
|
+
* Invokes a inspection if the signal emitted from specified session is an 'execute_input' msg.
|
|
211
|
+
*/
|
|
212
|
+
protected queryCall = (msg: KernelMessage.IMessage): void => {
|
|
213
|
+
const msgType = msg.header.msg_type;
|
|
214
|
+
switch (msgType) {
|
|
215
|
+
case 'execute_input': {
|
|
216
|
+
const code = (msg as KernelMessage.IExecuteInputMsg).content.code;
|
|
217
|
+
if (
|
|
218
|
+
!(code === this.languageModel?.queryCommand) &&
|
|
219
|
+
!(code === this.languageModel?.matrixQueryCommand) &&
|
|
220
|
+
!code.startsWith(this.languageModel?.widgetQueryCommand || '')
|
|
221
|
+
) {
|
|
222
|
+
this.performInspection();
|
|
223
|
+
}
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
default:
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
public refresh = async () => {
|
|
232
|
+
try {
|
|
233
|
+
await this.performInspection();
|
|
234
|
+
message.success(localize('notebook.variable.panel.refresh.success', 'Variable refresh successful'));
|
|
235
|
+
} catch (ex) {
|
|
236
|
+
message.error(localize('notebook.variable.panel.refresh.error', 'Variable refresh failed'));
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* Performs an inspection by sending an execute request with the query command to the kernel.
|
|
241
|
+
*/
|
|
242
|
+
public performInspection = (): Promise<KernelMessage.IExecuteReplyMsg> => {
|
|
243
|
+
const content: KernelMessage.IExecuteRequestMsg['content'] = {
|
|
244
|
+
code: this.languageModel!.queryCommand,
|
|
245
|
+
stop_on_error: false,
|
|
246
|
+
store_history: false,
|
|
247
|
+
};
|
|
248
|
+
return this.fetch(content, this.handleQueryResponse);
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
protected handleQueryResponse = (response: KernelMessage.IIOPubMessage) => {
|
|
252
|
+
const msgType = response.header.msg_type;
|
|
253
|
+
switch (msgType) {
|
|
254
|
+
case 'execute_result': {
|
|
255
|
+
const payload = response as KernelMessage.IExecuteResultMsg;
|
|
256
|
+
let content: string = payload.content.data['text/plain'] as string;
|
|
257
|
+
if (content.slice(0, 1) === "'" || content.slice(0, 1) === '"') {
|
|
258
|
+
content = content.slice(1, -1);
|
|
259
|
+
content = content.replace(/\\"/g, '"').replace(/\\'/g, "'");
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const update = JSON.parse(content) as IVariable[];
|
|
263
|
+
this.list = update;
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
case 'display_data': {
|
|
267
|
+
const payloadDisplay = response as KernelMessage.IExecuteResultMsg;
|
|
268
|
+
let contentDisplay: string = payloadDisplay.content.data['text/plain'] as string;
|
|
269
|
+
if (contentDisplay.slice(0, 1) === "'" || contentDisplay.slice(0, 1) === '"') {
|
|
270
|
+
contentDisplay = contentDisplay.slice(1, -1);
|
|
271
|
+
contentDisplay = contentDisplay.replace(/\\"/g, '"').replace(/\\'/g, "'");
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const updateDisplay = JSON.parse(contentDisplay) as IVariable[];
|
|
275
|
+
this.list = updateDisplay;
|
|
276
|
+
break;
|
|
277
|
+
}
|
|
278
|
+
default:
|
|
279
|
+
break;
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Initializes the kernel by running the set up script located at _initScriptPath.
|
|
285
|
+
*/
|
|
286
|
+
protected initOnKernel(): Promise<KernelMessage.IExecuteReplyMsg> {
|
|
287
|
+
const content: KernelMessage.IExecuteRequestMsg['content'] = {
|
|
288
|
+
code: this.languageModel!.initScript,
|
|
289
|
+
stop_on_error: false,
|
|
290
|
+
silent: true,
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
return this.fetch(content, () => {
|
|
294
|
+
// no op
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
protected fetch = async (
|
|
299
|
+
content: KernelMessage.IExecuteRequestMsg['content'],
|
|
300
|
+
ioCallback: (msg: KernelMessage.IIOPubMessage) => any,
|
|
301
|
+
) => {
|
|
302
|
+
const model = this.parent!.model! as LibroJupyterModel;
|
|
303
|
+
await model.kcReady;
|
|
304
|
+
const connection = model.kernelConnection!;
|
|
305
|
+
const future = connection.requestExecute(content);
|
|
306
|
+
future.onIOPub = (msg) => {
|
|
307
|
+
ioCallback(msg);
|
|
308
|
+
};
|
|
309
|
+
return future.done as Promise<KernelMessage.IExecuteReplyMsg>;
|
|
310
|
+
};
|
|
311
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ComponentContribution, ComponentRegistry } from '@opensumi/ide-core-browser';
|
|
2
|
-
import { IconService } from '@opensumi/ide-theme/lib/browser';
|
|
3
|
-
export declare class KernelPanelContribution implements ComponentContribution {
|
|
4
|
-
protected readonly iconService: IconService;
|
|
5
|
-
registerComponent(registry: ComponentRegistry): void;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=kernel.panel.contribution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.panel.contribution.d.ts","sourceRoot":"","sources":["../../../src/browser/kernel-panel/kernel.panel.contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAoB,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAM9D,qBACa,uBAAwB,YAAW,qBAAqB;IAEnE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB;CAkB9C"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Autowired } from '@opensumi/di';
|
|
3
|
-
import { ComponentContribution, Domain, localize } from '@opensumi/ide-core-browser';
|
|
4
|
-
import { IconService } from '@opensumi/ide-theme/lib/browser';
|
|
5
|
-
import { IconType } from '@opensumi/ide-theme/lib/common';
|
|
6
|
-
import { KernelPanel } from './kernel-panel-view';
|
|
7
|
-
import { KERNEL_PANEL_ID } from './kernel.panel.protocol';
|
|
8
|
-
let KernelPanelContribution = class KernelPanelContribution {
|
|
9
|
-
registerComponent(registry) {
|
|
10
|
-
const iconClass = this.iconService.fromIcon('', {
|
|
11
|
-
dark: 'https://mdn.alipayobjects.com/huamei_xt20ge/afts/img/A*ae86Sq9KTxcAAAAAAAAAAAAADiuUAQ/original',
|
|
12
|
-
light: 'https://mdn.alipayobjects.com/huamei_xt20ge/afts/img/A*fWPISIBPGfsAAAAAAAAAAAAADiuUAQ/original',
|
|
13
|
-
}, IconType.Background);
|
|
14
|
-
registry.register('@opensumi/ide-notebook', [], {
|
|
15
|
-
containerId: KERNEL_PANEL_ID,
|
|
16
|
-
iconClass,
|
|
17
|
-
title: localize('notebook.kernel.panel.title'),
|
|
18
|
-
component: KernelPanel,
|
|
19
|
-
priority: 0,
|
|
20
|
-
activateKeyBinding: 'ctrlcmd+shift+k',
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
__decorate([
|
|
25
|
-
Autowired(IconService),
|
|
26
|
-
__metadata("design:type", IconService)
|
|
27
|
-
], KernelPanelContribution.prototype, "iconService", void 0);
|
|
28
|
-
KernelPanelContribution = __decorate([
|
|
29
|
-
Domain(ComponentContribution)
|
|
30
|
-
], KernelPanelContribution);
|
|
31
|
-
export { KernelPanelContribution };
|
|
32
|
-
//# sourceMappingURL=kernel.panel.contribution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.panel.contribution.js","sourceRoot":"","sources":["../../../src/browser/kernel-panel/kernel.panel.contribution.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAqB,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGnD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAIlC,iBAAiB,CAAC,QAA2B;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CACzC,EAAE,EACF;YACE,IAAI,EAAE,gGAAgG;YACtG,KAAK,EAAE,gGAAgG;SACxG,EACD,QAAQ,CAAC,UAAU,CACpB,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,EAAE;YAC9C,WAAW,EAAE,eAAe;YAC5B,SAAS;YACT,KAAK,EAAE,QAAQ,CAAC,6BAA6B,CAAC;YAC9C,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,CAAC;YACX,kBAAkB,EAAE,iBAAiB;SACtC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AApBoB;IADlB,SAAS,CAAC,WAAW,CAAC;8BACS,WAAW;4DAAC;AAFjC,uBAAuB;IADnC,MAAM,CAAC,qBAAqB,CAAC;GACjB,uBAAuB,CAsBnC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Autowired } from '@opensumi/di';
|
|
2
|
-
import { ComponentContribution, ComponentRegistry, Domain, localize } from '@opensumi/ide-core-browser';
|
|
3
|
-
import { IconService } from '@opensumi/ide-theme/lib/browser';
|
|
4
|
-
import { IconType } from '@opensumi/ide-theme/lib/common';
|
|
5
|
-
|
|
6
|
-
import { KernelPanel } from './kernel-panel-view';
|
|
7
|
-
import { KERNEL_PANEL_ID } from './kernel.panel.protocol';
|
|
8
|
-
|
|
9
|
-
@Domain(ComponentContribution)
|
|
10
|
-
export class KernelPanelContribution implements ComponentContribution {
|
|
11
|
-
@Autowired(IconService)
|
|
12
|
-
protected readonly iconService: IconService;
|
|
13
|
-
|
|
14
|
-
registerComponent(registry: ComponentRegistry) {
|
|
15
|
-
const iconClass = this.iconService.fromIcon(
|
|
16
|
-
'',
|
|
17
|
-
{
|
|
18
|
-
dark: 'https://mdn.alipayobjects.com/huamei_xt20ge/afts/img/A*ae86Sq9KTxcAAAAAAAAAAAAADiuUAQ/original',
|
|
19
|
-
light: 'https://mdn.alipayobjects.com/huamei_xt20ge/afts/img/A*fWPISIBPGfsAAAAAAAAAAAAADiuUAQ/original',
|
|
20
|
-
},
|
|
21
|
-
IconType.Background,
|
|
22
|
-
);
|
|
23
|
-
registry.register('@opensumi/ide-notebook', [], {
|
|
24
|
-
containerId: KERNEL_PANEL_ID,
|
|
25
|
-
iconClass,
|
|
26
|
-
title: localize('notebook.kernel.panel.title'),
|
|
27
|
-
component: KernelPanel,
|
|
28
|
-
priority: 0,
|
|
29
|
-
activateKeyBinding: 'ctrlcmd+shift+k',
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
}
|