@datalayer/jupyter-react 0.18.11 → 0.18.12
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/codemirror/CodeMirrorDatalayerEditor.js +2 -2
- package/lib/components/codemirror/CodeMirrorDatalayerEditor.js.map +1 -1
- package/lib/components/index.d.ts +0 -1
- package/lib/components/index.js +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/kernel/KernelDetective.d.ts +6 -0
- package/lib/components/kernel/KernelDetective.js +42 -0
- package/lib/components/kernel/KernelDetective.js.map +1 -0
- package/lib/components/kernel/Kernelndicator.js +3 -3
- package/lib/components/kernel/Kernelndicator.js.map +1 -1
- package/lib/components/kernel/index.d.ts +1 -0
- package/lib/components/kernel/index.js +1 -0
- package/lib/components/kernel/index.js.map +1 -1
- package/lib/components/notebook/Notebook.d.ts +6 -4
- package/lib/components/notebook/Notebook.js +5 -2
- package/lib/components/notebook/Notebook.js.map +1 -1
- package/lib/components/notebook/NotebookAdapter.d.ts +4 -3
- package/lib/components/notebook/NotebookAdapter.js +98 -93
- package/lib/components/notebook/NotebookAdapter.js.map +1 -1
- package/lib/components/output/Output.d.ts +1 -2
- package/lib/components/output/Output.js +12 -5
- package/lib/components/output/Output.js.map +1 -1
- package/lib/examples/Notebook.js +1 -2
- package/lib/examples/Notebook.js.map +1 -1
- package/lib/examples/NotebookMutationsKernel.js +8 -8
- package/lib/examples/NotebookMutationsKernel.js.map +1 -1
- package/lib/examples/NotebookMutationsServiceManager.js +19 -13
- package/lib/examples/NotebookMutationsServiceManager.js.map +1 -1
- package/lib/examples/NotebookNbformat.js +1 -1
- package/lib/examples/NotebookNbformat.js.map +1 -1
- package/lib/examples/NotebookOnSessionConnection.js +32 -0
- package/lib/examples/NotebookOnSessionConnection.js.map +1 -0
- package/lib/examples/PyGWalker.d.ts +1 -0
- package/lib/examples/PyGWalker.js +19 -0
- package/lib/examples/PyGWalker.js.map +1 -0
- package/lib/examples/notebooks/NotebookExample1.ipynb.json +38 -0
- package/lib/examples/notebooks/PyGWalker.ipynb.json +55 -0
- package/lib/jupyter/ipywidgets/lab/manager.js.map +1 -1
- package/lib/jupyter/ipywidgets/libembed-amd.js +13 -8
- package/lib/jupyter/ipywidgets/libembed-amd.js.map +1 -1
- package/lib/jupyter/ipywidgets/semvercache.js.map +1 -1
- package/lib/jupyter/kernel/Kernel.js +2 -2
- package/lib/jupyter/kernel/Kernel.js.map +1 -1
- package/lib/state/JupyterReactState.d.ts +2 -2
- package/lib/state/JupyterReactState.js +1 -1
- package/lib/state/JupyterReactState.js.map +1 -1
- package/package.json +2 -1
- package/lib/examples/NotebookOnKernelConnection.js +0 -32
- package/lib/examples/NotebookOnKernelConnection.js.map +0 -1
- /package/lib/examples/{NotebookOnKernelConnection.d.ts → NotebookOnSessionConnection.d.ts} +0 -0
|
@@ -7,12 +7,12 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
7
7
|
import { useState, useRef, useEffect } from 'react';
|
|
8
8
|
import { basicSetup } from 'codemirror';
|
|
9
9
|
import { EditorState } from '@codemirror/state';
|
|
10
|
-
import { Compartment } from '@codemirror/state';
|
|
11
10
|
import { keymap, EditorView } from '@codemirror/view';
|
|
11
|
+
import { Compartment } from '@codemirror/state';
|
|
12
12
|
import { python } from '@codemirror/lang-python';
|
|
13
|
+
import useOutputsStore from '../output/OutputState';
|
|
13
14
|
import codeMirrorTheme from './CodeMirrorTheme';
|
|
14
15
|
import CodeMirrorOutputToolbar from './CodeMirrorOutputToolbar';
|
|
15
|
-
import useOutputsStore from '../output/OutputState';
|
|
16
16
|
export const CodeMirrorDatalayerEditor = (props) => {
|
|
17
17
|
const { code, codePre, outputAdapter, autoRun, disableRun, sourceId, toolbarPosition, insertText, kernel, } = props;
|
|
18
18
|
const outputStore = useOutputsStore();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeMirrorDatalayerEditor.js","sourceRoot":"","sources":["../../../src/components/codemirror/CodeMirrorDatalayerEditor.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CodeMirrorDatalayerEditor.js","sourceRoot":"","sources":["../../../src/components/codemirror/CodeMirrorDatalayerEditor.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAc,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAGjD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAUzC,EAAE,EAAE;IACH,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,aAAa,EACb,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,UAAU,EACV,MAAM,GACP,GAAG,KAAK,CAAC;IACV,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAc,CAAC;IAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,EAAkB,CAAC;IAC3C,MAAM,eAAe,GAAG,CAAC,MAA0B,EAAE,EAAE;QACrD,IAAI,IAAI,IAAI,MAAM,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,CAAC;oBACP,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;oBACzB,MAAM,EAAE,MAAM;iBACf;aACF,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,OAAa,EAAE,EAAE;QACrC,IAAI,IAAI,IAAI,UAAU,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC;iBAC5B;aACF,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,UAAsB,EAAE,IAAa,EAAE,EAAE;QAC5D,IAAI,UAAU,EAAE;YACd,KAAK,CACH,sGAAsG,CACvG,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,EAAE;YACR,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B;aAAM;YACL,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxD;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG;YACjB;gBACE,GAAG,EAAE,aAAa;gBAClB,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;gBAClC,cAAc,EAAE,IAAI;aACrB;SACF,CAAC;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;YAC/B,GAAG,EAAE,IAAI;YACT,UAAU,EAAE;gBACV,UAAU;gBACX,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;gBACpB,UAAU,CAAC,YAAY;gBACvB,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC3B,eAAe;gBACd,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,UAAsB,EAAE,EAAE;oBACtD,IAAI,UAAU,CAAC,UAAU,EAAE;wBACzB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;wBAC/C,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBACxC;gBACH,CAAC,CAAC;aACH;SACF,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,SAAS,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,CAAC;QACpB,IAAI,OAAO,EAAE;YACX,WAAW,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACX,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,8BACG,MAAM,IAAI,eAAe,KAAK,IAAI,IAAI,CACrC,KAAC,uBAAuB,IACtB,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,GACxB,CACH,EACD,cAAK,GAAG,EAAE,SAAgB,GAAQ,EACjC,MAAM,IAAI,eAAe,KAAK,QAAQ,IAAI,CACzC,KAAC,uBAAuB,IACtB,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,GACxB,CACH,IACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
package/lib/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,gCAAgC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ServiceManager } from "@jupyterlab/services";
|
|
2
|
+
type IKernelDetectiveProps = {
|
|
3
|
+
serviceManager?: ServiceManager.IManager;
|
|
4
|
+
};
|
|
5
|
+
export declare const KernelDetective: (props: IKernelDetectiveProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export default KernelDetective;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2021-2023 Datalayer, Inc.
|
|
4
|
+
*
|
|
5
|
+
* MIT License
|
|
6
|
+
*/
|
|
7
|
+
import { useState, useEffect } from 'react';
|
|
8
|
+
import { Box, Text, Label, Button } from '@primer/react';
|
|
9
|
+
export const KernelDetective = (props) => {
|
|
10
|
+
const { serviceManager } = props;
|
|
11
|
+
const [serverSettings, setServerSettings] = useState();
|
|
12
|
+
const [sessions, setSessions] = useState([]);
|
|
13
|
+
const [kernels, setKernels] = useState([]);
|
|
14
|
+
const refresh = () => {
|
|
15
|
+
if (serviceManager) {
|
|
16
|
+
setServerSettings(serviceManager.serverSettings);
|
|
17
|
+
serviceManager.sessions.refreshRunning().then(() => {
|
|
18
|
+
setSessions(Array.from(serviceManager.sessions.running()));
|
|
19
|
+
serviceManager.sessions.runningChanged.connect(() => {
|
|
20
|
+
//
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
serviceManager.kernels.refreshRunning().then(() => {
|
|
24
|
+
setKernels(Array.from(serviceManager.kernels.running()));
|
|
25
|
+
serviceManager.kernels.runningChanged.connect(() => {
|
|
26
|
+
//
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
refresh();
|
|
33
|
+
}, [serviceManager]);
|
|
34
|
+
return (_jsx(_Fragment, { children: serviceManager &&
|
|
35
|
+
_jsxs(_Fragment, { children: [_jsx(Box, { mb: 3, children: _jsx(Button, { onClick: refresh, children: "Refresh" }) }), _jsxs(Box, { children: [_jsx(Text, { as: "h3", children: "Server Settings" }), _jsx(Label, { children: "Base URL" }), _jsxs(Text, { children: [" ", serverSettings?.baseUrl] })] }), _jsxs(Box, { children: [_jsx(Text, { as: "h3", children: "Kernels" }), kernels.map(kernel => {
|
|
36
|
+
return (_jsxs(Box, { children: [_jsx(Label, { children: "Kernel" }), _jsxs(Text, { children: [" ", kernel.name, " - ", kernel.id, " - ", kernel.connections, " connections"] })] }, kernel.id));
|
|
37
|
+
})] }), _jsxs(Box, { children: [_jsx(Text, { as: "h3", children: "Sessions" }), sessions.map(session => {
|
|
38
|
+
return (_jsxs(Box, { children: [_jsx(Label, { children: "Kernel" }), _jsxs(Text, { children: [" ", session.kernel?.name, " - ", session.kernel?.id] }), _jsx(Label, { style: { marginLeft: 10 }, children: "Session" }), _jsxs(Text, { children: [" ", session.name, " - ", session.path, " - ", session.type] })] }, session.id));
|
|
39
|
+
})] })] }) }));
|
|
40
|
+
};
|
|
41
|
+
export default KernelDetective;
|
|
42
|
+
//# sourceMappingURL=KernelDetective.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KernelDetective.js","sourceRoot":"","sources":["../../../src/components/kernel/KernelDetective.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
*/
|
|
7
7
|
import { useState, useEffect } from 'react';
|
|
8
8
|
import { Tooltip } from '@primer/react';
|
|
9
|
-
import { CircleBlackIcon, CircleBrownIcon, CircleGreenIcon, CircleHollowRedIcon, CircleOrangeIcon, CirclePurpleIcon, CircleRedIcon, CircleWhiteIcon, CircleYellowIcon, CircledMIcon,
|
|
9
|
+
import { CircleBlackIcon, CircleBrownIcon, CircleGreenIcon, CircleHollowRedIcon, CircleOrangeIcon, CirclePurpleIcon, CircleRedIcon, CircleWhiteIcon, CircleYellowIcon, CircledMIcon, PlusCircleIcon } from '@datalayer/icons-react';
|
|
10
10
|
/**
|
|
11
11
|
* The valid kernel connection states.
|
|
12
12
|
*
|
|
@@ -26,7 +26,7 @@ import { CircleBlackIcon, CircleBrownIcon, CircleGreenIcon, CircleHollowRedIcon,
|
|
|
26
26
|
* Status = 'unknown' | 'starting' | 'idle' | 'busy' | 'terminating' | 'restarting' | 'autorestarting' | 'dead';
|
|
27
27
|
*/
|
|
28
28
|
export const KERNEL_STATES = new Map([
|
|
29
|
-
['connecting', _jsx(
|
|
29
|
+
['connecting', _jsx(PlusCircleIcon, {})],
|
|
30
30
|
['connected-unknown', _jsx(CircledMIcon, {})],
|
|
31
31
|
['connected-starting', _jsx(CircleYellowIcon, {})],
|
|
32
32
|
['connected-idle', _jsx(CircleGreenIcon, {})],
|
|
@@ -36,7 +36,7 @@ export const KERNEL_STATES = new Map([
|
|
|
36
36
|
['connected-autorestarting', _jsx(CircleHollowRedIcon, {})],
|
|
37
37
|
['connected-dead', _jsx(CircleRedIcon, {})],
|
|
38
38
|
['disconnecting', _jsx(CircleBrownIcon, {})],
|
|
39
|
-
['undefined', _jsx(
|
|
39
|
+
['undefined', _jsx(CircleBlackIcon, {})],
|
|
40
40
|
]);
|
|
41
41
|
export const toKernelState = (connectionStatus, status) => {
|
|
42
42
|
if (connectionStatus === 'connecting' ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Kernelndicator.js","sourceRoot":"","sources":["../../../src/components/kernel/Kernelndicator.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAgB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"Kernelndicator.js","sourceRoot":"","sources":["../../../src/components/kernel/Kernelndicator.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAgB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACf,MAAM,wBAAwB,CAAC;AAmBhC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsC,IAAI,GAAG,CAAC;IACtE,CAAC,YAAY,EAAE,KAAC,cAAc,KAAG,CAAC;IAClC,CAAC,mBAAmB,EAAE,KAAC,YAAY,KAAG,CAAC;IACvC,CAAC,oBAAoB,EAAE,KAAC,gBAAgB,KAAG,CAAC;IAC5C,CAAC,gBAAgB,EAAE,KAAC,eAAe,KAAG,CAAC;IACvC,CAAC,gBAAgB,EAAE,KAAC,gBAAgB,KAAG,CAAC;IACxC,CAAC,uBAAuB,EAAE,KAAC,eAAe,KAAG,CAAC;IAC9C,CAAC,sBAAsB,EAAE,KAAC,gBAAgB,KAAG,CAAC;IAC9C,CAAC,0BAA0B,EAAE,KAAC,mBAAmB,KAAG,CAAC;IACrD,CAAC,gBAAgB,EAAE,KAAC,aAAa,KAAG,CAAC;IACrC,CAAC,eAAe,EAAE,KAAC,eAAe,KAAG,CAAC;IACtC,CAAC,WAAW,EAAE,KAAC,eAAe,KAAG,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,gBAAkC,EAClC,MAA4B,EACZ,EAAE;IAClB,IACE,gBAAgB,KAAK,YAAY;QACjC,gBAAgB,KAAK,cAAc,EACnC;QACA,OAAO,gBAAkC,CAAC;KAC3C;IACD,OAAO,gBAAgB,GAAG,GAAG,GAAG,MAAwB,CAAC;AAC3D,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,EAAoB,CAAC;IAC7E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAwB,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE;YACV,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC9C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,uBAAuB,CAAC,OAAO,CACpC,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE;gBACtB,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACxC,CAAC,CACF,CAAC;YACF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBACzC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,CAClC,KAAC,OAAO,kBAAa,GAAG,gBAAgB,MAAM,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,YAC1E,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,GACnD,CACX,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,kBAAY,iBAAiB,YAClC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,GACvB,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/kernel/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/kernel/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -4,11 +4,11 @@ import { CommandRegistry } from '@lumino/commands';
|
|
|
4
4
|
import { DocumentRegistry } from '@jupyterlab/docregistry';
|
|
5
5
|
import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
6
6
|
import { INotebookContent } from '@jupyterlab/nbformat';
|
|
7
|
-
import { ServiceManager } from '@jupyterlab/services';
|
|
7
|
+
import { ServiceManager, Kernel as JupyterKernel } from '@jupyterlab/services';
|
|
8
8
|
import { Lite, Kernel } from './../../jupyter';
|
|
9
9
|
import { ICellSidebarProps } from './cell/sidebar';
|
|
10
10
|
import { INotebookToolbarProps } from './toolbar/NotebookToolbar';
|
|
11
|
-
import {
|
|
11
|
+
import { OnSessionConnection } from '../../state';
|
|
12
12
|
import './Notebook.css';
|
|
13
13
|
export type ExternalIPyWidgets = {
|
|
14
14
|
name: string;
|
|
@@ -33,18 +33,20 @@ export type INotebookProps = {
|
|
|
33
33
|
extensions: DatalayerNotebookExtension[];
|
|
34
34
|
height?: string;
|
|
35
35
|
id: string;
|
|
36
|
-
lite?: Lite;
|
|
37
36
|
kernel?: Kernel;
|
|
37
|
+
kernelClients?: JupyterKernel.IKernelConnection[];
|
|
38
|
+
lite?: Lite;
|
|
38
39
|
maxHeight?: string;
|
|
39
40
|
nbformat?: INotebookContent;
|
|
40
41
|
nbgrader: boolean;
|
|
41
|
-
|
|
42
|
+
onSessionConnection?: OnSessionConnection;
|
|
42
43
|
path?: string;
|
|
43
44
|
readonly: boolean;
|
|
44
45
|
renderId: number;
|
|
45
46
|
renderers: IRenderMime.IRendererFactory[];
|
|
46
47
|
serverless: boolean;
|
|
47
48
|
serviceManager?: ServiceManager.IManager;
|
|
49
|
+
startDefaultKernel?: boolean;
|
|
48
50
|
url?: string;
|
|
49
51
|
/**
|
|
50
52
|
* The Kernel Id to use, as defined in the Kernel API.
|
|
@@ -26,6 +26,7 @@ export const Notebook = (props) => {
|
|
|
26
26
|
lite: props.lite,
|
|
27
27
|
serverless: props.serverless,
|
|
28
28
|
serviceManager: props.serviceManager,
|
|
29
|
+
startDefaultKernel: props.startDefaultKernel,
|
|
29
30
|
useRunningKernelId: props.useRunningKernelId,
|
|
30
31
|
useRunningKernelIndex: props.useRunningKernelIndex,
|
|
31
32
|
});
|
|
@@ -80,7 +81,7 @@ export const Notebook = (props) => {
|
|
|
80
81
|
adapter.notebookPanel?.sessionContext.statusChanged.connect((_, kernelStatus) => {
|
|
81
82
|
notebookStore.changeKernelStatus({ id, kernelStatus });
|
|
82
83
|
});
|
|
83
|
-
// Add more UI behavior when the Service Manager is ready
|
|
84
|
+
// Add more UI behavior when the Service Manager is ready.
|
|
84
85
|
adapter.serviceManager.ready.then(() => {
|
|
85
86
|
if (!readonly) {
|
|
86
87
|
const cellModel = adapter.notebookPanel.content.activeCell;
|
|
@@ -224,7 +225,7 @@ export const Notebook = (props) => {
|
|
|
224
225
|
position: 'relative',
|
|
225
226
|
},
|
|
226
227
|
}, children: [_jsx(_Fragment, { children: portals?.map((portal) => portal) }), _jsx(Box, { children: extensionComponents.map((extensionComponent, index) => {
|
|
227
|
-
return (_jsx(Box, {
|
|
228
|
+
return (_jsx(Box, { children: extensionComponent }, `${extensionComponent}-${index}`));
|
|
228
229
|
}) }), _jsx(Box, { children: adapter &&
|
|
229
230
|
_jsx(Lumino, { id: id, children: adapter.panel }) })] })] }));
|
|
230
231
|
};
|
|
@@ -233,12 +234,14 @@ Notebook.defaultProps = {
|
|
|
233
234
|
cellSidebarMargin: 120,
|
|
234
235
|
extensions: [],
|
|
235
236
|
height: '100vh',
|
|
237
|
+
kernelClients: [],
|
|
236
238
|
maxHeight: '100vh',
|
|
237
239
|
nbgrader: false,
|
|
238
240
|
readonly: false,
|
|
239
241
|
renderId: 0,
|
|
240
242
|
renderers: [],
|
|
241
243
|
serverless: false,
|
|
244
|
+
startDefaultKernel: false,
|
|
242
245
|
};
|
|
243
246
|
export default Notebook;
|
|
244
247
|
//# sourceMappingURL=Notebook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notebook.js","sourceRoot":"","sources":["../../../src/components/notebook/Notebook.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAQpC,OAAO,EAAE,UAAU,EAAgB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Notebook.js","sourceRoot":"","sources":["../../../src/components/notebook/Notebook.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,17 +11,20 @@ export declare class NotebookAdapter {
|
|
|
11
11
|
private _CellSidebar?;
|
|
12
12
|
private _boxPanel;
|
|
13
13
|
private _commandRegistry;
|
|
14
|
+
private _contentFactory;
|
|
14
15
|
private _context?;
|
|
15
16
|
private _documentRegistry?;
|
|
16
17
|
private _iPyWidgetsManager?;
|
|
17
18
|
private _id;
|
|
18
19
|
private _kernel?;
|
|
20
|
+
private _kernelClients?;
|
|
19
21
|
private _lite?;
|
|
22
|
+
private _mimeTypeService;
|
|
20
23
|
private _nbformat?;
|
|
21
24
|
private _nbgrader;
|
|
22
25
|
private _notebookModelFactory?;
|
|
23
26
|
private _notebookPanel?;
|
|
24
|
-
private
|
|
27
|
+
private _onSessionConnection?;
|
|
25
28
|
private _path?;
|
|
26
29
|
private _readonly;
|
|
27
30
|
private _renderers;
|
|
@@ -30,8 +33,6 @@ export declare class NotebookAdapter {
|
|
|
30
33
|
private _serviceManager;
|
|
31
34
|
private _tracker?;
|
|
32
35
|
private _url?;
|
|
33
|
-
private _contentFactory;
|
|
34
|
-
private _mimeTypeService;
|
|
35
36
|
constructor(props: INotebookProps);
|
|
36
37
|
loadFromUrl(url: string): Promise<any>;
|
|
37
38
|
notebookKeydownListener: (event: KeyboardEvent) => void;
|
|
@@ -25,17 +25,20 @@ export class NotebookAdapter {
|
|
|
25
25
|
_CellSidebar;
|
|
26
26
|
_boxPanel;
|
|
27
27
|
_commandRegistry;
|
|
28
|
+
_contentFactory;
|
|
28
29
|
_context;
|
|
29
30
|
_documentRegistry;
|
|
30
31
|
_iPyWidgetsManager;
|
|
31
32
|
_id;
|
|
32
33
|
_kernel;
|
|
34
|
+
_kernelClients;
|
|
33
35
|
_lite;
|
|
36
|
+
_mimeTypeService;
|
|
34
37
|
_nbformat;
|
|
35
38
|
_nbgrader;
|
|
36
39
|
_notebookModelFactory;
|
|
37
40
|
_notebookPanel;
|
|
38
|
-
|
|
41
|
+
_onSessionConnection;
|
|
39
42
|
_path;
|
|
40
43
|
_readonly;
|
|
41
44
|
_renderers;
|
|
@@ -44,13 +47,12 @@ export class NotebookAdapter {
|
|
|
44
47
|
_serviceManager;
|
|
45
48
|
_tracker;
|
|
46
49
|
_url;
|
|
47
|
-
_contentFactory;
|
|
48
|
-
_mimeTypeService;
|
|
49
50
|
constructor(props) {
|
|
50
|
-
console.log('
|
|
51
|
+
console.log('Creating a new Notebook Adapter.');
|
|
51
52
|
this._CellSidebar = props.CellSidebar;
|
|
52
53
|
this._id = props.id;
|
|
53
54
|
this._kernel = props.kernel;
|
|
55
|
+
this._kernelClients = props.kernelClients;
|
|
54
56
|
this._lite = props.lite;
|
|
55
57
|
this._nbformat = props.nbformat;
|
|
56
58
|
this._nbgrader = props.nbgrader;
|
|
@@ -60,7 +62,7 @@ export class NotebookAdapter {
|
|
|
60
62
|
this._serverless = props.serverless;
|
|
61
63
|
this._serviceManager = props.serviceManager;
|
|
62
64
|
this._url = props.url;
|
|
63
|
-
this.
|
|
65
|
+
this._onSessionConnection = props.onSessionConnection;
|
|
64
66
|
this._boxPanel = new BoxPanel();
|
|
65
67
|
this._boxPanel.addClass('dla-Jupyter-Notebook');
|
|
66
68
|
this._boxPanel.spacing = 0;
|
|
@@ -103,7 +105,7 @@ export class NotebookAdapter {
|
|
|
103
105
|
timeout,
|
|
104
106
|
});
|
|
105
107
|
const handler = new CompletionHandler({ completer, reconciliator });
|
|
106
|
-
|
|
108
|
+
sessionContext.ready.then(() => {
|
|
107
109
|
const provider = new KernelCompleterProvider();
|
|
108
110
|
const reconciliator = new ProviderReconciliator({
|
|
109
111
|
context: {
|
|
@@ -143,26 +145,17 @@ export class NotebookAdapter {
|
|
|
143
145
|
},
|
|
144
146
|
});
|
|
145
147
|
this._iPyWidgetsManager = new WidgetManager(this._context, this._rendermime, { saveState: false });
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
{
|
|
149
|
-
safe: false,
|
|
148
|
+
const ipywidgetsRendererFactory = {
|
|
149
|
+
safe: true,
|
|
150
150
|
mimeTypes: [WIDGET_MIMETYPE],
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
.then(() => {
|
|
160
|
-
this._iPyWidgetsManager?.registerWithKernel(
|
|
161
|
-
this._kernel.connection
|
|
162
|
-
);
|
|
163
|
-
});
|
|
164
|
-
*/
|
|
165
|
-
// These are fixes to have more control on the kernel launch.
|
|
151
|
+
defaultRank: 1,
|
|
152
|
+
createRenderer: options => new WidgetLabRenderer(options, this._iPyWidgetsManager),
|
|
153
|
+
};
|
|
154
|
+
this._rendermime.addFactory(ipywidgetsRendererFactory, 1);
|
|
155
|
+
this._kernelClients?.map(kernelClient => {
|
|
156
|
+
this._iPyWidgetsManager?.registerWithKernel(kernelClient);
|
|
157
|
+
});
|
|
158
|
+
// These are fixes on the Context and the SessionContext to have more control on the kernel launch.
|
|
166
159
|
this._context.sessionContext._initialize = async () => {
|
|
167
160
|
const manager = this._context.sessionContext.sessionManager;
|
|
168
161
|
await manager.ready;
|
|
@@ -183,6 +176,8 @@ export class NotebookAdapter {
|
|
|
183
176
|
},
|
|
184
177
|
});
|
|
185
178
|
this._context.sessionContext._handleNewSession(session);
|
|
179
|
+
// Dispose the previous KernelConnection to avoid errors with Comms.
|
|
180
|
+
this._kernel?.connection?.dispose();
|
|
186
181
|
}
|
|
187
182
|
catch (err) {
|
|
188
183
|
void this._context.sessionContext._handleSessionError(err);
|
|
@@ -191,70 +186,8 @@ export class NotebookAdapter {
|
|
|
191
186
|
}
|
|
192
187
|
return await this._context.sessionContext._startIfNecessary();
|
|
193
188
|
};
|
|
194
|
-
this._context.sessionContext.ready.then(() => {
|
|
195
|
-
if (this._onKernelConnection) {
|
|
196
|
-
const kernelConnection = this._context?.sessionContext.session?.kernel;
|
|
197
|
-
this._onKernelConnection(kernelConnection);
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
this._context.sessionContext.kernelChanged.connect((_, args) => {
|
|
201
|
-
console.log('Previous Jupyter Kernel Connection.', args.oldValue);
|
|
202
|
-
const kernelConnection = args.newValue;
|
|
203
|
-
console.log('Current Jupyter Kernel Connection.', kernelConnection);
|
|
204
|
-
if (kernelConnection && !kernelConnection.handleComms) {
|
|
205
|
-
console.warn('The current Kernel Connection does not handle Comms...', kernelConnection.id);
|
|
206
|
-
kernelConnection.handleComms = true;
|
|
207
|
-
console.log('The current Kernel Connection is updated to enforce Comms support!', kernelConnection.handleComms);
|
|
208
|
-
}
|
|
209
|
-
if (this._onKernelConnection) {
|
|
210
|
-
this._onKernelConnection(kernelConnection);
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
if (!this._notebookPanel) {
|
|
214
|
-
// Option 1.
|
|
215
|
-
/*
|
|
216
|
-
const content = new Notebook({
|
|
217
|
-
rendermime: this._rendermime!,
|
|
218
|
-
contentFactory: this._contentFactory,
|
|
219
|
-
mimeTypeService: this._mimeTypeService,
|
|
220
|
-
notebookConfig: {
|
|
221
|
-
...StaticNotebook.defaultNotebookConfig,
|
|
222
|
-
windowingMode: 'none',
|
|
223
|
-
recordTiming: true,
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
this._notebookPanel = new NotebookPanel({
|
|
227
|
-
context: this._context,
|
|
228
|
-
content,
|
|
229
|
-
});
|
|
230
|
-
*/
|
|
231
|
-
// Option 2.
|
|
232
|
-
const notebookFactory = this._documentRegistry?.getWidgetFactory('Notebook');
|
|
233
|
-
this._notebookPanel = notebookFactory?.createNew(this._context);
|
|
234
|
-
}
|
|
235
|
-
if (this._kernel) {
|
|
236
|
-
this._iPyWidgetsManager?.registerWithKernel(this._kernel.connection);
|
|
237
|
-
}
|
|
238
|
-
this._notebookPanel?.sessionContext.kernelChanged.connect((_, args) => {
|
|
239
|
-
this._iPyWidgetsManager?.registerWithKernel(args.newValue);
|
|
240
|
-
});
|
|
241
|
-
const completerHandler = this.setupCompleter(this._notebookPanel);
|
|
242
|
-
if (!this._readonly) {
|
|
243
|
-
try {
|
|
244
|
-
NotebookCommands(this._commandRegistry, this._notebookPanel, completerHandler, this._tracker, this._path);
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
// no-op.
|
|
248
|
-
// The commands may already be registered...
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
this._boxPanel.addWidget(this._notebookPanel);
|
|
252
|
-
BoxPanel.setStretch(this._notebookPanel, 0);
|
|
253
|
-
window.addEventListener('resize', () => {
|
|
254
|
-
this._notebookPanel?.update();
|
|
255
|
-
});
|
|
256
189
|
if (isNbFormat) {
|
|
257
|
-
// If nbformat is provided and we don't want to interact with the
|
|
190
|
+
// If nbformat is provided and we don't want to interact with the Content Manager.
|
|
258
191
|
this._context._populate = async () => {
|
|
259
192
|
this._context._isPopulated = true;
|
|
260
193
|
this._context._isReady = true;
|
|
@@ -301,6 +234,75 @@ export class NotebookAdapter {
|
|
|
301
234
|
this._context.model.sharedModel.clearUndoHistory();
|
|
302
235
|
};
|
|
303
236
|
}
|
|
237
|
+
// Setup the context listeners.
|
|
238
|
+
this._context.sessionContext.sessionChanged.connect((_, args) => {
|
|
239
|
+
const session = args.newValue;
|
|
240
|
+
console.log('Current Jupyter Session Connection.', session);
|
|
241
|
+
if (this._onSessionConnection) {
|
|
242
|
+
if (session) {
|
|
243
|
+
this._onSessionConnection(session);
|
|
244
|
+
this._iPyWidgetsManager?.registerWithKernel(session.kernel);
|
|
245
|
+
this._iPyWidgetsManager?.restoreWidgets(this._notebookPanel?.model);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
this._context.sessionContext.kernelChanged.connect((_, args) => {
|
|
250
|
+
const kernelConnection = args.newValue;
|
|
251
|
+
console.log('Current Jupyter Kernel Connection.', kernelConnection);
|
|
252
|
+
if (kernelConnection && !kernelConnection.handleComms) {
|
|
253
|
+
console.log('Updating the current Kernel Connection to enforce Comms support.', kernelConnection.handleComms);
|
|
254
|
+
kernelConnection.handleComms = true;
|
|
255
|
+
} /*
|
|
256
|
+
this._iPyWidgetsManager?.registerWithKernel(args.newValue);
|
|
257
|
+
this._iPyWidgetsManager?.restoreWidgets(this._notebookPanel?.model!)
|
|
258
|
+
if (this._onSessionConnection) {
|
|
259
|
+
this._onSessionConnection(kernelConnection);
|
|
260
|
+
}
|
|
261
|
+
*/
|
|
262
|
+
});
|
|
263
|
+
this._context.sessionContext.ready.then(() => {
|
|
264
|
+
if (this._onSessionConnection) {
|
|
265
|
+
this._onSessionConnection(this._context?.sessionContext.session);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
if (!this._notebookPanel) {
|
|
269
|
+
// Create the Notebook Panel if not yet done.
|
|
270
|
+
/*
|
|
271
|
+
// Option 1 to create the Notebook Panel.
|
|
272
|
+
const content = new Notebook({
|
|
273
|
+
rendermime: this._rendermime!,
|
|
274
|
+
contentFactory: this._contentFactory,
|
|
275
|
+
mimeTypeService: this._mimeTypeService,
|
|
276
|
+
notebookConfig: {
|
|
277
|
+
...StaticNotebook.defaultNotebookConfig,
|
|
278
|
+
windowingMode: 'none',
|
|
279
|
+
recordTiming: true,
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
this._notebookPanel = new NotebookPanel({
|
|
283
|
+
context: this._context,
|
|
284
|
+
content,
|
|
285
|
+
});
|
|
286
|
+
*/
|
|
287
|
+
// Option 2 to create the Notebook Panel.
|
|
288
|
+
const notebookFactory = this._documentRegistry?.getWidgetFactory('Notebook');
|
|
289
|
+
this._notebookPanel = notebookFactory?.createNew(this._context);
|
|
290
|
+
}
|
|
291
|
+
const completerHandler = this.setupCompleter(this._notebookPanel);
|
|
292
|
+
if (!this._readonly) {
|
|
293
|
+
try {
|
|
294
|
+
NotebookCommands(this._commandRegistry, this._notebookPanel, completerHandler, this._tracker, this._path);
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
// no-op.
|
|
298
|
+
// The commands may already be registered...
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
this._boxPanel.addWidget(this._notebookPanel);
|
|
302
|
+
BoxPanel.setStretch(this._notebookPanel, 0);
|
|
303
|
+
window.addEventListener('resize', () => {
|
|
304
|
+
this._notebookPanel?.update();
|
|
305
|
+
});
|
|
304
306
|
this._context.initialize(isNbFormat).then(() => {
|
|
305
307
|
if (isNbFormat) {
|
|
306
308
|
this._notebookPanel?.model?.fromJSON(this._nbformat);
|
|
@@ -310,13 +312,16 @@ export class NotebookAdapter {
|
|
|
310
312
|
setupAdapter() {
|
|
311
313
|
document.addEventListener('keydown', this.notebookKeydownListener, true);
|
|
312
314
|
const initialFactories = standardRendererFactories.filter(factory => factory.mimeTypes[0] !== 'text/javascript');
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
315
|
+
/*
|
|
316
|
+
const ipywidgetsRendererFactory: IRenderMime.IRendererFactory = {
|
|
317
|
+
safe: true,
|
|
318
|
+
mimeTypes: [WIDGET_MIMETYPE],
|
|
319
|
+
defaultRank: 1,
|
|
320
|
+
createRenderer: options =>
|
|
321
|
+
new WidgetLabRenderer(options, this._iPyWidgetsManager!),
|
|
318
322
|
};
|
|
319
323
|
initialFactories.push(ipywidgetsRendererFactory);
|
|
324
|
+
*/
|
|
320
325
|
initialFactories.push(jsonRendererFactory);
|
|
321
326
|
initialFactories.push(javascriptRendererFactory);
|
|
322
327
|
this._renderers.map(renderer => initialFactories.push(renderer));
|