@datalayer/jupyter-react 0.19.9 → 0.20.1
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.d.ts +5 -0
- package/lib/components/cell/Cell.js +6 -3
- package/lib/components/cell/Cell.js.map +1 -1
- package/lib/components/cell/CellAdapter.d.ts +3 -0
- package/lib/components/cell/CellAdapter.js +4 -1
- package/lib/components/cell/CellAdapter.js.map +1 -1
- package/lib/components/console/Console.js +5 -5
- package/lib/components/console/Console.js.map +1 -1
- package/lib/components/notebook/BaseNotebook.d.ts +4 -0
- package/lib/components/notebook/BaseNotebook.js +4 -1
- package/lib/components/notebook/BaseNotebook.js.map +1 -1
- package/lib/components/notebook/Notebook.d.ts +1 -1
- package/lib/components/notebook/Notebook.js +1 -2
- package/lib/components/notebook/Notebook.js.map +1 -1
- package/lib/components/notebook/SimpleNotebook.d.ts +5 -1
- package/lib/components/notebook/SimpleNotebook.js +2 -2
- package/lib/components/notebook/SimpleNotebook.js.map +1 -1
- package/lib/components/output/Output.js +1 -1
- package/lib/components/output/Output.js.map +1 -1
- package/lib/components/output/OutputAdapter.js +2 -2
- package/lib/components/output/OutputAdapter.js.map +1 -1
- package/lib/examples/CellLite.js +2 -2
- package/lib/examples/CellLite.js.map +1 -1
- package/lib/examples/ConsoleLite.js +2 -2
- package/lib/examples/ConsoleLite.js.map +1 -1
- package/lib/examples/KernelExecute.js +1 -1
- package/lib/examples/KernelExecute.js.map +1 -1
- package/lib/examples/KernelExecutor.js +1 -1
- package/lib/examples/KernelExecutor.js.map +1 -1
- package/lib/examples/Kernels.js +1 -1
- package/lib/examples/Kernels.js.map +1 -1
- package/lib/examples/NotebookCellSidebar.js +1 -1
- package/lib/examples/NotebookCellSidebar.js.map +1 -1
- package/lib/examples/NotebookCellToolbar.js +1 -1
- package/lib/examples/NotebookCellToolbar.js.map +1 -1
- package/lib/examples/NotebookColormode.js +1 -1
- package/lib/examples/NotebookColormode.js.map +1 -1
- package/lib/examples/NotebookLite.js +1 -1
- package/lib/examples/NotebookLite.js.map +1 -1
- package/lib/examples/NotebookReadonly.js +1 -1
- package/lib/examples/NotebookReadonly.js.map +1 -1
- package/lib/examples/NotebookSimple.d.ts +1 -0
- package/lib/examples/NotebookSimple.js +35 -0
- package/lib/examples/NotebookSimple.js.map +1 -0
- package/lib/examples/Output.js +3 -3
- package/lib/examples/Output.js.map +1 -1
- package/lib/examples/OutputWithMonitoring.js +1 -1
- package/lib/examples/OutputWithMonitoring.js.map +1 -1
- package/lib/examples/Outputs.js +3 -3
- package/lib/examples/Outputs.js.map +1 -1
- package/lib/examples/notebooks/Lite.ipynb.json +146 -0
- package/lib/jupyter/JupyterContext.d.ts +0 -11
- package/lib/jupyter/JupyterContext.js +0 -2
- package/lib/jupyter/JupyterContext.js.map +1 -1
- package/lib/jupyter/lab/notebook/content/plugin.d.ts +1 -1
- package/lib/jupyter/lab/notebook/content/plugin.js +2 -2
- package/lib/jupyter/lab/notebook/content/plugin.js.map +1 -1
- package/lib/jupyter/lab/notebook/editor/history.d.ts +193 -0
- package/lib/jupyter/lab/notebook/editor/history.js +304 -0
- package/lib/jupyter/lab/notebook/editor/history.js.map +1 -0
- package/lib/jupyter/lab/notebook/editor/index.d.ts +0 -0
- package/lib/jupyter/lab/notebook/editor/index.js +6 -0
- package/lib/jupyter/lab/notebook/editor/index.js.map +1 -0
- package/lib/jupyter/lab/notebook/editor/plugin.d.ts +7 -0
- package/lib/jupyter/lab/notebook/editor/plugin.js +62 -0
- package/lib/jupyter/lab/notebook/editor/plugin.js.map +1 -0
- package/lib/jupyter/lab/notebook/editor/widgetfactory.d.ts +96 -0
- package/lib/jupyter/lab/notebook/editor/widgetfactory.js +89 -0
- package/lib/jupyter/lab/notebook/editor/widgetfactory.js.map +1 -0
- package/lib/jupyter/lab/plugin.d.ts +1 -1
- package/lib/jupyter/lab/plugin.js +6 -4
- package/lib/jupyter/lab/plugin.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
|
|
2
|
+
import { ABCWidgetFactory, DocumentRegistry } from '@jupyterlab/docregistry';
|
|
3
|
+
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
|
|
4
|
+
import { ITranslator } from '@jupyterlab/translation';
|
|
5
|
+
import { INotebookModel, NotebookPanel, StaticNotebook } from '@jupyterlab/notebook';
|
|
6
|
+
/**
|
|
7
|
+
* A widget factory for notebook panels.
|
|
8
|
+
*/
|
|
9
|
+
export declare class NotebookWidgetFactory extends ABCWidgetFactory<NotebookPanel, INotebookModel> {
|
|
10
|
+
/**
|
|
11
|
+
* Construct a new notebook widget factory.
|
|
12
|
+
*
|
|
13
|
+
* @param options - The options used to construct the factory.
|
|
14
|
+
*/
|
|
15
|
+
constructor(options: NotebookWidgetFactory.IOptions<NotebookPanel>);
|
|
16
|
+
readonly rendermime: IRenderMimeRegistry;
|
|
17
|
+
/**
|
|
18
|
+
* The content factory used by the widget factory.
|
|
19
|
+
*/
|
|
20
|
+
readonly contentFactory: NotebookPanel.IContentFactory;
|
|
21
|
+
/**
|
|
22
|
+
* The service used to look up mime types.
|
|
23
|
+
*/
|
|
24
|
+
readonly mimeTypeService: IEditorMimeTypeService;
|
|
25
|
+
/**
|
|
26
|
+
* A configuration object for cell editor settings.
|
|
27
|
+
*/
|
|
28
|
+
get editorConfig(): StaticNotebook.IEditorConfig;
|
|
29
|
+
set editorConfig(value: StaticNotebook.IEditorConfig);
|
|
30
|
+
/**
|
|
31
|
+
* A configuration object for notebook settings.
|
|
32
|
+
*/
|
|
33
|
+
get notebookConfig(): StaticNotebook.INotebookConfig;
|
|
34
|
+
set notebookConfig(value: StaticNotebook.INotebookConfig);
|
|
35
|
+
/**
|
|
36
|
+
* Create a new widget.
|
|
37
|
+
*
|
|
38
|
+
* #### Notes
|
|
39
|
+
* The factory will start the appropriate kernel.
|
|
40
|
+
*/
|
|
41
|
+
protected createNewWidget(context: DocumentRegistry.IContext<INotebookModel>, source?: NotebookPanel): NotebookPanel;
|
|
42
|
+
private _editorConfig;
|
|
43
|
+
private _notebookConfig;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The namespace for `NotebookWidgetFactory` statics.
|
|
47
|
+
*/
|
|
48
|
+
export declare namespace NotebookWidgetFactory {
|
|
49
|
+
/**
|
|
50
|
+
* The options used to construct a `NotebookWidgetFactory`.
|
|
51
|
+
*/
|
|
52
|
+
interface IOptions<T extends NotebookPanel> extends DocumentRegistry.IWidgetFactoryOptions<T> {
|
|
53
|
+
rendermime: IRenderMimeRegistry;
|
|
54
|
+
/**
|
|
55
|
+
* A notebook panel content factory.
|
|
56
|
+
*/
|
|
57
|
+
contentFactory: NotebookPanel.IContentFactory;
|
|
58
|
+
/**
|
|
59
|
+
* The service used to look up mime types.
|
|
60
|
+
*/
|
|
61
|
+
mimeTypeService: IEditorMimeTypeService;
|
|
62
|
+
/**
|
|
63
|
+
* The notebook cell editor configuration.
|
|
64
|
+
*/
|
|
65
|
+
editorConfig?: StaticNotebook.IEditorConfig;
|
|
66
|
+
/**
|
|
67
|
+
* The notebook configuration.
|
|
68
|
+
*/
|
|
69
|
+
notebookConfig?: StaticNotebook.INotebookConfig;
|
|
70
|
+
/**
|
|
71
|
+
* The application language translator.
|
|
72
|
+
*/
|
|
73
|
+
translator?: ITranslator;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The interface for a notebook widget factory.
|
|
77
|
+
*/
|
|
78
|
+
interface IFactory extends DocumentRegistry.IWidgetFactory<NotebookPanel, INotebookModel> {
|
|
79
|
+
/**
|
|
80
|
+
* Whether to automatically start the preferred kernel.
|
|
81
|
+
*/
|
|
82
|
+
autoStartDefault: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* A configuration object for cell editor settings.
|
|
85
|
+
*/
|
|
86
|
+
editorConfig: StaticNotebook.IEditorConfig;
|
|
87
|
+
/**
|
|
88
|
+
* A configuration object for notebook settings.
|
|
89
|
+
*/
|
|
90
|
+
notebookConfig: StaticNotebook.INotebookConfig;
|
|
91
|
+
/**
|
|
92
|
+
* Whether the kernel should be shutdown when the widget is closed.
|
|
93
|
+
*/
|
|
94
|
+
shutdownOnClose: boolean;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2021-2023 Datalayer, Inc.
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { ABCWidgetFactory } from '@jupyterlab/docregistry';
|
|
7
|
+
import { NotebookPanel, StaticNotebook } from '@jupyterlab/notebook';
|
|
8
|
+
import { NotebookHistory } from './history';
|
|
9
|
+
/**
|
|
10
|
+
* A widget factory for notebook panels.
|
|
11
|
+
*/
|
|
12
|
+
export class NotebookWidgetFactory extends ABCWidgetFactory {
|
|
13
|
+
/**
|
|
14
|
+
* Construct a new notebook widget factory.
|
|
15
|
+
*
|
|
16
|
+
* @param options - The options used to construct the factory.
|
|
17
|
+
*/
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super(options);
|
|
20
|
+
this.rendermime = options.rendermime;
|
|
21
|
+
this.contentFactory = options.contentFactory;
|
|
22
|
+
this.mimeTypeService = options.mimeTypeService;
|
|
23
|
+
this._editorConfig =
|
|
24
|
+
options.editorConfig || StaticNotebook.defaultEditorConfig;
|
|
25
|
+
this._notebookConfig =
|
|
26
|
+
options.notebookConfig || StaticNotebook.defaultNotebookConfig;
|
|
27
|
+
}
|
|
28
|
+
/*
|
|
29
|
+
* The rendermime instance.
|
|
30
|
+
*/
|
|
31
|
+
rendermime;
|
|
32
|
+
/**
|
|
33
|
+
* The content factory used by the widget factory.
|
|
34
|
+
*/
|
|
35
|
+
contentFactory;
|
|
36
|
+
/**
|
|
37
|
+
* The service used to look up mime types.
|
|
38
|
+
*/
|
|
39
|
+
mimeTypeService;
|
|
40
|
+
/**
|
|
41
|
+
* A configuration object for cell editor settings.
|
|
42
|
+
*/
|
|
43
|
+
get editorConfig() {
|
|
44
|
+
return this._editorConfig;
|
|
45
|
+
}
|
|
46
|
+
set editorConfig(value) {
|
|
47
|
+
this._editorConfig = value;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A configuration object for notebook settings.
|
|
51
|
+
*/
|
|
52
|
+
get notebookConfig() {
|
|
53
|
+
return this._notebookConfig;
|
|
54
|
+
}
|
|
55
|
+
set notebookConfig(value) {
|
|
56
|
+
this._notebookConfig = value;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create a new widget.
|
|
60
|
+
*
|
|
61
|
+
* #### Notes
|
|
62
|
+
* The factory will start the appropriate kernel.
|
|
63
|
+
*/
|
|
64
|
+
createNewWidget(context, source) {
|
|
65
|
+
const translator = context.translator;
|
|
66
|
+
const kernelHistory = new NotebookHistory({
|
|
67
|
+
sessionContext: context.sessionContext,
|
|
68
|
+
translator: translator
|
|
69
|
+
});
|
|
70
|
+
const nbOptions = {
|
|
71
|
+
rendermime: source
|
|
72
|
+
? source.content.rendermime
|
|
73
|
+
: this.rendermime.clone({ resolver: context.urlResolver }),
|
|
74
|
+
contentFactory: this.contentFactory,
|
|
75
|
+
mimeTypeService: this.mimeTypeService,
|
|
76
|
+
editorConfig: source ? source.content.editorConfig : this._editorConfig,
|
|
77
|
+
notebookConfig: source
|
|
78
|
+
? source.content.notebookConfig
|
|
79
|
+
: this._notebookConfig,
|
|
80
|
+
translator,
|
|
81
|
+
kernelHistory
|
|
82
|
+
};
|
|
83
|
+
const content = this.contentFactory.createNotebook(nbOptions);
|
|
84
|
+
return new NotebookPanel({ context, content });
|
|
85
|
+
}
|
|
86
|
+
_editorConfig;
|
|
87
|
+
_notebookConfig;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=widgetfactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widgetfactory.js","sourceRoot":"","sources":["../../../../../src/jupyter/lab/notebook/editor/widgetfactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,yBAAyB,CAAC;AAG7E,OAAO,EAAkB,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,gBAG1C;IACC;;;;OAIG;IACH,YAAY,OAAsD;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,aAAa;YAChB,OAAO,CAAC,YAAY,IAAI,cAAc,CAAC,mBAAmB,CAAC;QAC7D,IAAI,CAAC,eAAe;YAClB,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,qBAAqB,CAAC;IACnE,CAAC;IAED;;OAEG;IACM,UAAU,CAAsB;IAEzC;;OAEG;IACM,cAAc,CAAgC;IAEvD;;OAEG;IACM,eAAe,CAAyB;IAEjD;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY,CAAC,KAAmC;QAClD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,IAAI,cAAc,CAAC,KAAqC;QACtD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACO,eAAe,CACvB,OAAkD,EAClD,MAAsB;QAEtB,MAAM,UAAU,GAAI,OAAe,CAAC,UAAU,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC;YACxC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG;YAChB,UAAU,EAAE,MAAM;gBAChB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;gBAC3B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAC5D,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa;YACvE,cAAc,EAAE,MAAM;gBACpB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;gBAC/B,CAAC,CAAC,IAAI,CAAC,eAAe;YACxB,UAAU;YACV,aAAa;SACd,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,aAAa,CAA+B;IAC5C,eAAe,CAAiC;CACzD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { JupyterFrontEndPlugin } from '@jupyterlab/application';
|
|
2
2
|
import '../../../style/index.css';
|
|
3
|
-
declare const _default: (JupyterFrontEndPlugin<void> | JupyterFrontEndPlugin<import("@jupyterlab/notebook").NotebookPanel.IContentFactory>)[];
|
|
3
|
+
declare const _default: (JupyterFrontEndPlugin<void> | JupyterFrontEndPlugin<import("@jupyterlab/notebook").NotebookPanel.IContentFactory> | JupyterFrontEndPlugin<import("@jupyterlab/notebook").NotebookWidgetFactory.IFactory>)[];
|
|
4
4
|
export default _default;
|
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
|
-
import { ILayoutRestorer
|
|
7
|
-
import { MainAreaWidget, ICommandPalette, WidgetTracker
|
|
6
|
+
import { ILayoutRestorer } from '@jupyterlab/application';
|
|
7
|
+
import { MainAreaWidget, ICommandPalette, WidgetTracker } from '@jupyterlab/apputils';
|
|
8
8
|
import { ILauncher } from '@jupyterlab/launcher';
|
|
9
9
|
import { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
10
10
|
import { ServerConnection } from '@jupyterlab/services';
|
|
11
11
|
import icon from '@datalayer/icons-react/data2/AtomSymbolIconJupyterLab';
|
|
12
12
|
import { requestAPI } from './../JupyterHandlers';
|
|
13
13
|
import { JupyterReactWidget } from './widget';
|
|
14
|
-
import notebookContentFactoryPlugin from './notebook/content/plugin';
|
|
14
|
+
import { contentFactoryPlugin as notebookContentFactoryPlugin } from './notebook/content/plugin';
|
|
15
|
+
import { widgetFactoryPlugin as notebookWidgetFactoryPlugin } from './notebook/editor/plugin';
|
|
15
16
|
import '../../../style/index.css';
|
|
16
17
|
/**
|
|
17
18
|
* The command IDs used by the plugin.
|
|
@@ -97,6 +98,7 @@ const jupyterReactPlugin = {
|
|
|
97
98
|
};
|
|
98
99
|
export default [
|
|
99
100
|
jupyterReactPlugin,
|
|
100
|
-
notebookContentFactoryPlugin
|
|
101
|
+
notebookContentFactoryPlugin,
|
|
102
|
+
notebookWidgetFactoryPlugin,
|
|
101
103
|
];
|
|
102
104
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/jupyter/lab/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/jupyter/lab/plugin.ts"],"names":[],"mappings":"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"}
|