@datalayer/jupyter-react 0.0.8 → 0.0.11
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 +12 -3
- package/lib/components/cell/Cell.d.ts +16 -0
- package/lib/components/cell/Cell.js +56 -0
- package/lib/components/cell/Cell.js.map +1 -0
- package/lib/components/cell/CellAdapter.d.ts +15 -0
- package/lib/components/cell/CellAdapter.js +133 -0
- package/lib/components/cell/CellAdapter.js.map +1 -0
- package/lib/components/cell/CellCommands.d.ts +6 -0
- package/lib/components/cell/CellCommands.js +38 -0
- package/lib/components/cell/CellCommands.js.map +1 -0
- package/lib/components/cell/CellState.d.ts +22 -0
- package/lib/components/cell/CellState.js +46 -0
- package/lib/components/cell/CellState.js.map +1 -0
- 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 +2 -0
- package/lib/components/commands/Commands.js +9 -0
- package/lib/components/commands/Commands.js.map +1 -0
- package/lib/components/commands/CommandsAdapter.d.ts +9 -0
- package/lib/components/commands/CommandsAdapter.js +36 -0
- package/lib/components/commands/CommandsAdapter.js.map +1 -0
- package/lib/components/commands/CommandsState.d.ts +15 -0
- package/lib/components/commands/CommandsState.js +30 -0
- package/lib/components/commands/CommandsState.js.map +1 -0
- package/lib/components/console/{ConsoleAdapter.css → Console.css} +4 -0
- package/lib/components/console/Console.d.ts +3 -0
- package/lib/components/console/Console.js +15 -0
- package/lib/components/console/Console.js.map +1 -0
- package/lib/components/console/ConsoleAdapter.d.ts +13 -0
- package/lib/components/console/ConsoleAdapter.js +84 -0
- package/lib/components/console/ConsoleAdapter.js.map +1 -0
- package/lib/components/console/ConsoleState.d.ts +15 -0
- package/lib/components/console/ConsoleState.js +30 -0
- package/lib/components/console/ConsoleState.js.map +1 -0
- package/lib/components/dialog/Dialog.d.ts +2 -0
- package/lib/components/dialog/Dialog.js +13 -0
- package/lib/components/dialog/Dialog.js.map +1 -0
- package/lib/components/dialog/DialogAdapter.d.ts +10 -0
- package/lib/components/dialog/DialogAdapter.js +19 -0
- package/lib/components/dialog/DialogAdapter.js.map +1 -0
- package/lib/components/filebrowser/FileBrowser.d.ts +2 -0
- package/lib/components/filebrowser/FileBrowser.js +9 -0
- package/lib/components/filebrowser/FileBrowser.js.map +1 -0
- package/lib/components/filebrowser/FileBrowserAdapter.d.ts +13 -0
- package/lib/components/filebrowser/FileBrowserAdapter.js +267 -0
- package/lib/components/filebrowser/FileBrowserAdapter.js.map +1 -0
- package/lib/components/filebrowser/FileBrowserState.d.ts +15 -0
- package/lib/components/filebrowser/FileBrowserState.js +30 -0
- package/lib/components/filebrowser/FileBrowserState.js.map +1 -0
- package/lib/components/ipywidgets/IpyWidgetsComponent.d.ts +5 -0
- package/lib/components/ipywidgets/IpyWidgetsComponent.js +9 -0
- package/lib/components/ipywidgets/IpyWidgetsComponent.js.map +1 -0
- package/lib/components/notebook/Notebook.css +2 -26
- package/lib/components/notebook/Notebook.d.ts +36 -0
- package/lib/components/notebook/Notebook.js +138 -0
- package/lib/components/notebook/Notebook.js.map +1 -0
- package/lib/components/notebook/NotebookAdapter.d.ts +38 -0
- package/lib/components/notebook/NotebookAdapter.js +301 -0
- package/lib/components/notebook/NotebookAdapter.js.map +1 -0
- package/lib/components/notebook/NotebookCommands.d.ts +43 -0
- package/lib/components/notebook/NotebookCommands.js +380 -0
- package/lib/components/notebook/NotebookCommands.js.map +1 -0
- package/lib/components/notebook/NotebookState.d.ts +69 -0
- package/lib/components/notebook/NotebookState.js +184 -0
- package/lib/components/notebook/NotebookState.js.map +1 -0
- 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/cell/prompt/InputPrompt.d.ts +18 -0
- package/lib/components/notebook/cell/prompt/InputPrompt.js +69 -0
- 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/marked/marked.d.ts +3 -0
- package/lib/components/notebook/marked/marked.js +72 -0
- package/lib/components/notebook/marked/marked.js.map +1 -0
- 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 +25 -0
- package/lib/components/outputs/Output.js +126 -0
- package/lib/components/outputs/Output.js.map +1 -0
- package/lib/components/outputs/OutputAdapter.d.ts +19 -0
- package/lib/components/outputs/OutputAdapter.js +81 -0
- package/lib/components/outputs/OutputAdapter.js.map +1 -0
- package/lib/components/outputs/OutputState.d.ts +54 -0
- package/lib/components/outputs/OutputState.js +122 -0
- package/lib/components/outputs/OutputState.js.map +1 -0
- 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 +2 -0
- package/lib/components/settings/Settings.js +9 -0
- package/lib/components/settings/Settings.js.map +1 -0
- package/lib/components/settings/SettingsAdapter.d.ts +10 -0
- package/lib/components/settings/SettingsAdapter.js +16 -0
- package/lib/components/settings/SettingsAdapter.js.map +1 -0
- package/lib/components/settings/SettingsState.d.ts +15 -0
- package/lib/components/settings/SettingsState.js +30 -0
- package/lib/components/settings/SettingsState.js.map +1 -0
- package/lib/components/terminal/Terminal.d.ts +2 -0
- package/lib/components/terminal/Terminal.js +16 -0
- package/lib/components/terminal/Terminal.js.map +1 -0
- package/lib/components/terminal/TerminalAdapter.d.ts +13 -0
- package/lib/components/terminal/TerminalAdapter.js +28 -0
- package/lib/components/terminal/TerminalAdapter.js.map +1 -0
- package/lib/components/terminal/TerminalState.d.ts +15 -0
- package/lib/components/terminal/TerminalState.js +38 -0
- package/lib/components/terminal/TerminalState.js.map +1 -0
- package/lib/index.d.ts +43 -0
- package/lib/index.js +58 -0
- package/lib/index.js.map +1 -0
- package/lib/jupyter/Jupyter.d.ts +31 -0
- package/lib/jupyter/Jupyter.js +30 -0
- package/lib/jupyter/Jupyter.js.map +1 -0
- package/lib/jupyter/JupyterAuthError.d.ts +7 -0
- package/lib/jupyter/JupyterAuthError.js +8 -0
- package/lib/jupyter/JupyterAuthError.js.map +1 -0
- package/lib/jupyter/JupyterConfig.d.ts +38 -0
- package/lib/jupyter/JupyterConfig.js +83 -0
- package/lib/jupyter/JupyterConfig.js.map +1 -0
- package/lib/jupyter/JupyterContext.d.ts +39 -0
- package/lib/jupyter/JupyterContext.js +89 -0
- package/lib/jupyter/JupyterContext.js.map +1 -0
- package/lib/jupyter/JupyterHandlers.d.ts +8 -0
- package/lib/jupyter/JupyterHandlers.js +50 -0
- package/lib/jupyter/JupyterHandlers.js.map +1 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsAttached.d.ts +8 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsAttached.js +15 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsAttached.js.map +1 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsClassicManager.d.ts +18 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsClassicManager.js +76 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsClassicManager.js.map +1 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsJupyterLabPlugin.d.ts +15 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsJupyterLabPlugin.js +178 -0
- package/lib/jupyter/ipywidgets/IPyWidgetsJupyterLabPlugin.js.map +1 -0
- package/lib/jupyter/ipywidgets/IpyWidgetsManager.d.ts +11 -0
- package/lib/jupyter/ipywidgets/IpyWidgetsManager.js +71 -0
- package/lib/jupyter/ipywidgets/IpyWidgetsManager.js.map +1 -0
- package/lib/jupyter/ipywidgets/plotly/Figure.d.ts +587 -0
- package/lib/jupyter/ipywidgets/plotly/Figure.js +1697 -0
- package/lib/jupyter/ipywidgets/plotly/Figure.js.map +1 -0
- package/lib/jupyter/ipywidgets/plotly/JupyterlabPlugin.d.ts +5 -0
- package/lib/jupyter/ipywidgets/plotly/JupyterlabPlugin.js +12 -0
- package/lib/jupyter/ipywidgets/plotly/JupyterlabPlugin.js.map +1 -0
- package/lib/jupyter/ipywidgets/plotly/Version.d.ts +8 -0
- package/lib/jupyter/ipywidgets/plotly/Version.js +16 -0
- package/lib/jupyter/ipywidgets/plotly/Version.js.map +1 -0
- package/lib/jupyter/ipywidgets/plotly/index.d.ts +2 -0
- package/lib/jupyter/ipywidgets/plotly/index.js +4 -0
- package/lib/jupyter/ipywidgets/plotly/index.js.map +1 -0
- 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 +3 -0
- package/lib/jupyter/lumino/LuminoAttached.js +21 -0
- package/lib/jupyter/lumino/LuminoAttached.js.map +1 -0
- package/lib/jupyter/lumino/LuminoDetached.d.ts +9 -0
- package/lib/jupyter/lumino/LuminoDetached.js +13 -0
- package/lib/jupyter/lumino/LuminoDetached.js.map +1 -0
- 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/lumino/LuminoObservable.d.ts +6 -0
- package/lib/jupyter/lumino/LuminoObservable.js +16 -0
- package/lib/jupyter/lumino/LuminoObservable.js.map +1 -0
- package/lib/jupyter/lumino/LuminoReactPortal.d.ts +180 -0
- package/lib/jupyter/lumino/LuminoReactPortal.js +195 -0
- package/lib/jupyter/lumino/LuminoReactPortal.js.map +1 -0
- package/lib/jupyter/lumino/LuminoRedux.d.ts +8 -0
- package/lib/jupyter/lumino/LuminoRedux.js +2 -0
- package/lib/jupyter/lumino/LuminoRedux.js.map +1 -0
- package/lib/jupyter/services/Services.d.ts +16 -0
- package/lib/jupyter/services/Services.js +41 -0
- package/lib/jupyter/services/Services.js.map +1 -0
- package/lib/jupyter/services/kernel/Kernel.d.ts +15 -0
- package/lib/jupyter/services/kernel/Kernel.js +65 -0
- package/lib/jupyter/services/kernel/Kernel.js.map +1 -0
- package/lib/jupyter/services/kernel/KernelModel.d.ts +18 -0
- package/lib/jupyter/services/kernel/KernelModel.js +52 -0
- package/lib/jupyter/services/kernel/KernelModel.js.map +1 -0
- package/lib/state/State.d.ts +14 -0
- package/lib/state/State.js +32 -0
- package/lib/state/State.js.map +1 -0
- package/lib/state/Store.d.ts +6 -0
- package/lib/state/Store.js +35 -0
- package/lib/state/Store.js.map +1 -0
- 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 +41 -39
- package/lib/components/outputs/OutputAdapter.css +0 -3
|
@@ -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":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDE;AACF,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,yDAAS,CAAA;IACT,uEAAgB,CAAA;IAChB,mEAAc,CAAA;IACd,2EAAkB,CAAA;IAClB,+EAAoB,CAAA;IACpB,mEAAc,CAAA;AAChB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAsB,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAQ,CAAC;IAC5D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,YAAY,CAAC,SAAS,CAAC;KAC/B;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,2FAA2F;IAC3F,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE;QACjC,OAAO,YAAY,CAAC,gBAAgB,CAAC;KACtC;IACD,qGAAqG;IACrG,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;QACjC,OAAO,YAAY,CAAC,cAAc,CAAC;KACpC;IACD,gGAAgG;IAChG,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE;QACzC,OAAO,YAAY,CAAC,kBAAkB,CAAC;KACxC;IACD,qFAAqF;IACrF,IAAI,KAAK,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE;QAChC,OAAO,YAAY,CAAC,oBAAoB,CAAC;KAC1C;IACD,yFAAyF;IACzF,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE;QAC1C,OAAO,YAAY,CAAC,cAAc,CAAC;KACpC;IACD,OAAO,YAAY,CAAC,SAAS,CAAC;AAChC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAsB,EAAE,aAA2B,EAAE,EAAE;IACtF,QAAQ,aAAa,EAAE;QACrB,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACtC,MAAM;SACP;QACD,KAAK,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAQ,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,kCAC7B,QAAQ,KACX,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,KAAK,IACb,CAAA;YACF,MAAM;SACP;QACD,KAAK,YAAY,CAAC,cAAc,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAQ,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,kCAC7B,QAAQ;gBACnB,sBAAsB;gBACd,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,KAAK,IACb,CAAA;YACF,MAAM;SACP;QACD,KAAK,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAQ,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,kCAC7B,QAAQ;gBACnB,sBAAsB;gBACd,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAE,KAAK,IACb,CAAA;YACF,MAAM;SACP;QACD,KAAK,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAQ,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,kCAC7B,QAAQ;gBACnB,sBAAsB;gBACd,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,IAAI,EACd,MAAM,EAAE,IAAI,IACZ,CAAA;YACF,MAAM;SACP;QACD,KAAK,YAAY,CAAC,cAAc,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAQ,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,kCAC7B,QAAQ,KACX,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,IAAI,EACd,MAAM,EAAE,KAAK,IACb,CAAA;YACF,MAAM;SACP;KACF;AACH,CAAC,CAAA;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactWidget } from '@jupyterlab/apputils';
|
|
2
|
+
import { IInputPrompt } from '@jupyterlab/cells';
|
|
3
|
+
/**
|
|
4
|
+
* The custom input prompt implementation.
|
|
5
|
+
*/
|
|
6
|
+
export declare class InputPrompt extends ReactWidget implements IInputPrompt {
|
|
7
|
+
private _executionCount;
|
|
8
|
+
private state;
|
|
9
|
+
constructor();
|
|
10
|
+
/** @override */
|
|
11
|
+
render(): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
12
|
+
/**
|
|
13
|
+
* The execution count for the prompt.
|
|
14
|
+
*/
|
|
15
|
+
get executionCount(): string | null;
|
|
16
|
+
set executionCount(value: string | null);
|
|
17
|
+
}
|
|
18
|
+
export default InputPrompt;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, useRef } from 'react';
|
|
3
|
+
import { ReactWidget } from '@jupyterlab/apputils';
|
|
4
|
+
/**
|
|
5
|
+
* The class name added to InputPrompt.
|
|
6
|
+
*/
|
|
7
|
+
const INPUT_PROMPT_CLASS = 'jp-InputPrompt';
|
|
8
|
+
const Countdown = (props) => {
|
|
9
|
+
const [count, setCount] = useState(props.count);
|
|
10
|
+
let intervalRef = useRef();
|
|
11
|
+
const decreaseNum = () => setCount((prev) => prev - 1);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
setCount(props.count);
|
|
14
|
+
}, [props.count]);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
intervalRef.current = setInterval(decreaseNum, 1000);
|
|
17
|
+
return () => clearInterval(intervalRef.current);
|
|
18
|
+
}, []);
|
|
19
|
+
return (_jsx(_Fragment, { children: count }, void 0));
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* The custom input prompt implementation.
|
|
23
|
+
*/
|
|
24
|
+
export class InputPrompt extends ReactWidget {
|
|
25
|
+
/*
|
|
26
|
+
* Create an output prompt widget.
|
|
27
|
+
*/
|
|
28
|
+
constructor() {
|
|
29
|
+
super();
|
|
30
|
+
this._executionCount = null;
|
|
31
|
+
this.state = {
|
|
32
|
+
count: 100
|
|
33
|
+
};
|
|
34
|
+
this.addClass(INPUT_PROMPT_CLASS);
|
|
35
|
+
}
|
|
36
|
+
/** @override */
|
|
37
|
+
render() {
|
|
38
|
+
return _jsx(Countdown, { count: this.state.count }, void 0);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The execution count for the prompt.
|
|
42
|
+
*/
|
|
43
|
+
get executionCount() {
|
|
44
|
+
return this._executionCount;
|
|
45
|
+
}
|
|
46
|
+
set executionCount(value) {
|
|
47
|
+
this._executionCount = value;
|
|
48
|
+
if (value === null) {
|
|
49
|
+
this.state = {
|
|
50
|
+
count: 0
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
if (value === '*') {
|
|
55
|
+
this.state = {
|
|
56
|
+
count: 0
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.state = {
|
|
61
|
+
count: Number(value)
|
|
62
|
+
};
|
|
63
|
+
this.update();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export default InputPrompt;
|
|
69
|
+
//# sourceMappingURL=InputPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputPrompt.js","sourceRoot":"","sources":["../../../../../src/components/notebook/cell/prompt/InputPrompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;GAEG;AACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C,MAAM,SAAS,GAAG,CAAC,KAAsB,EAAE,EAAE;IAC3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,WAAW,GAAG,MAAM,EAAU,CAAC;IACnC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvD,SAAS,CAAE,GAAG,EAAE;QACZ,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACjB,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,WAAW,EAAE,IAAI,CAAQ,CAAC;QAC5D,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;IACL,OAAO,CACL,4BACG,KAAK,WACL,CACJ,CAAC;AACN,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,WAAW;IAO1C;;MAEE;IACF;QACE,KAAK,EAAE,CAAC;QAVF,oBAAe,GAAkB,IAAI,CAAC;QAEtC,UAAK,GAAG;YACd,KAAK,EAAE,GAAG;SACX,CAAA;QAOC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB;IAChB,MAAM;QACJ,OAAO,KAAC,SAAS,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,WAAI,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,cAAc,CAAC,KAAoB;QACrC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG;gBACX,KAAK,EAAE,CAAC;aACT,CAAC;SACH;aAAM;YACL,IAAI,KAAK,KAAK,GAAG,EAAE;gBACjB,IAAI,CAAC,KAAK,GAAG;oBACX,KAAK,EAAE,CAAC;iBACT,CAAC;aACH;iBACI;gBACH,IAAI,CAAC,KAAK,GAAG;oBACX,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;iBACrB,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;SACF;IACH,CAAC;CAEF;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useDispatch } from 'react-redux';
|
|
4
|
+
import { ActionMenu, Button, IconButton } from "@primer/react";
|
|
5
|
+
import { KebabHorizontalIcon, PlayIcon, RepoDeletedIcon, ArrowUpIcon, ArrowDownIcon } from "@primer/octicons-react";
|
|
6
|
+
import { DLA_CELL_HEADER_CLASS } from './base/CellSidebarWidget';
|
|
7
|
+
import { notebookActions, selectActiveCell } from '../../NotebookState';
|
|
8
|
+
import CellMetadataEditor from '../metadata/CellMetadataEditor';
|
|
9
|
+
export const CellSidebarDefault = (props) => {
|
|
10
|
+
const [visible, setVisible] = useState(false);
|
|
11
|
+
const { nbgrader } = props;
|
|
12
|
+
const dispatch = useDispatch();
|
|
13
|
+
const activeCell = selectActiveCell();
|
|
14
|
+
const layout = (activeCell === null || activeCell === void 0 ? void 0 : activeCell.layout);
|
|
15
|
+
if (layout) {
|
|
16
|
+
const cellWidget = layout.widgets[0];
|
|
17
|
+
if (!visible && ((cellWidget === null || cellWidget === void 0 ? void 0 : cellWidget.node.id) === props.id)) {
|
|
18
|
+
setVisible(true);
|
|
19
|
+
}
|
|
20
|
+
if (visible && ((cellWidget === null || cellWidget === void 0 ? void 0 : cellWidget.node.id) !== props.id)) {
|
|
21
|
+
setVisible(false);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (!visible) {
|
|
25
|
+
return _jsx("div", {}, void 0);
|
|
26
|
+
}
|
|
27
|
+
return (activeCell ?
|
|
28
|
+
_jsxs("div", Object.assign({ className: DLA_CELL_HEADER_CLASS, css: {
|
|
29
|
+
'& p': {
|
|
30
|
+
marginBottom: '0 !important',
|
|
31
|
+
}
|
|
32
|
+
} }, { children: [_jsx("span", Object.assign({ style: { display: "flex" } }, { children: _jsx(Button, Object.assign({ trailingIcon: PlayIcon, variant: "invisible", size: "small", onClick: (e) => {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
dispatch(notebookActions.run.started());
|
|
35
|
+
} }, { children: "Run" }), void 0) }), void 0),
|
|
36
|
+
_jsx("span", Object.assign({ style: { display: "flex" } }, { children: _jsx(Button, Object.assign({ trailingIcon: ArrowUpIcon, variant: "invisible", size: "small", onClick: (e) => {
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
dispatch(notebookActions.insertAbove.started("code"));
|
|
39
|
+
} }, { children: "Code" }), void 0) }), void 0),
|
|
40
|
+
_jsx("span", Object.assign({ style: { display: "flex" } }, { children: _jsx(Button, Object.assign({ trailingIcon: ArrowUpIcon, variant: "invisible", size: "small", onClick: (e) => {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
dispatch(notebookActions.insertAbove.started("markdown"));
|
|
43
|
+
} }, { children: "Markdown" }), void 0) }), void 0),
|
|
44
|
+
_jsx("span", Object.assign({ style: { display: "flex" } }, { children: _jsx(Button, Object.assign({ trailingIcon: ArrowDownIcon, variant: "invisible", size: "small", onClick: (e) => {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
dispatch(notebookActions.insertBelow.started("markdown"));
|
|
47
|
+
} }, { children: "Markdown" }), void 0) }), void 0),
|
|
48
|
+
_jsx("span", Object.assign({ style: { display: "flex" } }, { children: _jsx(Button, Object.assign({ trailingIcon: ArrowDownIcon, variant: "invisible", size: "small", onClick: (e) => {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
dispatch(notebookActions.insertBelow.started("code"));
|
|
51
|
+
} }, { children: "Code" }), void 0) }), void 0),
|
|
52
|
+
_jsx("span", Object.assign({ style: { display: "flex" } }, { children: _jsx(Button, Object.assign({ trailingIcon: RepoDeletedIcon, variant: "invisible", size: "small", onClick: (e) => {
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
dispatch(notebookActions.delete.started());
|
|
55
|
+
} }, { children: "Delete" }), void 0) }), void 0),
|
|
56
|
+
nbgrader &&
|
|
57
|
+
_jsxs(ActionMenu, { children: [_jsx(ActionMenu.Anchor, { children: _jsx(IconButton, { icon: KebabHorizontalIcon, variant: "invisible", "aria-label": "Open column options" }, void 0) }, void 0),
|
|
58
|
+
_jsx(ActionMenu.Overlay, { children: _jsx(CellMetadataEditor, { cell: activeCell, nbgrader: nbgrader }, void 0) }, void 0)] }, void 0)] }), void 0)
|
|
59
|
+
:
|
|
60
|
+
_jsx(_Fragment, {}, void 0));
|
|
61
|
+
};
|
|
62
|
+
export default CellSidebarDefault;
|
|
63
|
+
//# sourceMappingURL=CellSidebarDefault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellSidebarDefault.js","sourceRoot":"","sources":["../../../../../src/components/notebook/cell/sidebar/CellSidebarDefault.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACpH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAuB,EAAE,EAAE;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,EAAE;QACV,MAAM,UAAU,GAAI,MAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,EAAE,MAAK,KAAK,CAAC,EAAE,CAAC,EAAE;YAClD,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;QACD,IAAI,OAAO,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,EAAE,MAAK,KAAK,CAAC,EAAE,CAAC,EAAE;YACjD,UAAU,CAAC,KAAK,CAAC,CAAC;SACnB;KACF;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,uBAAW,CAAA;KACnB;IACD,OAAO,CACL,UAAU,CAAC,CAAC;QACV,6BACE,SAAS,EAAE,qBAAqB,EAChC,GAAG,EAAE;gBACH,KAAK,EAAE;oBACL,YAAY,EAAE,cAAc;iBAC7B;aACF,iBAED,6BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBAC9B,KAAC,MAAM,kBAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;4BACnF,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC1C,CAAC,iCAEQ,YACJ;gBACP,6BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBAC9B,KAAC,MAAM,kBAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;4BACtF,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;wBACxD,CAAC,kCAEQ,YACJ;gBACP,6BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBAC9B,KAAC,MAAM,kBAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;4BACtF,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC5D,CAAC,sCAEQ,YACJ;gBACP,6BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBAC9B,KAAC,MAAM,kBAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;4BACxF,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC5D,CAAC,sCAEQ,YACJ;gBACP,6BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBAC9B,KAAC,MAAM,kBAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;4BACxF,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;wBACxD,CAAC,kCAEQ,YACJ;gBACP,6BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBAC9B,KAAC,MAAM,kBAAC,YAAY,EAAE,eAAe,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;4BAC1F,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC7C,CAAC,oCAEQ,YACJ;gBACN,QAAQ;oBACP,MAAC,UAAU,eACT,KAAC,UAAU,CAAC,MAAM,cAChB,KAAC,UAAU,IAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAC,WAAW,gBAAY,qBAAqB,WAAG,WAC5E;4BACpB,KAAC,UAAU,CAAC,OAAO,cACjB,KAAC,kBAAkB,IAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,WAAG,WACxC,YACV,aAEX;QACR,CAAC;YACC,2BAAK,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useDispatch } from 'react-redux';
|
|
4
|
+
import { Button } from '@primer/react';
|
|
5
|
+
import { PlayIcon } from "@primer/octicons-react";
|
|
6
|
+
import { DLA_CELL_HEADER_CLASS } from './base/CellSidebarWidget';
|
|
7
|
+
import { notebookActions, selectActiveCell } from '../../NotebookState';
|
|
8
|
+
export const CellSidebarRun = (props) => {
|
|
9
|
+
const [visible, setVisible] = useState(false);
|
|
10
|
+
const dispatch = useDispatch();
|
|
11
|
+
const activeCell = selectActiveCell();
|
|
12
|
+
const layout = (activeCell === null || activeCell === void 0 ? void 0 : activeCell.layout);
|
|
13
|
+
if (layout) {
|
|
14
|
+
const cellWidget = layout.widgets[0];
|
|
15
|
+
if (!visible && ((cellWidget === null || cellWidget === void 0 ? void 0 : cellWidget.node.id) === props.id)) {
|
|
16
|
+
setVisible(true);
|
|
17
|
+
}
|
|
18
|
+
if (visible && ((cellWidget === null || cellWidget === void 0 ? void 0 : cellWidget.node.id) !== props.id)) {
|
|
19
|
+
setVisible(false);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (!visible) {
|
|
23
|
+
return _jsx("div", {}, void 0);
|
|
24
|
+
}
|
|
25
|
+
return (activeCell ?
|
|
26
|
+
_jsx("div", Object.assign({ className: DLA_CELL_HEADER_CLASS, css: {
|
|
27
|
+
'& p': {
|
|
28
|
+
marginBottom: '0 !important',
|
|
29
|
+
}
|
|
30
|
+
} }, { children: _jsx("span", Object.assign({ style: { display: "flex" } }, { children: _jsx(Button, Object.assign({ trailingIcon: PlayIcon, size: "small", variant: "invisible", onClick: (e) => {
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
dispatch(notebookActions.run.started());
|
|
33
|
+
} }, { children: "Run" }), void 0) }), void 0) }), void 0)
|
|
34
|
+
:
|
|
35
|
+
_jsx(_Fragment, {}, void 0));
|
|
36
|
+
};
|
|
37
|
+
export default CellSidebarRun;
|
|
38
|
+
//# sourceMappingURL=CellSidebarRun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellSidebarRun.js","sourceRoot":"","sources":["../../../../../src/components/notebook/cell/sidebar/CellSidebarRun.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAE,EAAE;IACxD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,EAAE;QACV,MAAM,UAAU,GAAI,MAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,EAAE,MAAK,KAAK,CAAC,EAAE,CAAC,EAAE;YAClD,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;QACD,IAAI,OAAO,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,EAAE,MAAK,KAAK,CAAC,EAAE,CAAC,EAAE;YACjD,UAAU,CAAC,KAAK,CAAC,CAAC;SACnB;KACF;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,uBAAW,CAAA;KACnB;IACD,OAAO,CACL,UAAU,CAAC,CAAC;QACV,4BACE,SAAS,EAAE,qBAAqB,EAChC,GAAG,EAAE;gBACH,KAAK,EAAE;oBACL,YAAY,EAAE,cAAc;iBAC7B;aACF,gBAEC,6BAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBAC9B,KAAC,MAAM,kBAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;wBACnF,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC1C,CAAC,iCAEQ,YACJ,YACL;QACR,CAAC;YACC,2BAAK,CACR,CAAC;AACJ,CAAC,CAAA;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Store } from 'redux';
|
|
3
|
+
import { CommandRegistry } from '@lumino/commands';
|
|
4
|
+
import { NotebookPanel } from '@jupyterlab/notebook';
|
|
5
|
+
import { ICellHeader, Cell } from '@jupyterlab/cells';
|
|
6
|
+
import { CellSidebarProps } from './CellSidebarWidget';
|
|
7
|
+
/**
|
|
8
|
+
* Extend the default implementation NotebookPanel.ContentFactory of `IContentFactory`.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CellSidebarContentFactory extends NotebookPanel.ContentFactory {
|
|
11
|
+
private readonly CellSidebar;
|
|
12
|
+
private readonly nbgrader;
|
|
13
|
+
private readonly commands;
|
|
14
|
+
private readonly store;
|
|
15
|
+
constructor(CellSidebar: (props: CellSidebarProps) => JSX.Element, nbgrader: boolean, commands: CommandRegistry, store?: Store, options?: Cell.ContentFactory.IOptions | undefined);
|
|
16
|
+
/** @override */
|
|
17
|
+
createCellHeader(): ICellHeader;
|
|
18
|
+
}
|
|
19
|
+
export default CellSidebarContentFactory;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NotebookPanel } from '@jupyterlab/notebook';
|
|
2
|
+
import { CellSidebarWidget } from './CellSidebarWidget';
|
|
3
|
+
// import { IInputPrompt } from '@jupyterlab/cells';
|
|
4
|
+
// import { NotebookInputPrompt } from './NotebookInputPrompt';
|
|
5
|
+
/**
|
|
6
|
+
* Extend the default implementation NotebookPanel.ContentFactory of `IContentFactory`.
|
|
7
|
+
*/
|
|
8
|
+
export class CellSidebarContentFactory extends NotebookPanel.ContentFactory {
|
|
9
|
+
constructor(CellSidebar, nbgrader, commands, store, options) {
|
|
10
|
+
super(options);
|
|
11
|
+
this.CellSidebar = CellSidebar;
|
|
12
|
+
this.nbgrader = nbgrader;
|
|
13
|
+
this.commands = commands;
|
|
14
|
+
this.store = store;
|
|
15
|
+
}
|
|
16
|
+
/** @override */
|
|
17
|
+
createCellHeader() {
|
|
18
|
+
return new CellSidebarWidget(this.CellSidebar, this.nbgrader, this.commands, this.store);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export default CellSidebarContentFactory;
|
|
22
|
+
//# sourceMappingURL=CellSidebarContentFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellSidebarContentFactory.js","sourceRoot":"","sources":["../../../../../../src/components/notebook/cell/sidebar/base/CellSidebarContentFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,qBAAqB,CAAC;AAC1E,oDAAoD;AACpD,+DAA+D;AAE/D;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,aAAa,CAAC,cAAc;IAKzE,YACE,WAAqD,EACrD,QAAiB,EACjB,QAAyB,EACzB,KAAa,EACb,OAAkD;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAM,CAAC;IACtB,CAAC;IACD,gBAAgB;IAChB,gBAAgB;QACd,OAAO,IAAI,iBAAiB,CAC1B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,CACT,CAAC;IACN,CAAC;CAMF;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Store } from 'redux';
|
|
3
|
+
import { ICellHeader } from '@jupyterlab/cells';
|
|
4
|
+
import { CommandRegistry } from '@lumino/commands';
|
|
5
|
+
import { LuminoReactPortal } from '../../../../../jupyter/lumino/LuminoReactPortal';
|
|
6
|
+
export declare const DLA_CELL_HEADER_CLASS = "dla-CellHeader-Container";
|
|
7
|
+
export declare type CellSidebarProps = {
|
|
8
|
+
command: CommandRegistry;
|
|
9
|
+
id: string;
|
|
10
|
+
nbgrader: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare class CellSidebarWidget extends LuminoReactPortal implements ICellHeader {
|
|
13
|
+
private readonly commands;
|
|
14
|
+
constructor(CellSidebar: (props: CellSidebarProps) => JSX.Element, nbgrader: boolean, commands: CommandRegistry, store: Store);
|
|
15
|
+
}
|
|
16
|
+
export default CellSidebarWidget;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { createElement } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
4
|
+
import { newUuid } from '../../../../../utils/Ids';
|
|
5
|
+
import { notebookActions } from '../../../NotebookState';
|
|
6
|
+
import { LuminoReactPortal } from '../../../../../jupyter/lumino/LuminoReactPortal';
|
|
7
|
+
export const DLA_CELL_HEADER_CLASS = 'dla-CellHeader-Container';
|
|
8
|
+
export class CellSidebarWidget extends LuminoReactPortal {
|
|
9
|
+
constructor(CellSidebar, nbgrader, commands, store) {
|
|
10
|
+
super();
|
|
11
|
+
this.commands = commands;
|
|
12
|
+
this.addClass('jp-CellHeader');
|
|
13
|
+
this.id = newUuid();
|
|
14
|
+
const props = {
|
|
15
|
+
command: this.commands,
|
|
16
|
+
id: this.id,
|
|
17
|
+
nbgrader,
|
|
18
|
+
};
|
|
19
|
+
const sidebar = createElement(CellSidebar, props);
|
|
20
|
+
const portal = createPortal(_jsx("div", Object.assign({ className: DLA_CELL_HEADER_CLASS }, { children: sidebar }), void 0), this.node);
|
|
21
|
+
store.dispatch(notebookActions.portal([portal]));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export default CellSidebarWidget;
|
|
25
|
+
//# sourceMappingURL=CellSidebarWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellSidebarWidget.js","sourceRoot":"","sources":["../../../../../../src/components/notebook/cell/sidebar/base/CellSidebarWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAQhE,MAAM,OAAO,iBAAkB,SAAQ,iBAAiB;IAEtD,YACE,WAAqD,EACrD,QAAiB,EACjB,QAAyB,EACzB,KAAY;QAEZ,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAqB;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ;SACT,CAAC;QACF,MAAM,OAAO,GAAG,aAAa,CAC3B,WAAW,EACX,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CACzB,4BAAK,SAAS,EAAE,qBAAqB,gBAClC,OAAO,YACJ,EAEN,IAAI,CAAC,IAAI,CACV,CAAC;QACF,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Mode } from '@jupyterlab/codemirror';
|
|
2
|
+
import { marked } from 'marked';
|
|
3
|
+
export const getMarked = () => {
|
|
4
|
+
Private.initializeMarked();
|
|
5
|
+
return {
|
|
6
|
+
render: (content) => new Promise((resolve, reject) => {
|
|
7
|
+
marked(content, (err, content) => {
|
|
8
|
+
if (err) {
|
|
9
|
+
reject(err);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
resolve(content);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
})
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
var Private;
|
|
19
|
+
(function (Private) {
|
|
20
|
+
let markedInitialized = false;
|
|
21
|
+
function initializeMarked() {
|
|
22
|
+
if (markedInitialized) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
markedInitialized = true;
|
|
27
|
+
}
|
|
28
|
+
marked.setOptions({
|
|
29
|
+
gfm: true,
|
|
30
|
+
sanitize: false,
|
|
31
|
+
// breaks: true; We can't use GFM breaks as it causes problems with tables
|
|
32
|
+
langPrefix: `language-`,
|
|
33
|
+
highlight: (code, lang, callback) => {
|
|
34
|
+
const cb = (err, code) => {
|
|
35
|
+
if (callback) {
|
|
36
|
+
callback(err, code);
|
|
37
|
+
}
|
|
38
|
+
return code;
|
|
39
|
+
};
|
|
40
|
+
if (!lang) {
|
|
41
|
+
// no language, no highlight
|
|
42
|
+
return cb(null, code);
|
|
43
|
+
}
|
|
44
|
+
Mode.ensure(lang)
|
|
45
|
+
.then(spec => {
|
|
46
|
+
const el = document.createElement('div');
|
|
47
|
+
if (!spec) {
|
|
48
|
+
console.error(`No CodeMirror mode: ${lang}`);
|
|
49
|
+
return cb(null, code);
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
Mode.run(code, spec, el);
|
|
53
|
+
return cb(null, el.innerHTML);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
console.error(`Failed to highlight ${lang} code`, err);
|
|
57
|
+
return cb(err, code);
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
.catch(err => {
|
|
61
|
+
console.error(`No CodeMirror mode: ${lang}`);
|
|
62
|
+
console.error(`Require CodeMirror mode error: ${err}`);
|
|
63
|
+
return cb(null, code);
|
|
64
|
+
});
|
|
65
|
+
return code;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
Private.initializeMarked = initializeMarked;
|
|
70
|
+
})(Private || (Private = {}));
|
|
71
|
+
export default getMarked;
|
|
72
|
+
//# sourceMappingURL=marked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marked.js","sourceRoot":"","sources":["../../../../src/components/notebook/marked/marked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAoB,EAAE;IAC7C,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAC3B,OAAO;QACL,MAAM,EAAE,CAAC,OAAe,EAAmB,EAAE,CAC3C,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,OAAe,EAAE,EAAE;gBAC5C,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;KACL,CAAC;AACJ,CAAC,CAAC;AAEF,IAAU,OAAO,CAgDhB;AAhDD,WAAU,OAAO;IACf,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,SAAgB,gBAAgB;QAC9B,IAAI,iBAAiB,EAAE;YACrB,OAAO;SACR;aAAM;YACL,iBAAiB,GAAG,IAAI,CAAC;SAC1B;QACD,MAAM,CAAC,UAAU,CAAC;YAChB,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,KAAK;YACf,0EAA0E;YAC1E,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAClC,MAAM,EAAE,GAAG,CAAC,GAAiB,EAAE,IAAY,EAAE,EAAE;oBAC7C,IAAI,QAAQ,EAAE;wBACZ,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;qBACrB;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;gBACF,IAAI,CAAC,IAAI,EAAE;oBACT,4BAA4B;oBAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACvB;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBACd,IAAI,CAAC,IAAI,CAAC,EAAE;oBACX,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,IAAI,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;wBAC7C,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACvB;oBACD,IAAI;wBACF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;wBACzB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;qBAC/B;oBAAC,OAAO,GAAQ,EAAE;wBACjB,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC;wBACvD,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;qBACtB;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;oBAC7C,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;oBACvD,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACL,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IA7Ce,wBAAgB,mBA6C/B,CAAA;AACH,CAAC,EAhDS,OAAO,KAAP,OAAO,QAgDhB;AAED,eAAe,SAAS,CAAC"}
|