@datalayer/jupyter-react 0.0.12 → 0.0.15
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/components/cell/Cell.js +15 -8
- package/lib/components/cell/Cell.js.map +1 -1
- package/lib/components/cell/CellAdapter.d.ts +2 -2
- package/lib/components/cell/CellAdapter.js +12 -15
- package/lib/components/cell/CellAdapter.js.map +1 -1
- package/lib/components/codemirror/CodeMirrorEditor.d.ts +2 -2
- package/lib/components/codemirror/CodeMirrorEditor.js +8 -8
- package/lib/components/codemirror/CodeMirrorEditor.js.map +1 -1
- package/lib/components/codemirror/CodeMirrorOutputToolbar.d.ts +12 -0
- package/lib/components/{outputs/OutputToolbar.js → codemirror/CodeMirrorOutputToolbar.js} +16 -14
- package/lib/components/codemirror/CodeMirrorOutputToolbar.js.map +1 -0
- package/lib/components/commands/Commands.js +2 -2
- package/lib/components/commands/Commands.js.map +1 -1
- package/lib/components/console/Console.js +2 -2
- package/lib/components/console/Console.js.map +1 -1
- package/lib/components/filebrowser/FileBrowser.js +2 -2
- package/lib/components/filebrowser/FileBrowser.js.map +1 -1
- package/lib/components/notebook/Notebook.d.ts +0 -2
- package/lib/components/notebook/Notebook.js +41 -52
- package/lib/components/notebook/Notebook.js.map +1 -1
- package/lib/components/notebook/NotebookAdapter.d.ts +3 -4
- package/lib/components/notebook/NotebookAdapter.js +13 -17
- package/lib/components/notebook/NotebookAdapter.js.map +1 -1
- package/lib/components/notebook/NotebookCommands.js +2 -2
- package/lib/components/notebook/NotebookCommands.js.map +1 -1
- package/lib/components/notebook/NotebookState.js +1 -3
- package/lib/components/notebook/NotebookState.js.map +1 -1
- package/lib/components/notebook/cell/sidebar/CellSidebarDefault.js +8 -7
- package/lib/components/notebook/cell/sidebar/CellSidebarDefault.js.map +1 -1
- package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.js +2 -2
- package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.js.map +1 -1
- package/lib/components/{outputs → output}/Output.css +0 -0
- package/lib/components/{outputs → output}/Output.d.ts +7 -5
- package/lib/components/output/Output.js +184 -0
- package/lib/components/output/Output.js.map +1 -0
- package/lib/components/output/OutputAdapter.d.ts +19 -0
- package/lib/components/{outputs → output}/OutputAdapter.js +38 -44
- package/lib/components/output/OutputAdapter.js.map +1 -0
- package/lib/components/output/OutputRenderer.d.ts +6 -0
- package/lib/components/output/OutputRenderer.js +88 -0
- package/lib/components/output/OutputRenderer.js.map +1 -0
- package/lib/components/{outputs → output}/OutputState.d.ts +0 -0
- package/lib/components/{outputs → output}/OutputState.js +10 -10
- package/lib/components/output/OutputState.js.map +1 -0
- package/lib/components/settings/Settings.js +2 -2
- package/lib/components/settings/Settings.js.map +1 -1
- package/lib/components/terminal/Terminal.js +8 -3
- package/lib/components/terminal/Terminal.js.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.js +5 -6
- package/lib/index.js.map +1 -1
- package/lib/jupyter/Jupyter.d.ts +2 -0
- package/lib/jupyter/Jupyter.js +3 -2
- package/lib/jupyter/Jupyter.js.map +1 -1
- package/lib/jupyter/JupyterContext.d.ts +8 -3
- package/lib/jupyter/JupyterContext.js +45 -28
- package/lib/jupyter/JupyterContext.js.map +1 -1
- package/lib/jupyter/JupyterHandlers.d.ts +2 -1
- package/lib/jupyter/JupyterHandlers.js +3 -4
- package/lib/jupyter/JupyterHandlers.js.map +1 -1
- package/lib/jupyter/lite/LiteServer.js +1 -1
- package/lib/jupyter/lite/LiteServer.js.map +1 -1
- package/lib/jupyter/lumino/Lumino.d.ts +3 -0
- package/lib/jupyter/lumino/{LuminoAttached.js → Lumino.js} +14 -6
- package/lib/jupyter/lumino/Lumino.js.map +1 -0
- package/lib/jupyter/services/kernel/Kernel.d.ts +5 -6
- package/lib/jupyter/services/kernel/Kernel.js +12 -35
- package/lib/jupyter/services/kernel/Kernel.js.map +1 -1
- package/lib/{utils → jupyter/utils}/Ids.d.ts +0 -0
- package/lib/{utils → jupyter/utils}/Ids.js +0 -0
- package/lib/jupyter/utils/Ids.js.map +1 -0
- package/lib/state/State.d.ts +5 -5
- package/lib/state/State.js +3 -3
- package/lib/state/State.js.map +1 -1
- package/lib/state/Store.js +1 -4
- package/lib/state/Store.js.map +1 -1
- package/package.json +5 -5
- package/style/index.css +27 -1
- package/lib/JupyterExample.d.ts +0 -1
- package/lib/JupyterExample.js +0 -56
- package/lib/JupyterExample.js.map +0 -1
- package/lib/JupyterLiteExample.d.ts +0 -1
- package/lib/JupyterLiteExample.js +0 -10
- package/lib/JupyterLiteExample.js.map +0 -1
- package/lib/components/outputs/Output.js +0 -126
- package/lib/components/outputs/Output.js.map +0 -1
- package/lib/components/outputs/OutputAdapter.d.ts +0 -19
- package/lib/components/outputs/OutputAdapter.js.map +0 -1
- package/lib/components/outputs/OutputState.js.map +0 -1
- package/lib/components/outputs/OutputToolbar.d.ts +0 -12
- package/lib/components/outputs/OutputToolbar.js.map +0 -1
- package/lib/jupyter/lumino/LuminoAttached.d.ts +0 -3
- package/lib/jupyter/lumino/LuminoAttached.js.map +0 -1
- package/lib/utils/Ids.js.map +0 -1
|
@@ -1,81 +1,75 @@
|
|
|
1
|
-
import { OutputArea } from '@jupyterlab/outputarea';
|
|
1
|
+
import { OutputArea, OutputAreaModel } from '@jupyterlab/outputarea';
|
|
2
2
|
import { RenderMimeRegistry, standardRendererFactories } from '@jupyterlab/rendermime';
|
|
3
3
|
import { rendererFactory as jsonRendererFactory } from '@jupyterlab/json-extension';
|
|
4
4
|
import { rendererFactory as javascriptRendererFactory } from '@jupyterlab/javascript-extension';
|
|
5
5
|
import { requireLoader } from "@jupyter-widgets/html-manager";
|
|
6
6
|
import { WIDGET_MIMETYPE, WidgetRenderer } from "@jupyter-widgets/html-manager/lib/output_renderers";
|
|
7
|
-
import { IPyWidgetsClassicManager } from "
|
|
7
|
+
import { IPyWidgetsClassicManager } from "../../jupyter/ipywidgets/IPyWidgetsClassicManager";
|
|
8
8
|
// import { activateWidgetExtension } from "./../../jupyter/ipywidgets/IPyWidgetsJupyterLabPlugin";
|
|
9
9
|
// import { activatePlotlyWidgetExtension } from "./../../jupyter/ipywidgets/plotly/JupyterlabPlugin";
|
|
10
10
|
export class OutputAdapter {
|
|
11
|
-
constructor(kernel,
|
|
12
|
-
this.
|
|
13
|
-
this._msgLoading = options.msgLoading || 'Loading...';
|
|
14
|
-
this._iPyWidgetsClassicManager = new IPyWidgetsClassicManager({ loader: requireLoader });
|
|
11
|
+
constructor(kernel, outputs) {
|
|
12
|
+
this._kernel = kernel;
|
|
15
13
|
this._renderers = standardRendererFactories.filter(factory => factory.mimeTypes[0] !== 'text/javascript');
|
|
16
14
|
this._renderers.push(jsonRendererFactory);
|
|
17
15
|
this._renderers.push(javascriptRendererFactory);
|
|
18
16
|
this._rendermime = new RenderMimeRegistry({
|
|
19
17
|
initialFactories: this._renderers,
|
|
20
18
|
});
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
rendermime: this._rendermime,
|
|
24
|
-
});
|
|
25
|
-
this._rendermime.addFactory({
|
|
19
|
+
this._iPyWidgetsClassicManager = new IPyWidgetsClassicManager({ loader: requireLoader });
|
|
20
|
+
const iPyWidgetsRendererFactory = {
|
|
26
21
|
safe: false,
|
|
27
22
|
mimeTypes: [WIDGET_MIMETYPE],
|
|
28
23
|
createRenderer: (options) => new WidgetRenderer(options, this._iPyWidgetsClassicManager),
|
|
29
|
-
}
|
|
24
|
+
};
|
|
25
|
+
this._rendermime.addFactory(iPyWidgetsRendererFactory, 0);
|
|
30
26
|
// const widgetRegistry = activateWidgetExtension(this._rendermime, null, null, null);
|
|
31
27
|
// activatePlotlyWidgetExtension(widgetRegistry);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
if (!options.noAutoInit) {
|
|
38
|
-
this.renderCell(model);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
get outputArea() {
|
|
42
|
-
return this._outputArea;
|
|
43
|
-
}
|
|
44
|
-
renderCell(model) {
|
|
28
|
+
const outputAreaModel = new OutputAreaModel({
|
|
29
|
+
trusted: true,
|
|
30
|
+
values: outputs,
|
|
31
|
+
});
|
|
45
32
|
this._outputArea = new OutputArea({
|
|
46
|
-
model:
|
|
33
|
+
model: outputAreaModel,
|
|
47
34
|
rendermime: this._rendermime,
|
|
48
35
|
});
|
|
36
|
+
this.initKernel();
|
|
49
37
|
}
|
|
50
38
|
execute(code) {
|
|
51
|
-
if (this.
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
|
|
39
|
+
if (this._kernel) {
|
|
40
|
+
this.clearOutput();
|
|
41
|
+
this._kernel.getJupyterKernel().then((kernelConnection) => {
|
|
42
|
+
this._outputArea.future = kernelConnection.requestExecute({ code });
|
|
43
|
+
});
|
|
55
44
|
}
|
|
56
45
|
}
|
|
57
46
|
interrupt() {
|
|
58
|
-
this.
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
if (this._kernel) {
|
|
48
|
+
this._kernel.getJupyterKernel().then((kernelConnection) => {
|
|
49
|
+
kernelConnection.interrupt();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
61
52
|
}
|
|
62
53
|
clearOutput() {
|
|
63
54
|
this._outputArea.model.clear();
|
|
64
55
|
}
|
|
65
|
-
|
|
66
|
-
this.
|
|
67
|
-
this._outputArea.future = kernelConnection.requestExecute({ code });
|
|
68
|
-
});
|
|
69
|
-
this._outputArea.model.add({
|
|
70
|
-
output_type: 'stream',
|
|
71
|
-
name: 'loading',
|
|
72
|
-
text: this._msgLoading,
|
|
73
|
-
});
|
|
74
|
-
this._outputArea.model.clear(true);
|
|
56
|
+
get kernel() {
|
|
57
|
+
return this._kernel;
|
|
75
58
|
}
|
|
76
|
-
|
|
59
|
+
set kernel(kernel) {
|
|
60
|
+
this._kernel = kernel;
|
|
61
|
+
this.initKernel();
|
|
62
|
+
}
|
|
63
|
+
get outputArea() {
|
|
77
64
|
return this._outputArea;
|
|
78
65
|
}
|
|
66
|
+
initKernel() {
|
|
67
|
+
if (this._kernel) {
|
|
68
|
+
this._kernel.getJupyterKernel().then((kernelConnection) => {
|
|
69
|
+
this._iPyWidgetsClassicManager.registerWithKernel(kernelConnection);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
79
73
|
}
|
|
80
74
|
export default OutputAdapter;
|
|
81
75
|
//# sourceMappingURL=OutputAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputAdapter.js","sourceRoot":"","sources":["../../../src/components/output/OutputAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
{
|
|
4
|
+
"execution_count": 2,
|
|
5
|
+
"output_type": "execute_result",
|
|
6
|
+
"data": {
|
|
7
|
+
"text/plain": "IntSlider(value=7, max=10)",
|
|
8
|
+
"application/vnd.jupyter.widget-view+json": {
|
|
9
|
+
"version_major": 2,
|
|
10
|
+
"version_minor": 0,
|
|
11
|
+
"model_id": "cf2eac02dda44b08befe1657e1de73a2"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"metadata": {}
|
|
15
|
+
}
|
|
16
|
+
{
|
|
17
|
+
"name": "stdout",
|
|
18
|
+
"text": "1\n1\n",
|
|
19
|
+
"output_type": "stream"
|
|
20
|
+
}
|
|
21
|
+
{
|
|
22
|
+
"traceback": [
|
|
23
|
+
"\u001b[0;36m Input \u001b[0;32mIn [4]\u001b[0;36m\u001b[0m\n\u001b[0;31m x=1sdfsq\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid decimal literal\n"
|
|
24
|
+
],
|
|
25
|
+
"ename": "SyntaxError",
|
|
26
|
+
"evalue": "invalid decimal literal (2376046737.py, line 1)",
|
|
27
|
+
"output_type": "error"
|
|
28
|
+
}
|
|
29
|
+
*/
|
|
30
|
+
export const OutputRenderer = (props) => {
|
|
31
|
+
const { output } = props;
|
|
32
|
+
let plain;
|
|
33
|
+
let html;
|
|
34
|
+
switch (output.output_type) {
|
|
35
|
+
case "error": {
|
|
36
|
+
plain = output.traceback.join('\n');
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case "stream": {
|
|
40
|
+
const t = output.text;
|
|
41
|
+
if (typeof t === "string") {
|
|
42
|
+
plain = t;
|
|
43
|
+
}
|
|
44
|
+
else if (typeof t === "boolean") {
|
|
45
|
+
plain = t ? "true" : "false";
|
|
46
|
+
}
|
|
47
|
+
else if (Array.isArray(t)) {
|
|
48
|
+
plain = t.join('\n');
|
|
49
|
+
}
|
|
50
|
+
else
|
|
51
|
+
plain = t === null || t === void 0 ? void 0 : t.toString();
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case "execute_result": {
|
|
55
|
+
const data = output.data;
|
|
56
|
+
if (data) {
|
|
57
|
+
const text_plain = data["text/plain"];
|
|
58
|
+
if (text_plain) {
|
|
59
|
+
if (typeof text_plain === "string") {
|
|
60
|
+
plain = text_plain;
|
|
61
|
+
}
|
|
62
|
+
else if (Array.isArray(text_plain)) {
|
|
63
|
+
plain = text_plain.join('\n');
|
|
64
|
+
}
|
|
65
|
+
else
|
|
66
|
+
plain = text_plain.toString();
|
|
67
|
+
}
|
|
68
|
+
const text_html = data["text/html"];
|
|
69
|
+
if (text_html) {
|
|
70
|
+
if (typeof text_html === "string") {
|
|
71
|
+
html = text_html;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
html = text_html.join('\n');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// console.log('---', output, plain, html);
|
|
82
|
+
return (_jsxs(_Fragment, { children: [plain &&
|
|
83
|
+
_jsx("pre", Object.assign({ style: { color: "black" } }, { children: plain }), void 0),
|
|
84
|
+
html &&
|
|
85
|
+
_jsx("div", Object.assign({ style: { color: "black" } }, { children: _jsx("div", { dangerouslySetInnerHTML: { __html: html } }, void 0) }), void 0)] }, void 0));
|
|
86
|
+
};
|
|
87
|
+
export default OutputRenderer;
|
|
88
|
+
//# sourceMappingURL=OutputRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputRenderer.js","sourceRoot":"","sources":["../../../src/components/output/OutputRenderer.tsx"],"names":[],"mappings":";AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BE;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,QAAQ,MAAM,CAAC,WAAW,EAAE;QAC1B,KAAK,OAAO,CAAC,CAAC;YACZ,KAAK,GAAI,MAAM,CAAC,SAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM;SACP;QACD,KAAK,QAAQ,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;gBACzB,KAAK,GAAG,CAAC,CAAC;aACX;iBACI,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE;gBAC/B,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;aAC9B;iBACI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,KAAK,GAAI,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpC;;gBACI,KAAK,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,EAAE,CAAC;YAC3B,MAAM;SACP;QACD,KAAK,gBAAgB,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAW,CAAC;YAChC,IAAI,IAAI,EAAE;gBACR,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtC,IAAI,UAAU,EAAE;oBACd,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;wBAClC,KAAK,GAAG,UAAU,CAAC;qBACpB;yBACI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;wBAClC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC/B;;wBACI,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACpC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpC,IAAI,SAAS,EAAE;oBACb,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBACjC,IAAI,GAAG,SAAS,CAAC;qBAClB;yBAAM;wBACL,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC7B;iBACF;aACF;YACD,MAAM;SACP;KACF;IACH,4CAA4C;IAC1C,OAAO,CACL,8BACI,KAAK;gBACL,4BAAK,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,gBACzB,KAAK,YACF;YAEN,IAAI;gBACJ,4BAAK,KAAK,EAAE,EAAC,KAAK,EAAE,OAAO,EAAC,gBAC1B,cAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAI,YAC9C,YAEP,CACJ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,cAAc,CAAC"}
|
|
File without changes
|
|
@@ -7,36 +7,36 @@ export const outputInitialState = {
|
|
|
7
7
|
/* Selectors */
|
|
8
8
|
export const selectJupyterSource = (id) => useSelector((state) => {
|
|
9
9
|
var _a;
|
|
10
|
-
if (state.
|
|
11
|
-
return (_a = state.
|
|
10
|
+
if (state.output) {
|
|
11
|
+
return (_a = state.output.outputs.get(id)) === null || _a === void 0 ? void 0 : _a.source;
|
|
12
12
|
}
|
|
13
13
|
return undefined;
|
|
14
14
|
});
|
|
15
15
|
export const selectJupyterSetSource = (id) => useSelector((state) => {
|
|
16
16
|
var _a;
|
|
17
|
-
if (state.
|
|
18
|
-
return (_a = state.
|
|
17
|
+
if (state.output) {
|
|
18
|
+
return (_a = state.output.outputs.get(id)) === null || _a === void 0 ? void 0 : _a.setSource;
|
|
19
19
|
}
|
|
20
20
|
return undefined;
|
|
21
21
|
});
|
|
22
22
|
export const selectDataset = (id) => useSelector((state) => {
|
|
23
23
|
var _a;
|
|
24
|
-
if (state.
|
|
25
|
-
return (_a = state.
|
|
24
|
+
if (state.output) {
|
|
25
|
+
return (_a = state.output.outputs.get(id)) === null || _a === void 0 ? void 0 : _a.dataset;
|
|
26
26
|
}
|
|
27
27
|
return undefined;
|
|
28
28
|
});
|
|
29
29
|
export const selectExecute = (id) => useSelector((state) => {
|
|
30
30
|
var _a;
|
|
31
|
-
if (state.
|
|
32
|
-
return (_a = state.
|
|
31
|
+
if (state.output) {
|
|
32
|
+
return (_a = state.output.outputs.get(id)) === null || _a === void 0 ? void 0 : _a.execute;
|
|
33
33
|
}
|
|
34
34
|
return undefined;
|
|
35
35
|
});
|
|
36
36
|
export const selectGrade = (id) => useSelector((state) => {
|
|
37
37
|
var _a;
|
|
38
|
-
if (state.
|
|
39
|
-
return (_a = state.
|
|
38
|
+
if (state.output) {
|
|
39
|
+
return (_a = state.output.outputs.get(id)) === null || _a === void 0 ? void 0 : _a.grade;
|
|
40
40
|
}
|
|
41
41
|
return undefined;
|
|
42
42
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputState.js","sourceRoot":"","sources":["../../../src/components/output/OutputState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
|
|
2
2
|
import SettingsAdapter from './SettingsAdapter';
|
|
3
|
-
import
|
|
3
|
+
import Lumino from '../../jupyter/lumino/Lumino';
|
|
4
4
|
export const Settings = () => {
|
|
5
5
|
const settingsAdapter = new SettingsAdapter();
|
|
6
|
-
return _jsx(_Fragment, { children: _jsx(
|
|
6
|
+
return _jsx(_Fragment, { children: _jsx(Lumino, { children: settingsAdapter.panel }, void 0) }, void 0);
|
|
7
7
|
};
|
|
8
8
|
export default Settings;
|
|
9
9
|
//# sourceMappingURL=Settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../../src/components/settings/Settings.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../../src/components/settings/Settings.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,OAAO,4BACL,KAAC,MAAM,cAAE,eAAe,CAAC,KAAK,WAAU,WACvC,CAAA;AACL,CAAC,CAAA;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -2,15 +2,20 @@ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useMemo } from 'react';
|
|
3
3
|
import { useDispatch } from "react-redux";
|
|
4
4
|
import TerminalAdapter from './TerminalAdapter';
|
|
5
|
-
import { terminalActions } from './TerminalState';
|
|
6
|
-
import
|
|
5
|
+
import { terminalActions, terminalReducer } from './TerminalState';
|
|
6
|
+
import { useJupyter } from './../../jupyter/JupyterContext';
|
|
7
|
+
import Lumino from '../../jupyter/lumino/Lumino';
|
|
7
8
|
export const Terminal = () => {
|
|
9
|
+
const { injectableStore } = useJupyter();
|
|
8
10
|
const dispatch = useDispatch();
|
|
9
11
|
const adapter = useMemo(() => new TerminalAdapter(), []);
|
|
12
|
+
useMemo(() => {
|
|
13
|
+
injectableStore.inject('terminal', terminalReducer);
|
|
14
|
+
}, []);
|
|
10
15
|
useEffect(() => {
|
|
11
16
|
dispatch(terminalActions.update({ adapter }));
|
|
12
17
|
}, []);
|
|
13
|
-
return _jsx(
|
|
18
|
+
return _jsx(Lumino, { children: adapter.panel }, void 0);
|
|
14
19
|
};
|
|
15
20
|
export default Terminal;
|
|
16
21
|
//# sourceMappingURL=Terminal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../src/components/terminal/Terminal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../src/components/terminal/Terminal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,EAAE;QACV,eAAuB,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,KAAC,MAAM,cAAE,OAAO,CAAC,KAAK,WAAU,CAAA;AACzC,CAAC,CAAA;AAED,eAAe,QAAQ,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export * from './jupyter/Jupyter';
|
|
2
2
|
export * from './jupyter/JupyterContext';
|
|
3
3
|
export * from './jupyter/JupyterConfig';
|
|
4
|
-
export * from './jupyter/lumino/
|
|
4
|
+
export * from './jupyter/lumino/Lumino';
|
|
5
5
|
export * from './jupyter/lumino/LuminoDetached';
|
|
6
6
|
export * from './jupyter/lumino/LuminoNotebook';
|
|
7
7
|
export * from './jupyter/lumino/LuminoObservable';
|
|
8
8
|
export * from './jupyter/lumino/LuminoReactPortal';
|
|
9
9
|
export * from './jupyter/lumino/LuminoRedux';
|
|
10
10
|
export * from './jupyter/lite/LiteServer';
|
|
11
|
+
export * from './jupyter/utils/Ids';
|
|
11
12
|
export * from './jupyter/services/Services';
|
|
12
13
|
export * from './jupyter/services/kernel/Kernel';
|
|
13
14
|
export * from './jupyter/services/kernel/KernelModel';
|
|
@@ -33,11 +34,10 @@ export * from './components/console/ConsoleState';
|
|
|
33
34
|
export * from './components/dialog/Dialog';
|
|
34
35
|
export * from './components/filebrowser/FileBrowser';
|
|
35
36
|
export * from './components/filebrowser/FileBrowserState';
|
|
36
|
-
export * from './components/
|
|
37
|
-
export * from './components/
|
|
38
|
-
export * from './components/
|
|
37
|
+
export * from './components/output/Output';
|
|
38
|
+
export * from './components/output/OutputAdapter';
|
|
39
|
+
export * from './components/output/OutputState';
|
|
39
40
|
export * from './components/settings/Settings';
|
|
40
41
|
export * from './components/settings/SettingsState';
|
|
41
42
|
export * from './components/terminal/Terminal';
|
|
42
43
|
export * from './components/terminal/TerminalState';
|
|
43
|
-
export * from './utils/Ids';
|
package/lib/index.js
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
export * from './jupyter/Jupyter';
|
|
3
3
|
export * from './jupyter/JupyterContext';
|
|
4
4
|
export * from './jupyter/JupyterConfig';
|
|
5
|
-
export * from './jupyter/lumino/
|
|
5
|
+
export * from './jupyter/lumino/Lumino';
|
|
6
6
|
export * from './jupyter/lumino/LuminoDetached';
|
|
7
7
|
export * from './jupyter/lumino/LuminoNotebook';
|
|
8
8
|
export * from './jupyter/lumino/LuminoObservable';
|
|
9
9
|
export * from './jupyter/lumino/LuminoReactPortal';
|
|
10
10
|
export * from './jupyter/lumino/LuminoRedux';
|
|
11
11
|
export * from './jupyter/lite/LiteServer';
|
|
12
|
+
export * from './jupyter/utils/Ids';
|
|
12
13
|
// Services.
|
|
13
14
|
export * from './jupyter/services/Services';
|
|
14
15
|
export * from './jupyter/services/kernel/Kernel';
|
|
@@ -44,15 +45,13 @@ export * from './components/dialog/Dialog';
|
|
|
44
45
|
export * from './components/filebrowser/FileBrowser';
|
|
45
46
|
export * from './components/filebrowser/FileBrowserState';
|
|
46
47
|
// Outputs.
|
|
47
|
-
export * from './components/
|
|
48
|
-
export * from './components/
|
|
49
|
-
export * from './components/
|
|
48
|
+
export * from './components/output/Output';
|
|
49
|
+
export * from './components/output/OutputAdapter';
|
|
50
|
+
export * from './components/output/OutputState';
|
|
50
51
|
// Settings.
|
|
51
52
|
export * from './components/settings/Settings';
|
|
52
53
|
export * from './components/settings/SettingsState';
|
|
53
54
|
// Terminal.
|
|
54
55
|
export * from './components/terminal/Terminal';
|
|
55
56
|
export * from './components/terminal/TerminalState';
|
|
56
|
-
// Utils.
|
|
57
|
-
export * from './utils/Ids';
|
|
58
57
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,YAAY;AACZ,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc;AACd,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,QAAQ;AACR,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,qBAAqB;AACrB,cAAc,0CAA0C,CAAC;AACzD,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wDAAwD,CAAC;AACvE,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mEAAmE,CAAC;AAClF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,uDAAuD,CAAC;AACtE,cAAc,mDAAmD,CAAC;AAClE,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,WAAW;AACX,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,UAAU;AACV,cAAc,4BAA4B,CAAC;AAC3C,eAAe;AACf,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,WAAW;AACX,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC"}
|
package/lib/jupyter/Jupyter.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { Store } from 'redux';
|
|
|
7
7
|
export declare type JupyterProps = {
|
|
8
8
|
children: React.ReactNode;
|
|
9
9
|
lite: boolean;
|
|
10
|
+
startDefaultKernel: boolean;
|
|
10
11
|
injectableStore?: Store | any;
|
|
11
12
|
collaborative?: boolean;
|
|
12
13
|
jupyterServerHttpUrl?: string;
|
|
@@ -24,6 +25,7 @@ export declare const Jupyter: {
|
|
|
24
25
|
(props: JupyterProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
25
26
|
defaultProps: {
|
|
26
27
|
lite: boolean;
|
|
28
|
+
startDefaultKernel: boolean;
|
|
27
29
|
collaborative: boolean;
|
|
28
30
|
terminals: boolean;
|
|
29
31
|
};
|
package/lib/jupyter/Jupyter.js
CHANGED
|
@@ -17,12 +17,13 @@ const ErrorFallback = ({ error, resetErrorBoundary }) => {
|
|
|
17
17
|
* are available.
|
|
18
18
|
*/
|
|
19
19
|
export const Jupyter = (props) => {
|
|
20
|
-
const { lite } = props;
|
|
20
|
+
const { lite, startDefaultKernel } = props;
|
|
21
21
|
loadJupyterConfig(props);
|
|
22
|
-
return (_jsx(ErrorBoundary, Object.assign({ FallbackComponent: ErrorFallback }, { children: _jsx(ThemeProvider, { children: _jsx(BaseStyles, { children: _jsx(JupyterContextProvider, Object.assign({ lite: lite, baseUrl: getJupyterServerHttpUrl(), wsUrl: getJupyterServerWsUrl(), injectableStore: props.injectableStore || injectableStore, variant: "default" }, { children: props.children }), void 0) }, void 0) }, void 0) }), void 0));
|
|
22
|
+
return (_jsx(ErrorBoundary, Object.assign({ FallbackComponent: ErrorFallback }, { children: _jsx(ThemeProvider, Object.assign({ colorMode: "day" }, { children: _jsx(BaseStyles, { children: _jsx(JupyterContextProvider, Object.assign({ lite: lite, startDefaultKernel: startDefaultKernel, baseUrl: getJupyterServerHttpUrl(), wsUrl: getJupyterServerWsUrl(), injectableStore: props.injectableStore || injectableStore, variant: "default" }, { children: props.children }), void 0) }, void 0) }), void 0) }), void 0));
|
|
23
23
|
};
|
|
24
24
|
Jupyter.defaultProps = {
|
|
25
25
|
lite: false,
|
|
26
|
+
startDefaultKernel: true,
|
|
26
27
|
collaborative: false,
|
|
27
28
|
terminals: false,
|
|
28
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Jupyter.js","sourceRoot":"","sources":["../../src/jupyter/Jupyter.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"Jupyter.js","sourceRoot":"","sources":["../../src/jupyter/Jupyter.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,eAAe,MAAM,gBAAgB,CAAC;AAmB7C;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,EAAC,KAAK,EAAE,kBAAkB,EAAM,EAAE,EAAE;IACzD,OAAO,CACL,6BAAK,IAAI,EAAC,OAAO,iBACf,8DAAkC;YAClC,wBAAM,KAAK,CAAC,OAAO,WAAO,aAItB,CACP,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC7C,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;IAC3C,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,CACL,KAAC,aAAa,kBACZ,iBAAiB,EAAE,aAAa,gBAGhC,KAAC,aAAa,kBAAC,SAAS,EAAC,KAAK,gBAC5B,KAAC,UAAU,cACT,KAAC,sBAAsB,kBACrB,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,uBAAuB,EAAE,EAClC,KAAK,EAAE,qBAAqB,EAAE,EAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,eAAe,EACzD,OAAO,EAAC,SAAS,gBAEf,KAAK,CAAC,QAAQ,YACO,WACd,YACC,YACF,CACjB,CAAA;AACH,CAAC,CAAA;AAED,OAAO,CAAC,YAAY,GAAG;IACrB,IAAI,EAAE,KAAK;IACX,kBAAkB,EAAE,IAAI;IACxB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,KAAK;CACjB,CAAA;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ServiceManager, ServerConnection } from '@jupyterlab/services';
|
|
2
|
+
import { ServiceManager, ServerConnection, KernelManager } from '@jupyterlab/services';
|
|
3
|
+
import Kernel from './services/kernel/Kernel';
|
|
3
4
|
/**
|
|
4
5
|
* The type for the Jupyter context.
|
|
5
6
|
*/
|
|
6
7
|
export declare type JupyterContextType = {
|
|
7
8
|
lite: boolean;
|
|
8
|
-
serverSettings
|
|
9
|
+
serverSettings: ServerConnection.ISettings;
|
|
9
10
|
serviceManager?: ServiceManager;
|
|
11
|
+
kernelManager?: KernelManager;
|
|
12
|
+
kernel?: Kernel;
|
|
13
|
+
startDefaultKernel: boolean;
|
|
10
14
|
variant: string;
|
|
11
15
|
setVariant: (value: string) => void;
|
|
12
16
|
baseUrl: string;
|
|
@@ -26,13 +30,14 @@ export declare const JupyterContextConsumer: React.Consumer<JupyterContextType |
|
|
|
26
30
|
* Utiliy method to ensure the Jupyter context is authenticated
|
|
27
31
|
* with the Jupyter server.
|
|
28
32
|
*/
|
|
29
|
-
export declare const ensureJupyterAuth: () => Promise<boolean>;
|
|
33
|
+
export declare const ensureJupyterAuth: (serverSettings: ServerConnection.ISettings) => Promise<boolean>;
|
|
30
34
|
/**
|
|
31
35
|
* The Jupyter context provider.
|
|
32
36
|
*/
|
|
33
37
|
export declare const JupyterContextProvider: React.FC<{
|
|
34
38
|
children: React.ReactNode;
|
|
35
39
|
lite: boolean;
|
|
40
|
+
startDefaultKernel: boolean;
|
|
36
41
|
variant: string;
|
|
37
42
|
baseUrl: string;
|
|
38
43
|
wsUrl: string;
|
|
@@ -5,6 +5,7 @@ import { ServiceManager, ServerConnection } from '@jupyterlab/services';
|
|
|
5
5
|
import { getJupyterServerHttpUrl } from './JupyterConfig';
|
|
6
6
|
import { requestAPI } from './JupyterHandlers';
|
|
7
7
|
import { startLiteServer } from './../jupyter/lite/LiteServer';
|
|
8
|
+
import Kernel from './services/kernel/Kernel';
|
|
8
9
|
/**
|
|
9
10
|
* The instance for the Jupyter context.
|
|
10
11
|
*/
|
|
@@ -27,12 +28,8 @@ const JupyterProvider = JupyterContext.Provider;
|
|
|
27
28
|
* Utiliy method to ensure the Jupyter context is authenticated
|
|
28
29
|
* with the Jupyter server.
|
|
29
30
|
*/
|
|
30
|
-
export const ensureJupyterAuth = () => {
|
|
31
|
-
return requestAPI('api', ''
|
|
32
|
-
credentials: 'include',
|
|
33
|
-
mode: 'cors',
|
|
34
|
-
})
|
|
35
|
-
.then(data => {
|
|
31
|
+
export const ensureJupyterAuth = (serverSettings) => {
|
|
32
|
+
return requestAPI(serverSettings, 'api', '').then(data => {
|
|
36
33
|
return true;
|
|
37
34
|
})
|
|
38
35
|
.catch(reason => {
|
|
@@ -40,47 +37,64 @@ export const ensureJupyterAuth = () => {
|
|
|
40
37
|
return false;
|
|
41
38
|
});
|
|
42
39
|
};
|
|
40
|
+
/*
|
|
43
41
|
const headers = new Headers({
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
"Cache-Control": "no-cache, no-store, must-revalidate",
|
|
43
|
+
"Pragma": "no-cache",
|
|
44
|
+
"Expires": "0",
|
|
47
45
|
});
|
|
46
|
+
*/
|
|
48
47
|
/**
|
|
49
48
|
* The Jupyter context provider.
|
|
50
49
|
*/
|
|
51
|
-
export const JupyterContextProvider = ({ children, lite, variant, baseUrl, wsUrl, injectableStore }) => {
|
|
50
|
+
export const JupyterContextProvider = ({ children, lite, startDefaultKernel, variant, baseUrl, wsUrl, injectableStore }) => {
|
|
52
51
|
const [_, setVariant] = useState('default');
|
|
53
|
-
const [serverSettings
|
|
52
|
+
const [serverSettings] = useState(ServerConnection.makeSettings({
|
|
53
|
+
baseUrl,
|
|
54
|
+
wsUrl,
|
|
55
|
+
appendToken: true,
|
|
56
|
+
init: {
|
|
57
|
+
credentials: "include",
|
|
58
|
+
mode: 'cors',
|
|
59
|
+
cache: 'no-cache',
|
|
60
|
+
// headers,
|
|
61
|
+
}
|
|
62
|
+
}));
|
|
54
63
|
const [serviceManager, setServiceManager] = useState();
|
|
64
|
+
const [kernelManager, setKernelManager] = useState();
|
|
65
|
+
const [kernel, setKernel] = useState();
|
|
55
66
|
useEffect(() => {
|
|
56
67
|
if (lite) {
|
|
57
68
|
startLiteServer().then((serviceManager) => {
|
|
58
69
|
setServiceManager(serviceManager);
|
|
70
|
+
setKernelManager(serviceManager.sessions._kernelManager);
|
|
59
71
|
});
|
|
60
72
|
}
|
|
61
73
|
else {
|
|
62
|
-
ensureJupyterAuth().then(isAuth => {
|
|
63
|
-
if (isAuth) {
|
|
64
|
-
const serverSettings = ServerConnection.makeSettings({
|
|
65
|
-
baseUrl,
|
|
66
|
-
wsUrl,
|
|
67
|
-
appendToken: true,
|
|
68
|
-
init: {
|
|
69
|
-
credentials: "include",
|
|
70
|
-
mode: 'cors',
|
|
71
|
-
headers,
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
setServerSettings(serverSettings);
|
|
75
|
-
const serviceManager = new ServiceManager({ serverSettings });
|
|
76
|
-
setServiceManager(serviceManager);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
74
|
+
ensureJupyterAuth(serverSettings).then(isAuth => {
|
|
75
|
+
if (!isAuth) {
|
|
79
76
|
const loginUrl = getJupyterServerHttpUrl() + '/login?next=' + window.location;
|
|
80
77
|
console.warn('Redirecting to jupyter login url', loginUrl);
|
|
81
78
|
window.location.replace(loginUrl);
|
|
82
79
|
}
|
|
83
80
|
});
|
|
81
|
+
const serviceManager = new ServiceManager({ serverSettings });
|
|
82
|
+
setServiceManager(serviceManager);
|
|
83
|
+
const kernelManager = serviceManager.sessions._kernelManager;
|
|
84
|
+
setKernelManager(kernelManager);
|
|
85
|
+
kernelManager.ready.then(() => {
|
|
86
|
+
if (startDefaultKernel) {
|
|
87
|
+
// console.log('Kernel Manager is ready.');
|
|
88
|
+
const kernel = new Kernel({ kernelManager });
|
|
89
|
+
kernel.getJupyterKernel().then(k => {
|
|
90
|
+
console.log(`Kernel started with session id:client_id ${k.id}:${k.clientId}`);
|
|
91
|
+
k.info.then(info => {
|
|
92
|
+
// console.log('Kernel information', info);
|
|
93
|
+
});
|
|
94
|
+
setKernel(kernel);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
84
98
|
}
|
|
85
99
|
setVariant(variant);
|
|
86
100
|
}, [lite, variant]);
|
|
@@ -88,6 +102,9 @@ export const JupyterContextProvider = ({ children, lite, variant, baseUrl, wsUrl
|
|
|
88
102
|
lite,
|
|
89
103
|
serverSettings,
|
|
90
104
|
serviceManager,
|
|
105
|
+
kernelManager,
|
|
106
|
+
kernel,
|
|
107
|
+
startDefaultKernel,
|
|
91
108
|
variant,
|
|
92
109
|
setVariant,
|
|
93
110
|
baseUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupyterContext.js","sourceRoot":"","sources":["../../src/jupyter/JupyterContext.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"JupyterContext.js","sourceRoot":"","sources":["../../src/jupyter/JupyterContext.tsx"],"names":[],"mappings":"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"}
|