@datalayer/jupyter-react 0.0.10 → 0.0.13
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/JupyterExample.d.ts +1 -0
- package/lib/JupyterExample.js +56 -0
- package/lib/JupyterExample.js.map +1 -0
- package/lib/JupyterLiteExample.d.ts +1 -0
- package/lib/JupyterLiteExample.js +10 -0
- package/lib/JupyterLiteExample.js.map +1 -0
- package/lib/components/cell/Cell.css +9 -3
- package/lib/components/cell/Cell.d.ts +2 -1
- package/lib/components/cell/Cell.js +34 -27
- package/lib/components/cell/Cell.js.map +1 -1
- package/lib/components/cell/CellAdapter.d.ts +2 -1
- package/lib/components/cell/CellAdapter.js +11 -12
- package/lib/components/cell/CellAdapter.js.map +1 -1
- package/lib/components/cell/CellState.d.ts +1 -1
- package/lib/components/cell/CellState.js +11 -11
- package/lib/components/cell/CellState.js.map +1 -1
- package/lib/components/codemirror/CodeMirrorEditor.d.ts +14 -0
- package/lib/components/codemirror/CodeMirrorEditor.js +110 -0
- package/lib/components/codemirror/CodeMirrorEditor.js.map +1 -0
- package/lib/components/codemirror/CodeMirrorTheme.d.ts +3 -0
- package/lib/components/codemirror/CodeMirrorTheme.js +21 -0
- package/lib/components/codemirror/CodeMirrorTheme.js.map +1 -0
- package/lib/components/commands/Commands.d.ts +1 -1
- package/lib/components/commands/Commands.js +1 -1
- package/lib/components/commands/Commands.js.map +1 -1
- package/lib/components/commands/CommandsState.d.ts +1 -1
- package/lib/components/commands/CommandsState.js +7 -7
- package/lib/components/commands/CommandsState.js.map +1 -1
- package/lib/components/console/{ConsoleAdapter.css → Console.css} +4 -0
- package/lib/components/console/Console.d.ts +2 -1
- package/lib/components/console/Console.js +10 -4
- package/lib/components/console/Console.js.map +1 -1
- package/lib/components/console/ConsoleAdapter.d.ts +4 -2
- package/lib/components/console/ConsoleAdapter.js +63 -65
- package/lib/components/console/ConsoleAdapter.js.map +1 -1
- package/lib/components/console/ConsoleState.d.ts +1 -1
- package/lib/components/console/ConsoleState.js +8 -8
- package/lib/components/console/ConsoleState.js.map +1 -1
- package/lib/components/dialog/Dialog.d.ts +1 -1
- package/lib/components/dialog/Dialog.js +1 -1
- package/lib/components/dialog/Dialog.js.map +1 -1
- package/lib/components/filebrowser/FileBrowser.d.ts +1 -1
- package/lib/components/filebrowser/FileBrowser.js +1 -1
- package/lib/components/filebrowser/FileBrowser.js.map +1 -1
- package/lib/components/filebrowser/FileBrowserState.d.ts +1 -1
- package/lib/components/filebrowser/FileBrowserState.js +7 -7
- package/lib/components/filebrowser/FileBrowserState.js.map +1 -1
- package/lib/components/ipywidgets/IpyWidgetsComponent.d.ts +2 -2
- package/lib/components/ipywidgets/IpyWidgetsComponent.js +3 -3
- package/lib/components/ipywidgets/IpyWidgetsComponent.js.map +1 -1
- package/lib/components/notebook/Notebook.css +2 -26
- package/lib/components/notebook/Notebook.d.ts +17 -7
- package/lib/components/notebook/Notebook.js +111 -51
- package/lib/components/notebook/Notebook.js.map +1 -1
- package/lib/components/notebook/NotebookAdapter.d.ts +28 -16
- package/lib/components/notebook/NotebookAdapter.js +177 -70
- package/lib/components/notebook/NotebookAdapter.js.map +1 -1
- package/lib/components/notebook/NotebookCommands.d.ts +10 -5
- package/lib/components/notebook/NotebookCommands.js +228 -217
- package/lib/components/notebook/NotebookCommands.js.map +1 -1
- package/lib/components/notebook/NotebookState.d.ts +38 -18
- package/lib/components/notebook/NotebookState.js +104 -37
- package/lib/components/notebook/NotebookState.js.map +1 -1
- package/lib/components/notebook/cell/metadata/CellMetadataEditor.d.ts +7 -0
- package/lib/components/notebook/cell/metadata/CellMetadataEditor.js +43 -0
- package/lib/components/notebook/cell/metadata/CellMetadataEditor.js.map +1 -0
- package/lib/components/notebook/cell/metadata/NbGraderCells.d.ts +12 -0
- package/lib/components/notebook/cell/metadata/NbGraderCells.js +138 -0
- package/lib/components/notebook/cell/metadata/NbGraderCells.js.map +1 -0
- package/lib/components/notebook/{content/NotebookInputPrompt.d.ts → cell/prompt/InputPrompt.d.ts} +5 -8
- package/lib/components/notebook/{content/NotebookInputPrompt.js → cell/prompt/InputPrompt.js} +10 -8
- package/lib/components/notebook/cell/prompt/InputPrompt.js.map +1 -0
- package/lib/components/notebook/cell/sidebar/CellSidebarDefault.d.ts +3 -0
- package/lib/components/notebook/cell/sidebar/CellSidebarDefault.js +63 -0
- package/lib/components/notebook/cell/sidebar/CellSidebarDefault.js.map +1 -0
- package/lib/components/notebook/cell/sidebar/CellSidebarRun.d.ts +3 -0
- package/lib/components/notebook/cell/sidebar/CellSidebarRun.js +38 -0
- package/lib/components/notebook/cell/sidebar/CellSidebarRun.js.map +1 -0
- package/lib/components/notebook/cell/sidebar/base/CellSidebarContentFactory.d.ts +19 -0
- package/lib/components/notebook/cell/sidebar/base/CellSidebarContentFactory.js +22 -0
- package/lib/components/notebook/cell/sidebar/base/CellSidebarContentFactory.js.map +1 -0
- package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.d.ts +16 -0
- package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.js +25 -0
- package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.js.map +1 -0
- package/lib/components/notebook/{render → marked}/marked.d.ts +0 -0
- package/lib/components/notebook/{render → marked}/marked.js +0 -0
- package/lib/components/notebook/{render → marked}/marked.js.map +1 -1
- package/lib/components/notebook/model/CustomNotebookModelFactory.d.ts +9 -0
- package/lib/components/notebook/model/CustomNotebookModelFactory.js +14 -0
- package/lib/components/notebook/model/CustomNotebookModelFactory.js.map +1 -0
- package/lib/components/outputs/Output.css +8 -0
- package/lib/components/outputs/Output.d.ts +12 -3
- package/lib/components/outputs/Output.js +88 -18
- package/lib/components/outputs/Output.js.map +1 -1
- package/lib/components/outputs/OutputAdapter.d.ts +4 -5
- package/lib/components/outputs/OutputAdapter.js +19 -8
- package/lib/components/outputs/OutputAdapter.js.map +1 -1
- package/lib/components/outputs/OutputState.d.ts +51 -12
- package/lib/components/outputs/OutputState.js +109 -17
- package/lib/components/outputs/OutputState.js.map +1 -1
- package/lib/components/outputs/OutputToolbar.d.ts +12 -0
- package/lib/components/outputs/OutputToolbar.js +42 -0
- package/lib/components/outputs/OutputToolbar.js.map +1 -0
- package/lib/components/settings/Settings.d.ts +1 -1
- package/lib/components/settings/Settings.js +1 -1
- package/lib/components/settings/Settings.js.map +1 -1
- package/lib/components/settings/SettingsState.d.ts +1 -1
- package/lib/components/settings/SettingsState.js +7 -7
- package/lib/components/settings/SettingsState.js.map +1 -1
- package/lib/components/terminal/TerminalState.d.ts +1 -1
- package/lib/components/terminal/TerminalState.js +5 -5
- package/lib/components/terminal/TerminalState.js.map +1 -1
- package/lib/index.d.ts +42 -22
- package/lib/index.js +44 -22
- package/lib/index.js.map +1 -1
- package/lib/jupyter/Jupyter.d.ts +10 -2
- package/lib/jupyter/Jupyter.js +11 -16
- package/lib/jupyter/Jupyter.js.map +1 -1
- package/lib/jupyter/{AuthError.d.ts → JupyterAuthError.d.ts} +2 -2
- package/lib/jupyter/JupyterAuthError.js +8 -0
- package/lib/jupyter/JupyterAuthError.js.map +1 -0
- package/lib/jupyter/JupyterConfig.d.ts +2 -1
- package/lib/jupyter/JupyterConfig.js +35 -11
- package/lib/jupyter/JupyterConfig.js.map +1 -1
- package/lib/jupyter/JupyterContext.d.ts +6 -1
- package/lib/jupyter/JupyterContext.js +49 -15
- package/lib/jupyter/JupyterContext.js.map +1 -1
- package/lib/jupyter/{Handlers.d.ts → JupyterHandlers.d.ts} +1 -1
- package/lib/jupyter/{Handlers.js → JupyterHandlers.js} +4 -4
- package/lib/jupyter/JupyterHandlers.js.map +1 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsAttached.d.ts +1 -1
- package/lib/jupyter/ipywidgets/IPyWidgetsAttached.js +2 -2
- package/lib/jupyter/ipywidgets/IpyWidgetsManager.d.ts +1 -1
- package/lib/jupyter/ipywidgets/IpyWidgetsManager.js +1 -1
- package/lib/jupyter/ipywidgets/IpyWidgetsManager.js.map +1 -1
- package/lib/jupyter/lite/LiteServer.d.ts +2 -0
- package/lib/jupyter/lite/LiteServer.js +87 -0
- package/lib/jupyter/lite/LiteServer.js.map +1 -0
- package/lib/jupyter/lumino/LuminoAttached.d.ts +2 -8
- package/lib/jupyter/lumino/LuminoAttached.js +17 -19
- package/lib/jupyter/lumino/LuminoAttached.js.map +1 -1
- package/lib/jupyter/lumino/LuminoDetached.d.ts +1 -1
- package/lib/jupyter/lumino/LuminoDetached.js +1 -1
- package/lib/jupyter/lumino/LuminoDetached.js.map +1 -1
- package/lib/jupyter/lumino/LuminoNotebook.d.ts +5 -0
- package/lib/jupyter/lumino/LuminoNotebook.js +28 -0
- package/lib/jupyter/lumino/LuminoNotebook.js.map +1 -0
- package/lib/jupyter/services/kernel/Kernel.js +4 -4
- package/lib/jupyter/services/kernel/Kernel.js.map +1 -1
- package/lib/state/State.d.ts +2 -2
- package/lib/state/State.js +4 -4
- package/lib/state/State.js.map +1 -1
- package/lib/state/Store.d.ts +3 -1
- package/lib/state/Store.js +19 -23
- package/lib/state/Store.js.map +1 -1
- package/lib/utils/Ids.d.ts +2 -0
- package/lib/utils/Ids.js +11 -0
- package/lib/utils/Ids.js.map +1 -0
- package/package.json +13 -12
- package/lib/components/editor/CodeMirrorEditor.d.ts +0 -7
- package/lib/components/editor/CodeMirrorEditor.js +0 -62
- package/lib/components/editor/CodeMirrorEditor.js.map +0 -1
- package/lib/components/filebrowser/FileBrowserTree.d.ts +0 -2
- package/lib/components/filebrowser/FileBrowserTree.js +0 -60
- package/lib/components/filebrowser/FileBrowserTree.js.map +0 -1
- package/lib/components/notebook/content/CellSidebar.d.ts +0 -8
- package/lib/components/notebook/content/CellSidebar.js +0 -23
- package/lib/components/notebook/content/CellSidebar.js.map +0 -1
- package/lib/components/notebook/content/ContentFactoryWithSidebar.d.ts +0 -14
- package/lib/components/notebook/content/ContentFactoryWithSidebar.js +0 -20
- package/lib/components/notebook/content/ContentFactoryWithSidebar.js.map +0 -1
- package/lib/components/notebook/content/NotebookInputPrompt.js.map +0 -1
- package/lib/components/outputs/OutputAdapter.css +0 -3
- package/lib/jupyter/AuthError.js +0 -8
- package/lib/jupyter/AuthError.js.map +0 -1
- package/lib/jupyter/Handlers.js.map +0 -1
- package/lib/state/init/Init.d.ts +0 -3
- package/lib/state/init/Init.js +0 -12
- package/lib/state/init/Init.js.map +0 -1
- package/lib/state/init/InitState.d.ts +0 -19
- package/lib/state/init/InitState.js +0 -48
- package/lib/state/init/InitState.js.map +0 -1
|
@@ -1,23 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { ReactPortal } from "react";
|
|
2
|
+
import * as nbformat from "@jupyterlab/nbformat";
|
|
3
|
+
import { INotebookModel } from "@jupyterlab/notebook";
|
|
4
4
|
import { NotebookChange } from "@jupyterlab/shared-models";
|
|
5
5
|
import { Cell, ICellModel } from "@jupyterlab/cells";
|
|
6
6
|
import { Kernel } from "@jupyterlab/services";
|
|
7
|
-
import { IState } from "./../../state/State";
|
|
8
7
|
import NotebookAdapter from "./NotebookAdapter";
|
|
8
|
+
declare type PortalDisplay = {
|
|
9
|
+
portal: ReactPortal;
|
|
10
|
+
pinned: boolean;
|
|
11
|
+
};
|
|
9
12
|
export interface INotebookState {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
model?: INotebookModel;
|
|
14
|
+
activeCell?: Cell<ICellModel>;
|
|
15
|
+
kernelStatus?: Kernel.Status;
|
|
16
|
+
notebookChange?: NotebookChange;
|
|
17
|
+
portals: ReactPortal[];
|
|
14
18
|
adapter?: NotebookAdapter;
|
|
19
|
+
saveRequest?: Date;
|
|
20
|
+
portal?: PortalDisplay;
|
|
15
21
|
}
|
|
16
22
|
export declare const notebookInitialState: INotebookState;
|
|
17
23
|
export declare const selectNotebook: () => INotebookState;
|
|
24
|
+
export declare const selectNotebookModel: () => INotebookModel | undefined;
|
|
25
|
+
export declare const selectActiveCell: () => Cell<ICellModel> | undefined;
|
|
26
|
+
export declare const selectNotebookPortals: () => ReactPortal[];
|
|
27
|
+
export declare const selectSaveRequest: () => Date | undefined;
|
|
28
|
+
export declare const selectNotebookPortal: () => PortalDisplay | undefined;
|
|
18
29
|
export declare enum ActionType {
|
|
30
|
+
RESET = "notebook/RESET",
|
|
19
31
|
UPDATE = "notebook/UPDATE",
|
|
20
32
|
NOTEBOOK_CHANGE = "notebook/NOTEBOOK_CHANGE",
|
|
33
|
+
MODEL_CHANGE = "notebook/MODEL_CHANGE",
|
|
21
34
|
ACTIVE_CELL_CHANGE = "notebook/ACTIVE_CELL_CHANGE",
|
|
22
35
|
KERNEL_STATUS_CHANGE = "notebook/KERNEL_STATUS_CHANGE",
|
|
23
36
|
RUN = "notebook/RUN",
|
|
@@ -28,22 +41,29 @@ export declare enum ActionType {
|
|
|
28
41
|
INSERT_BELOW = "notebook/INSERT_BELOW",
|
|
29
42
|
DELETE = "notebook/DELETE",
|
|
30
43
|
PORTAL = "notebook/PORTAL",
|
|
31
|
-
SET_PORTALS = "notebook/SET_PORTALS"
|
|
44
|
+
SET_PORTALS = "notebook/SET_PORTALS",
|
|
45
|
+
CHANGE_CELL_TYPE = "notebook/CHANGE_CELL_TYPE",
|
|
46
|
+
SET_PORTAL = "notebook/SET_PORTAL"
|
|
32
47
|
}
|
|
33
48
|
export declare const notebookActions: {
|
|
49
|
+
reset: import("typescript-fsa").ActionCreator<void>;
|
|
34
50
|
update: import("typescript-fsa").ActionCreator<Partial<INotebookState>>;
|
|
35
51
|
notebookChange: import("typescript-fsa").ActionCreator<NotebookChange>;
|
|
52
|
+
modelChange: import("typescript-fsa").ActionCreator<INotebookModel>;
|
|
36
53
|
activeCellChange: import("typescript-fsa").ActionCreator<Cell<ICellModel>>;
|
|
37
54
|
kernelStatusChanged: import("typescript-fsa").ActionCreator<Kernel.Status>;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
portal: import("typescript-fsa").ActionCreator<ReactPortal[]>;
|
|
56
|
+
setPortals: import("typescript-fsa").ActionCreator<ReactPortal[]>;
|
|
57
|
+
setPortal: import("typescript-fsa").ActionCreator<PortalDisplay | undefined>;
|
|
58
|
+
save: import("typescript-fsa").AsyncActionCreators<Date | undefined, Date | undefined, {}>;
|
|
59
|
+
run: import("typescript-fsa").AsyncActionCreators<void, void, {}>;
|
|
60
|
+
runAll: import("typescript-fsa").AsyncActionCreators<void, void, {}>;
|
|
61
|
+
interrupt: import("typescript-fsa").AsyncActionCreators<void, void, {}>;
|
|
62
|
+
insertAbove: import("typescript-fsa").AsyncActionCreators<nbformat.CellType, nbformat.CellType, {}>;
|
|
63
|
+
insertBelow: import("typescript-fsa").AsyncActionCreators<nbformat.CellType, nbformat.CellType, {}>;
|
|
46
64
|
delete: import("typescript-fsa").AsyncActionCreators<void, void, {}>;
|
|
65
|
+
changeCellType: import("typescript-fsa").AsyncActionCreators<nbformat.CellType, nbformat.CellType, {}>;
|
|
47
66
|
};
|
|
48
|
-
export declare const notebookEpics:
|
|
67
|
+
export declare const notebookEpics: any;
|
|
49
68
|
export declare const notebookReducer: import("typescript-fsa-reducers").ReducerBuilder<INotebookState, INotebookState>;
|
|
69
|
+
export {};
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { useSelector } from "react-redux";
|
|
2
2
|
import actionCreatorFactory from "typescript-fsa";
|
|
3
3
|
import { combineEpics } from "redux-observable";
|
|
4
|
-
import { ignoreElements, tap } from "rxjs/operators";
|
|
5
|
-
import { ofAction } from "@datalayer/typescript-fsa-redux-observable";
|
|
6
4
|
import { reducerWithInitialState } from "typescript-fsa-reducers";
|
|
5
|
+
import { ignoreElements, map, tap } from "rxjs/operators";
|
|
6
|
+
import { ofAction } from "@datalayer/typescript-fsa-redux-observable";
|
|
7
|
+
import { NotebookActions } from "@jupyterlab/notebook";
|
|
7
8
|
import { cmdIds } from "./NotebookCommands";
|
|
8
9
|
export const notebookInitialState = {
|
|
10
|
+
model: undefined,
|
|
9
11
|
activeCell: undefined,
|
|
10
12
|
kernelStatus: undefined,
|
|
11
13
|
notebookChange: undefined,
|
|
12
14
|
portals: [],
|
|
15
|
+
adapter: undefined,
|
|
16
|
+
saveRequest: undefined,
|
|
13
17
|
};
|
|
14
18
|
/* Selectors */
|
|
15
19
|
export const selectNotebook = () => useSelector((state) => {
|
|
@@ -18,11 +22,43 @@ export const selectNotebook = () => useSelector((state) => {
|
|
|
18
22
|
}
|
|
19
23
|
return notebookInitialState;
|
|
20
24
|
});
|
|
25
|
+
export const selectNotebookModel = () => useSelector((state) => {
|
|
26
|
+
if (state.notebook) {
|
|
27
|
+
return state.notebook.model;
|
|
28
|
+
}
|
|
29
|
+
return notebookInitialState.model;
|
|
30
|
+
});
|
|
31
|
+
export const selectActiveCell = () => useSelector((state) => {
|
|
32
|
+
if (state.notebook) {
|
|
33
|
+
return state.notebook.activeCell;
|
|
34
|
+
}
|
|
35
|
+
return notebookInitialState.activeCell;
|
|
36
|
+
});
|
|
37
|
+
export const selectNotebookPortals = () => useSelector((state) => {
|
|
38
|
+
if (state.notebook) {
|
|
39
|
+
return state.notebook.portals;
|
|
40
|
+
}
|
|
41
|
+
return notebookInitialState.portals;
|
|
42
|
+
});
|
|
43
|
+
export const selectSaveRequest = () => useSelector((state) => {
|
|
44
|
+
if (state.notebook) {
|
|
45
|
+
return state.notebook.saveRequest;
|
|
46
|
+
}
|
|
47
|
+
return notebookInitialState.saveRequest;
|
|
48
|
+
});
|
|
49
|
+
export const selectNotebookPortal = () => useSelector((state) => {
|
|
50
|
+
if (state.notebook) {
|
|
51
|
+
return state.notebook.portal;
|
|
52
|
+
}
|
|
53
|
+
return notebookInitialState.portal;
|
|
54
|
+
});
|
|
21
55
|
/* Actions */
|
|
22
56
|
export var ActionType;
|
|
23
57
|
(function (ActionType) {
|
|
58
|
+
ActionType["RESET"] = "notebook/RESET";
|
|
24
59
|
ActionType["UPDATE"] = "notebook/UPDATE";
|
|
25
60
|
ActionType["NOTEBOOK_CHANGE"] = "notebook/NOTEBOOK_CHANGE";
|
|
61
|
+
ActionType["MODEL_CHANGE"] = "notebook/MODEL_CHANGE";
|
|
26
62
|
ActionType["ACTIVE_CELL_CHANGE"] = "notebook/ACTIVE_CELL_CHANGE";
|
|
27
63
|
ActionType["KERNEL_STATUS_CHANGE"] = "notebook/KERNEL_STATUS_CHANGE";
|
|
28
64
|
ActionType["RUN"] = "notebook/RUN";
|
|
@@ -34,60 +70,85 @@ export var ActionType;
|
|
|
34
70
|
ActionType["DELETE"] = "notebook/DELETE";
|
|
35
71
|
ActionType["PORTAL"] = "notebook/PORTAL";
|
|
36
72
|
ActionType["SET_PORTALS"] = "notebook/SET_PORTALS";
|
|
73
|
+
ActionType["CHANGE_CELL_TYPE"] = "notebook/CHANGE_CELL_TYPE";
|
|
74
|
+
ActionType["SET_PORTAL"] = "notebook/SET_PORTAL";
|
|
37
75
|
})(ActionType || (ActionType = {}));
|
|
38
|
-
const actionCreator = actionCreatorFactory('
|
|
76
|
+
const actionCreator = actionCreatorFactory('jupyterNotebook');
|
|
39
77
|
export const notebookActions = {
|
|
78
|
+
reset: actionCreator(ActionType.RESET),
|
|
40
79
|
update: actionCreator(ActionType.UPDATE),
|
|
41
80
|
notebookChange: actionCreator(ActionType.NOTEBOOK_CHANGE),
|
|
81
|
+
modelChange: actionCreator(ActionType.MODEL_CHANGE),
|
|
42
82
|
activeCellChange: actionCreator(ActionType.ACTIVE_CELL_CHANGE),
|
|
43
83
|
kernelStatusChanged: actionCreator(ActionType.KERNEL_STATUS_CHANGE),
|
|
44
|
-
run: actionCreator(ActionType.RUN),
|
|
45
|
-
save: actionCreator(ActionType.SAVE),
|
|
46
|
-
runAll: actionCreator(ActionType.RUN_ALL),
|
|
47
|
-
interrupt: actionCreator(ActionType.INTERRUPT),
|
|
48
84
|
portal: actionCreator(ActionType.PORTAL),
|
|
49
85
|
setPortals: actionCreator(ActionType.SET_PORTALS),
|
|
86
|
+
setPortal: actionCreator(ActionType.SET_PORTAL),
|
|
87
|
+
save: actionCreator.async(ActionType.SAVE),
|
|
88
|
+
run: actionCreator.async(ActionType.RUN),
|
|
89
|
+
runAll: actionCreator.async(ActionType.RUN_ALL),
|
|
90
|
+
interrupt: actionCreator.async(ActionType.INTERRUPT),
|
|
50
91
|
insertAbove: actionCreator.async(ActionType.INSERT_ABOVE),
|
|
51
92
|
insertBelow: actionCreator.async(ActionType.INSERT_BELOW),
|
|
52
93
|
delete: actionCreator.async(ActionType.DELETE),
|
|
94
|
+
changeCellType: actionCreator.async(ActionType.CHANGE_CELL_TYPE)
|
|
53
95
|
};
|
|
54
96
|
/* Epics */
|
|
97
|
+
const runEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.run.started), tap(action => {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
(_b = (_a = state$.value.notebook) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.commands.execute(cmdIds.run);
|
|
100
|
+
}), ignoreElements());
|
|
101
|
+
const runAllEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.runAll.started), tap(action => {
|
|
102
|
+
var _a, _b;
|
|
103
|
+
(_b = (_a = state$.value.notebook) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.commands.execute(cmdIds.runAll);
|
|
104
|
+
}), ignoreElements());
|
|
105
|
+
const interruptEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.interrupt.started), tap(action => {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
(_b = (_a = state$.value.notebook) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.commands.execute(cmdIds.interrupt);
|
|
108
|
+
}), ignoreElements());
|
|
55
109
|
const insertAboveEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.insertAbove.started), tap(action => {
|
|
56
|
-
|
|
57
|
-
|
|
110
|
+
state$.value.notebook.adapter.setDefaultCellType(action.payload);
|
|
111
|
+
state$.value.notebook.adapter.commands.execute(cmdIds.insertAbove);
|
|
58
112
|
}), ignoreElements());
|
|
59
113
|
const insertBelowEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.insertBelow.started), tap(action => {
|
|
60
|
-
var _a;
|
|
61
|
-
|
|
114
|
+
var _a, _b;
|
|
115
|
+
state$.value.notebook.adapter.setDefaultCellType(action.payload);
|
|
116
|
+
(_b = (_a = state$.value.notebook) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.commands.execute(cmdIds.insertBelow);
|
|
62
117
|
}), ignoreElements());
|
|
63
118
|
const deleteEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.delete.started), tap(action => {
|
|
64
|
-
var _a;
|
|
65
|
-
(_a = state$.value.notebook
|
|
119
|
+
var _a, _b;
|
|
120
|
+
(_b = (_a = state$.value.notebook) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.commands.execute(cmdIds.deleteCells);
|
|
121
|
+
}), ignoreElements());
|
|
122
|
+
const changeCellTypeEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.changeCellType.started), tap(action => {
|
|
123
|
+
var _a, _b, _c;
|
|
124
|
+
// state$.value.notebook?.adapter?.changeCellType(action.payload);
|
|
125
|
+
// state$.value.notebook?.adapter?.commands.execute(cmdIds.toCode);
|
|
126
|
+
NotebookActions.changeCellType((_c = (_b = (_a = state$.value.notebook) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.notebookPanel) === null || _c === void 0 ? void 0 : _c.content, action.payload);
|
|
66
127
|
}), ignoreElements());
|
|
67
|
-
|
|
128
|
+
const saveEpic = (action$, state$) => action$.pipe(ofAction(notebookActions.save.started), map(action => {
|
|
129
|
+
var _a, _b;
|
|
130
|
+
if (action.payload === undefined) {
|
|
131
|
+
(_b = (_a = state$.value.notebook) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.commands.execute(cmdIds.save);
|
|
132
|
+
}
|
|
133
|
+
return notebookActions.save.done({
|
|
134
|
+
params: action.payload,
|
|
135
|
+
result: action.payload,
|
|
136
|
+
});
|
|
137
|
+
}));
|
|
138
|
+
export const notebookEpics = combineEpics(runEpic, runAllEpic, interruptEpic, insertAboveEpic, insertBelowEpic, deleteEpic, changeCellTypeEpic, saveEpic);
|
|
68
139
|
/* Reducers */
|
|
69
140
|
export const notebookReducer = reducerWithInitialState(notebookInitialState)
|
|
70
|
-
.case(notebookActions.
|
|
71
|
-
return
|
|
72
|
-
})
|
|
73
|
-
.case(notebookActions.run, (state, _) => {
|
|
74
|
-
state.adapter && state.adapter.commands.execute(cmdIds.run);
|
|
75
|
-
return state;
|
|
76
|
-
})
|
|
77
|
-
.case(notebookActions.runAll, (state, run) => {
|
|
78
|
-
state.adapter && state.adapter.commands.execute(cmdIds.runAll);
|
|
79
|
-
return state;
|
|
80
|
-
})
|
|
81
|
-
.case(notebookActions.interrupt, (state, _) => {
|
|
82
|
-
state.adapter && state.adapter.commands.execute(cmdIds.interrupt);
|
|
83
|
-
return state;
|
|
141
|
+
.case(notebookActions.reset, (state, _) => {
|
|
142
|
+
return notebookInitialState;
|
|
84
143
|
})
|
|
85
|
-
.case(notebookActions.
|
|
86
|
-
|
|
87
|
-
return state;
|
|
144
|
+
.case(notebookActions.update, (state, partialState) => {
|
|
145
|
+
return Object.assign(Object.assign({}, state), partialState);
|
|
88
146
|
})
|
|
89
147
|
.case(notebookActions.activeCellChange, (state, activeCell) => {
|
|
90
148
|
return Object.assign(Object.assign({}, state), { activeCell });
|
|
149
|
+
})
|
|
150
|
+
.case(notebookActions.modelChange, (state, model) => {
|
|
151
|
+
return Object.assign(Object.assign({}, state), { model });
|
|
91
152
|
})
|
|
92
153
|
.case(notebookActions.notebookChange, (state, notebookChange) => {
|
|
93
154
|
return Object.assign(Object.assign({}, state), { notebookChange });
|
|
@@ -102,16 +163,22 @@ export const notebookReducer = reducerWithInitialState(notebookInitialState)
|
|
|
102
163
|
.case(notebookActions.setPortals, (state, portals) => {
|
|
103
164
|
return Object.assign(Object.assign({}, state), { portals });
|
|
104
165
|
})
|
|
105
|
-
.case(notebookActions.
|
|
106
|
-
|
|
166
|
+
.case(notebookActions.setPortal, (state, portal) => {
|
|
167
|
+
return Object.assign(Object.assign({}, state), { portal });
|
|
168
|
+
})
|
|
169
|
+
.case(notebookActions.save.done, (state, payload) => {
|
|
170
|
+
return Object.assign(Object.assign({}, state), { saveRequest: payload.result });
|
|
171
|
+
})
|
|
172
|
+
.case(notebookActions.insertAbove.done, (state, payload) => {
|
|
173
|
+
return state;
|
|
174
|
+
})
|
|
175
|
+
.case(notebookActions.insertBelow.done, (state, payload) => {
|
|
107
176
|
return state;
|
|
108
177
|
})
|
|
109
|
-
.case(notebookActions.
|
|
110
|
-
// state.adapter && state.adapter.commands.execute(cmdIds.insertBelow);
|
|
178
|
+
.case(notebookActions.changeCellType.done, (state, payload) => {
|
|
111
179
|
return state;
|
|
112
180
|
})
|
|
113
|
-
.case(notebookActions.
|
|
114
|
-
// state.adapter && state.adapter.commands.execute(cmdIds.deleteCells);
|
|
181
|
+
.case(notebookActions.run.done, (state, _) => {
|
|
115
182
|
return state;
|
|
116
183
|
});
|
|
117
184
|
//# sourceMappingURL=NotebookState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotebookState.js","sourceRoot":"","sources":["../../../src/components/notebook/NotebookState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotebookState.js","sourceRoot":"","sources":["../../../src/components/notebook/NotebookState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Cell, ICellModel } from "@jupyterlab/cells";
|
|
2
|
+
declare type Props = {
|
|
3
|
+
cell: Cell<ICellModel>;
|
|
4
|
+
nbgrader: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const CellMetadataEditor: (props: Props) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default CellMetadataEditor;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { ActionList, TextInput } from "@primer/react";
|
|
3
|
+
import { CheckIcon } from "@primer/octicons-react";
|
|
4
|
+
import { selectNotebook } from '../../NotebookState';
|
|
5
|
+
import NbGraderType, { getNbGraderType, setCellGradeType } from './NbGraderCells';
|
|
6
|
+
const handleGradeIdChange = (cell, gradeId) => {
|
|
7
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
8
|
+
cell.model.metadata.set("nbgrader", Object.assign(Object.assign({}, nbgrader), { grade_id: gradeId }));
|
|
9
|
+
};
|
|
10
|
+
const handlePointsChange = (cell, points) => {
|
|
11
|
+
var p = +points;
|
|
12
|
+
if (!isNaN(p)) {
|
|
13
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
14
|
+
cell.model.metadata.set("nbgrader", Object.assign(Object.assign({}, nbgrader), { points: p }));
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export const CellMetadataEditor = (props) => {
|
|
18
|
+
var _a;
|
|
19
|
+
const { cell, nbgrader } = props;
|
|
20
|
+
if (!cell || !cell.model) {
|
|
21
|
+
return _jsx(_Fragment, {}, void 0);
|
|
22
|
+
}
|
|
23
|
+
const cellGradeType = getNbGraderType(cell);
|
|
24
|
+
// TODO Do not remove for now this selectNotebook, otherwise this component will not refresh.
|
|
25
|
+
// TODO Better handle this case with a local state.
|
|
26
|
+
selectNotebook();
|
|
27
|
+
const nbg = (_a = cell.model.metadata) === null || _a === void 0 ? void 0 : _a.get('nbgrader');
|
|
28
|
+
return (_jsx(ActionList, Object.assign({ showDividers: true }, { children: nbgrader &&
|
|
29
|
+
_jsxs(_Fragment, { children: [_jsx(ActionList.Divider, {}, void 0),
|
|
30
|
+
_jsxs(ActionList.Group, Object.assign({ title: "NbGrader cell type", variant: "subtle" }, { children: [_jsxs(ActionList.Item, Object.assign({ onSelect: e => setCellGradeType(cell, NbGraderType.NotGraded) }, { children: [cellGradeType === NbGraderType.NotGraded && _jsx(ActionList.LeadingVisual, { children: _jsx(CheckIcon, {}, void 0) }, void 0), "None", _jsx(ActionList.Description, Object.assign({ variant: "block" }, { children: "Not a grader cell." }), void 0)] }), void 0),
|
|
31
|
+
_jsxs(ActionList.Item, Object.assign({ onSelect: e => setCellGradeType(cell, NbGraderType.AutogradedAnswer) }, { children: [cellGradeType === NbGraderType.AutogradedAnswer && _jsx(ActionList.LeadingVisual, { children: _jsx(CheckIcon, {}, void 0) }, void 0), "Autograded answer", _jsx(ActionList.Description, Object.assign({ variant: "block" }, { children: "An autograded answer cell." }), void 0)] }), void 0),
|
|
32
|
+
_jsxs(ActionList.Item, Object.assign({ role: "listitem", onClick: e => setCellGradeType(cell, NbGraderType.AutogradedTest) }, { children: [cellGradeType === NbGraderType.AutogradedTest && _jsx(ActionList.LeadingVisual, { children: _jsx(CheckIcon, {}, void 0) }, void 0), "Autograded test", _jsx(ActionList.Description, Object.assign({ variant: "block" }, { children: "An autograded test cell." }), void 0)] }), void 0),
|
|
33
|
+
_jsxs(ActionList.Item, Object.assign({ onSelect: e => setCellGradeType(cell, NbGraderType.ManuallyGradedTask) }, { children: [cellGradeType === NbGraderType.ManuallyGradedTask && _jsx(ActionList.LeadingVisual, { children: _jsx(CheckIcon, {}, void 0) }, void 0), "Manually graded task", _jsx(ActionList.Description, Object.assign({ variant: "block" }, { children: "A manually graded task cell." }), void 0)] }), void 0),
|
|
34
|
+
_jsxs(ActionList.Item, Object.assign({ onSelect: e => setCellGradeType(cell, NbGraderType.ManuallyGradedAnswer) }, { children: [cellGradeType === NbGraderType.ManuallyGradedAnswer && _jsx(ActionList.LeadingVisual, { children: _jsx(CheckIcon, {}, void 0) }, void 0), "Manually graded answer", _jsx(ActionList.Description, Object.assign({ variant: "block" }, { children: "A manually graded answer cell." }), void 0)] }), void 0),
|
|
35
|
+
_jsxs(ActionList.Item, Object.assign({ onSelect: e => setCellGradeType(cell, NbGraderType.ReadonlyGraded) }, { children: [cellGradeType === NbGraderType.ReadonlyGraded && _jsx(ActionList.LeadingVisual, { children: _jsx(CheckIcon, {}, void 0) }, void 0), "Readonly", _jsx(ActionList.Description, Object.assign({ variant: "block" }, { children: "A readonly grader cell." }), void 0)] }), void 0)] }), void 0),
|
|
36
|
+
cellGradeType !== NbGraderType.NotGraded &&
|
|
37
|
+
_jsx(_Fragment, { children: _jsxs(ActionList.Group, Object.assign({ title: "NbGrader metadata", variant: "subtle" }, { children: [_jsxs(ActionList.Item, { children: ["Grade ID:", nbg &&
|
|
38
|
+
_jsx(TextInput, { block: true, value: nbg.grade_id, onChange: e => { e.preventDefault(); handleGradeIdChange(cell, e.target.value); } }, void 0)] }, void 0),
|
|
39
|
+
_jsxs(ActionList.Item, { children: ["Points:", nbg &&
|
|
40
|
+
_jsx(TextInput, { block: true, value: nbg.points, onChange: e => { e.preventDefault(); handlePointsChange(cell, e.target.value); } }, void 0)] }, void 0)] }), void 0) }, void 0)] }, void 0) }), void 0));
|
|
41
|
+
};
|
|
42
|
+
export default CellMetadataEditor;
|
|
43
|
+
//# sourceMappingURL=CellMetadataEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellMetadataEditor.js","sourceRoot":"","sources":["../../../../../src/components/notebook/cell/metadata/CellMetadataEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Cell, ICellModel } from "@jupyterlab/cells";
|
|
2
|
+
export declare enum NbGraderType {
|
|
3
|
+
NotGraded = 0,
|
|
4
|
+
AutogradedAnswer = 1,
|
|
5
|
+
AutogradedTest = 2,
|
|
6
|
+
ManuallyGradedTask = 3,
|
|
7
|
+
ManuallyGradedAnswer = 4,
|
|
8
|
+
ReadonlyGraded = 5
|
|
9
|
+
}
|
|
10
|
+
export declare const getNbGraderType: (cell: Cell<ICellModel>) => NbGraderType;
|
|
11
|
+
export declare const setCellGradeType: (cell: Cell<ICellModel>, cellGradeType: NbGraderType) => void;
|
|
12
|
+
export default NbGraderType;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/*
|
|
2
|
+
// Autograded answer (only for code cells) { grade: false, solution: true, locked: false }
|
|
3
|
+
{
|
|
4
|
+
"nbgrader": {
|
|
5
|
+
"grade_id": "squares",
|
|
6
|
+
"schema_version": 3,
|
|
7
|
+
"grade": false,
|
|
8
|
+
"solution": true,
|
|
9
|
+
"locked": false
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
// Autograded test (only for code cells) { grade: true, solution: false, locked: false, points: ... }
|
|
13
|
+
{
|
|
14
|
+
"nbgrader": {
|
|
15
|
+
"grade_id": "correct_squares",
|
|
16
|
+
"schema_version": 3,
|
|
17
|
+
"grade": true,
|
|
18
|
+
"solution": false,
|
|
19
|
+
"locked": false,
|
|
20
|
+
"points": 1
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Manually graded task { grade: false, solution: false, locked: true, task: true, points: ... }
|
|
24
|
+
{
|
|
25
|
+
"nbgrader": {
|
|
26
|
+
"grade_id": "part-a",
|
|
27
|
+
"schema_version": 3,
|
|
28
|
+
"grade": false,
|
|
29
|
+
"solution": false,
|
|
30
|
+
"locked": true,
|
|
31
|
+
"task": true,
|
|
32
|
+
"points": 0
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Manually graded answer { grade: true, solution: true, locked: false, points: ... }
|
|
36
|
+
{
|
|
37
|
+
"nbgrader": {
|
|
38
|
+
"grade_id": "sum_of_squares_equation",
|
|
39
|
+
"schema_version": 3,
|
|
40
|
+
"grade": true,
|
|
41
|
+
"solution": true,
|
|
42
|
+
"locked": false,
|
|
43
|
+
"points": 1
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Readonly { grade: false, solution: false, solution: false, locked: true, task: false }
|
|
47
|
+
{
|
|
48
|
+
"nbgrader": {
|
|
49
|
+
"grade_id": "squares",
|
|
50
|
+
"schema_version": 3,
|
|
51
|
+
"grade": false,
|
|
52
|
+
"solution": false,
|
|
53
|
+
"locked": true,
|
|
54
|
+
"task": false
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
*/
|
|
58
|
+
export var NbGraderType;
|
|
59
|
+
(function (NbGraderType) {
|
|
60
|
+
NbGraderType[NbGraderType["NotGraded"] = 0] = "NotGraded";
|
|
61
|
+
NbGraderType[NbGraderType["AutogradedAnswer"] = 1] = "AutogradedAnswer";
|
|
62
|
+
NbGraderType[NbGraderType["AutogradedTest"] = 2] = "AutogradedTest";
|
|
63
|
+
NbGraderType[NbGraderType["ManuallyGradedTask"] = 3] = "ManuallyGradedTask";
|
|
64
|
+
NbGraderType[NbGraderType["ManuallyGradedAnswer"] = 4] = "ManuallyGradedAnswer";
|
|
65
|
+
NbGraderType[NbGraderType["ReadonlyGraded"] = 5] = "ReadonlyGraded";
|
|
66
|
+
})(NbGraderType || (NbGraderType = {}));
|
|
67
|
+
export const getNbGraderType = (cell) => {
|
|
68
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
69
|
+
if (!nbgrader) {
|
|
70
|
+
return NbGraderType.NotGraded;
|
|
71
|
+
}
|
|
72
|
+
const grade = nbgrader.grade;
|
|
73
|
+
const solution = nbgrader.solution;
|
|
74
|
+
const locked = nbgrader.locked;
|
|
75
|
+
const task = nbgrader.task;
|
|
76
|
+
// Autograded answer (only for code cells) { grade: false, solution: true, locked: false }
|
|
77
|
+
if (!grade && solution && !locked) {
|
|
78
|
+
return NbGraderType.AutogradedAnswer;
|
|
79
|
+
}
|
|
80
|
+
// Autograded test (only for code cells) { grade: true, solution: false, locked: false, points: ... }
|
|
81
|
+
if (grade && !solution && !locked) {
|
|
82
|
+
return NbGraderType.AutogradedTest;
|
|
83
|
+
}
|
|
84
|
+
// Manually graded task { grade: false, solution: false, locked: true, task: true, points: ... }
|
|
85
|
+
if (!grade && !solution && locked && task) {
|
|
86
|
+
return NbGraderType.ManuallyGradedTask;
|
|
87
|
+
}
|
|
88
|
+
// Manually graded answer { grade: true, solution: true, locked: false, points: ... }
|
|
89
|
+
if (grade && solution && !locked) {
|
|
90
|
+
return NbGraderType.ManuallyGradedAnswer;
|
|
91
|
+
}
|
|
92
|
+
// Readonly { grade: false, solution: false, solution: false, locked: true, task: false }
|
|
93
|
+
if (!grade && !solution && locked && !task) {
|
|
94
|
+
return NbGraderType.ReadonlyGraded;
|
|
95
|
+
}
|
|
96
|
+
return NbGraderType.NotGraded;
|
|
97
|
+
};
|
|
98
|
+
export const setCellGradeType = (cell, cellGradeType) => {
|
|
99
|
+
switch (cellGradeType) {
|
|
100
|
+
case NbGraderType.NotGraded: {
|
|
101
|
+
cell.model.metadata.delete("nbgrader");
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
case NbGraderType.AutogradedAnswer: {
|
|
105
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
106
|
+
cell.model.metadata.set("nbgrader", Object.assign(Object.assign({}, nbgrader), { "grade": false, "solution": true, "locked": false, "task": false }));
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case NbGraderType.AutogradedTest: {
|
|
110
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
111
|
+
cell.model.metadata.set("nbgrader", Object.assign(Object.assign({}, nbgrader), {
|
|
112
|
+
// "points": 1,
|
|
113
|
+
"grade": true, "solution": false, "locked": false, "task": false }));
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
case NbGraderType.ManuallyGradedAnswer: {
|
|
117
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
118
|
+
cell.model.metadata.set("nbgrader", Object.assign(Object.assign({}, nbgrader), {
|
|
119
|
+
// "points": 1,
|
|
120
|
+
"grade": true, "solution": true, "locked": false, "task": false }));
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case NbGraderType.ManuallyGradedTask: {
|
|
124
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
125
|
+
cell.model.metadata.set("nbgrader", Object.assign(Object.assign({}, nbgrader), {
|
|
126
|
+
// "points": 1,
|
|
127
|
+
"grade": false, "solution": false, "locked": true, "task": true }));
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case NbGraderType.ReadonlyGraded: {
|
|
131
|
+
const nbgrader = cell.model.metadata.get("nbgrader");
|
|
132
|
+
cell.model.metadata.set("nbgrader", Object.assign(Object.assign({}, nbgrader), { "grade": false, "solution": false, "locked": true, "task": false }));
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
export default NbGraderType;
|
|
138
|
+
//# sourceMappingURL=NbGraderCells.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NbGraderCells.js","sourceRoot":"","sources":["../../../../../src/components/notebook/cell/metadata/NbGraderCells.tsx"],"names":[],"mappings":"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"}
|
package/lib/components/notebook/{content/NotebookInputPrompt.d.ts → cell/prompt/InputPrompt.d.ts}
RENAMED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { ReactWidget } from '@jupyterlab/apputils';
|
|
2
2
|
import { IInputPrompt } from '@jupyterlab/cells';
|
|
3
|
-
export default function Countdown(props: {
|
|
4
|
-
count: number;
|
|
5
|
-
}): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
6
3
|
/**
|
|
7
4
|
* The custom input prompt implementation.
|
|
8
5
|
*/
|
|
9
|
-
export declare class
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
6
|
+
export declare class InputPrompt extends ReactWidget implements IInputPrompt {
|
|
7
|
+
private _executionCount;
|
|
8
|
+
private state;
|
|
13
9
|
constructor();
|
|
10
|
+
/** @override */
|
|
14
11
|
render(): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
15
12
|
/**
|
|
16
13
|
* The execution count for the prompt.
|
|
17
14
|
*/
|
|
18
15
|
get executionCount(): string | null;
|
|
19
16
|
set executionCount(value: string | null);
|
|
20
|
-
private _executionCount;
|
|
21
17
|
}
|
|
18
|
+
export default InputPrompt;
|
package/lib/components/notebook/{content/NotebookInputPrompt.js → cell/prompt/InputPrompt.js}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect, useRef } from 'react';
|
|
3
3
|
import { ReactWidget } from '@jupyterlab/apputils';
|
|
4
4
|
/**
|
|
5
|
-
* The class name added to
|
|
5
|
+
* The class name added to InputPrompt.
|
|
6
6
|
*/
|
|
7
7
|
const INPUT_PROMPT_CLASS = 'jp-InputPrompt';
|
|
8
|
-
|
|
8
|
+
const Countdown = (props) => {
|
|
9
9
|
const [count, setCount] = useState(props.count);
|
|
10
10
|
let intervalRef = useRef();
|
|
11
11
|
const decreaseNum = () => setCount((prev) => prev - 1);
|
|
@@ -16,23 +16,24 @@ export default function Countdown(props) {
|
|
|
16
16
|
intervalRef.current = setInterval(decreaseNum, 1000);
|
|
17
17
|
return () => clearInterval(intervalRef.current);
|
|
18
18
|
}, []);
|
|
19
|
-
return (_jsx(
|
|
20
|
-
}
|
|
19
|
+
return (_jsx(_Fragment, { children: count }, void 0));
|
|
20
|
+
};
|
|
21
21
|
/**
|
|
22
22
|
* The custom input prompt implementation.
|
|
23
23
|
*/
|
|
24
|
-
export class
|
|
24
|
+
export class InputPrompt extends ReactWidget {
|
|
25
25
|
/*
|
|
26
26
|
* Create an output prompt widget.
|
|
27
27
|
*/
|
|
28
28
|
constructor() {
|
|
29
29
|
super();
|
|
30
|
+
this._executionCount = null;
|
|
30
31
|
this.state = {
|
|
31
32
|
count: 100
|
|
32
33
|
};
|
|
33
|
-
this._executionCount = null;
|
|
34
34
|
this.addClass(INPUT_PROMPT_CLASS);
|
|
35
35
|
}
|
|
36
|
+
/** @override */
|
|
36
37
|
render() {
|
|
37
38
|
return _jsx(Countdown, { count: this.state.count }, void 0);
|
|
38
39
|
}
|
|
@@ -64,4 +65,5 @@ export class NotebookInputPrompt extends ReactWidget {
|
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
|
|
68
|
+
export default InputPrompt;
|
|
69
|
+
//# sourceMappingURL=InputPrompt.js.map
|