@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.
Files changed (216) hide show
  1. package/lib/JupyterExample.d.ts +1 -0
  2. package/lib/JupyterExample.js +56 -0
  3. package/lib/JupyterExample.js.map +1 -0
  4. package/lib/JupyterLiteExample.d.ts +1 -0
  5. package/lib/JupyterLiteExample.js +10 -0
  6. package/lib/JupyterLiteExample.js.map +1 -0
  7. package/lib/components/cell/Cell.css +12 -3
  8. package/lib/components/cell/Cell.d.ts +16 -0
  9. package/lib/components/cell/Cell.js +56 -0
  10. package/lib/components/cell/Cell.js.map +1 -0
  11. package/lib/components/cell/CellAdapter.d.ts +15 -0
  12. package/lib/components/cell/CellAdapter.js +133 -0
  13. package/lib/components/cell/CellAdapter.js.map +1 -0
  14. package/lib/components/cell/CellCommands.d.ts +6 -0
  15. package/lib/components/cell/CellCommands.js +38 -0
  16. package/lib/components/cell/CellCommands.js.map +1 -0
  17. package/lib/components/cell/CellState.d.ts +22 -0
  18. package/lib/components/cell/CellState.js +46 -0
  19. package/lib/components/cell/CellState.js.map +1 -0
  20. package/lib/components/codemirror/CodeMirrorEditor.d.ts +14 -0
  21. package/lib/components/codemirror/CodeMirrorEditor.js +110 -0
  22. package/lib/components/codemirror/CodeMirrorEditor.js.map +1 -0
  23. package/lib/components/codemirror/CodeMirrorTheme.d.ts +3 -0
  24. package/lib/components/codemirror/CodeMirrorTheme.js +21 -0
  25. package/lib/components/codemirror/CodeMirrorTheme.js.map +1 -0
  26. package/lib/components/commands/Commands.d.ts +2 -0
  27. package/lib/components/commands/Commands.js +9 -0
  28. package/lib/components/commands/Commands.js.map +1 -0
  29. package/lib/components/commands/CommandsAdapter.d.ts +9 -0
  30. package/lib/components/commands/CommandsAdapter.js +36 -0
  31. package/lib/components/commands/CommandsAdapter.js.map +1 -0
  32. package/lib/components/commands/CommandsState.d.ts +15 -0
  33. package/lib/components/commands/CommandsState.js +30 -0
  34. package/lib/components/commands/CommandsState.js.map +1 -0
  35. package/lib/components/console/{ConsoleAdapter.css → Console.css} +4 -0
  36. package/lib/components/console/Console.d.ts +3 -0
  37. package/lib/components/console/Console.js +15 -0
  38. package/lib/components/console/Console.js.map +1 -0
  39. package/lib/components/console/ConsoleAdapter.d.ts +13 -0
  40. package/lib/components/console/ConsoleAdapter.js +84 -0
  41. package/lib/components/console/ConsoleAdapter.js.map +1 -0
  42. package/lib/components/console/ConsoleState.d.ts +15 -0
  43. package/lib/components/console/ConsoleState.js +30 -0
  44. package/lib/components/console/ConsoleState.js.map +1 -0
  45. package/lib/components/dialog/Dialog.d.ts +2 -0
  46. package/lib/components/dialog/Dialog.js +13 -0
  47. package/lib/components/dialog/Dialog.js.map +1 -0
  48. package/lib/components/dialog/DialogAdapter.d.ts +10 -0
  49. package/lib/components/dialog/DialogAdapter.js +19 -0
  50. package/lib/components/dialog/DialogAdapter.js.map +1 -0
  51. package/lib/components/filebrowser/FileBrowser.d.ts +2 -0
  52. package/lib/components/filebrowser/FileBrowser.js +9 -0
  53. package/lib/components/filebrowser/FileBrowser.js.map +1 -0
  54. package/lib/components/filebrowser/FileBrowserAdapter.d.ts +13 -0
  55. package/lib/components/filebrowser/FileBrowserAdapter.js +267 -0
  56. package/lib/components/filebrowser/FileBrowserAdapter.js.map +1 -0
  57. package/lib/components/filebrowser/FileBrowserState.d.ts +15 -0
  58. package/lib/components/filebrowser/FileBrowserState.js +30 -0
  59. package/lib/components/filebrowser/FileBrowserState.js.map +1 -0
  60. package/lib/components/ipywidgets/IpyWidgetsComponent.d.ts +5 -0
  61. package/lib/components/ipywidgets/IpyWidgetsComponent.js +9 -0
  62. package/lib/components/ipywidgets/IpyWidgetsComponent.js.map +1 -0
  63. package/lib/components/notebook/Notebook.css +2 -26
  64. package/lib/components/notebook/Notebook.d.ts +36 -0
  65. package/lib/components/notebook/Notebook.js +138 -0
  66. package/lib/components/notebook/Notebook.js.map +1 -0
  67. package/lib/components/notebook/NotebookAdapter.d.ts +38 -0
  68. package/lib/components/notebook/NotebookAdapter.js +301 -0
  69. package/lib/components/notebook/NotebookAdapter.js.map +1 -0
  70. package/lib/components/notebook/NotebookCommands.d.ts +43 -0
  71. package/lib/components/notebook/NotebookCommands.js +380 -0
  72. package/lib/components/notebook/NotebookCommands.js.map +1 -0
  73. package/lib/components/notebook/NotebookState.d.ts +69 -0
  74. package/lib/components/notebook/NotebookState.js +184 -0
  75. package/lib/components/notebook/NotebookState.js.map +1 -0
  76. package/lib/components/notebook/cell/metadata/CellMetadataEditor.d.ts +7 -0
  77. package/lib/components/notebook/cell/metadata/CellMetadataEditor.js +43 -0
  78. package/lib/components/notebook/cell/metadata/CellMetadataEditor.js.map +1 -0
  79. package/lib/components/notebook/cell/metadata/NbGraderCells.d.ts +12 -0
  80. package/lib/components/notebook/cell/metadata/NbGraderCells.js +138 -0
  81. package/lib/components/notebook/cell/metadata/NbGraderCells.js.map +1 -0
  82. package/lib/components/notebook/cell/prompt/InputPrompt.d.ts +18 -0
  83. package/lib/components/notebook/cell/prompt/InputPrompt.js +69 -0
  84. package/lib/components/notebook/cell/prompt/InputPrompt.js.map +1 -0
  85. package/lib/components/notebook/cell/sidebar/CellSidebarDefault.d.ts +3 -0
  86. package/lib/components/notebook/cell/sidebar/CellSidebarDefault.js +63 -0
  87. package/lib/components/notebook/cell/sidebar/CellSidebarDefault.js.map +1 -0
  88. package/lib/components/notebook/cell/sidebar/CellSidebarRun.d.ts +3 -0
  89. package/lib/components/notebook/cell/sidebar/CellSidebarRun.js +38 -0
  90. package/lib/components/notebook/cell/sidebar/CellSidebarRun.js.map +1 -0
  91. package/lib/components/notebook/cell/sidebar/base/CellSidebarContentFactory.d.ts +19 -0
  92. package/lib/components/notebook/cell/sidebar/base/CellSidebarContentFactory.js +22 -0
  93. package/lib/components/notebook/cell/sidebar/base/CellSidebarContentFactory.js.map +1 -0
  94. package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.d.ts +16 -0
  95. package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.js +25 -0
  96. package/lib/components/notebook/cell/sidebar/base/CellSidebarWidget.js.map +1 -0
  97. package/lib/components/notebook/marked/marked.d.ts +3 -0
  98. package/lib/components/notebook/marked/marked.js +72 -0
  99. package/lib/components/notebook/marked/marked.js.map +1 -0
  100. package/lib/components/notebook/model/CustomNotebookModelFactory.d.ts +9 -0
  101. package/lib/components/notebook/model/CustomNotebookModelFactory.js +14 -0
  102. package/lib/components/notebook/model/CustomNotebookModelFactory.js.map +1 -0
  103. package/lib/components/outputs/Output.css +8 -0
  104. package/lib/components/outputs/Output.d.ts +25 -0
  105. package/lib/components/outputs/Output.js +126 -0
  106. package/lib/components/outputs/Output.js.map +1 -0
  107. package/lib/components/outputs/OutputAdapter.d.ts +19 -0
  108. package/lib/components/outputs/OutputAdapter.js +81 -0
  109. package/lib/components/outputs/OutputAdapter.js.map +1 -0
  110. package/lib/components/outputs/OutputState.d.ts +54 -0
  111. package/lib/components/outputs/OutputState.js +122 -0
  112. package/lib/components/outputs/OutputState.js.map +1 -0
  113. package/lib/components/outputs/OutputToolbar.d.ts +12 -0
  114. package/lib/components/outputs/OutputToolbar.js +42 -0
  115. package/lib/components/outputs/OutputToolbar.js.map +1 -0
  116. package/lib/components/settings/Settings.d.ts +2 -0
  117. package/lib/components/settings/Settings.js +9 -0
  118. package/lib/components/settings/Settings.js.map +1 -0
  119. package/lib/components/settings/SettingsAdapter.d.ts +10 -0
  120. package/lib/components/settings/SettingsAdapter.js +16 -0
  121. package/lib/components/settings/SettingsAdapter.js.map +1 -0
  122. package/lib/components/settings/SettingsState.d.ts +15 -0
  123. package/lib/components/settings/SettingsState.js +30 -0
  124. package/lib/components/settings/SettingsState.js.map +1 -0
  125. package/lib/components/terminal/Terminal.d.ts +2 -0
  126. package/lib/components/terminal/Terminal.js +16 -0
  127. package/lib/components/terminal/Terminal.js.map +1 -0
  128. package/lib/components/terminal/TerminalAdapter.d.ts +13 -0
  129. package/lib/components/terminal/TerminalAdapter.js +28 -0
  130. package/lib/components/terminal/TerminalAdapter.js.map +1 -0
  131. package/lib/components/terminal/TerminalState.d.ts +15 -0
  132. package/lib/components/terminal/TerminalState.js +38 -0
  133. package/lib/components/terminal/TerminalState.js.map +1 -0
  134. package/lib/index.d.ts +43 -0
  135. package/lib/index.js +58 -0
  136. package/lib/index.js.map +1 -0
  137. package/lib/jupyter/Jupyter.d.ts +31 -0
  138. package/lib/jupyter/Jupyter.js +30 -0
  139. package/lib/jupyter/Jupyter.js.map +1 -0
  140. package/lib/jupyter/JupyterAuthError.d.ts +7 -0
  141. package/lib/jupyter/JupyterAuthError.js +8 -0
  142. package/lib/jupyter/JupyterAuthError.js.map +1 -0
  143. package/lib/jupyter/JupyterConfig.d.ts +38 -0
  144. package/lib/jupyter/JupyterConfig.js +83 -0
  145. package/lib/jupyter/JupyterConfig.js.map +1 -0
  146. package/lib/jupyter/JupyterContext.d.ts +39 -0
  147. package/lib/jupyter/JupyterContext.js +89 -0
  148. package/lib/jupyter/JupyterContext.js.map +1 -0
  149. package/lib/jupyter/JupyterHandlers.d.ts +8 -0
  150. package/lib/jupyter/JupyterHandlers.js +50 -0
  151. package/lib/jupyter/JupyterHandlers.js.map +1 -0
  152. package/lib/jupyter/ipywidgets/IPyWidgetsAttached.d.ts +8 -0
  153. package/lib/jupyter/ipywidgets/IPyWidgetsAttached.js +15 -0
  154. package/lib/jupyter/ipywidgets/IPyWidgetsAttached.js.map +1 -0
  155. package/lib/jupyter/ipywidgets/IPyWidgetsClassicManager.d.ts +18 -0
  156. package/lib/jupyter/ipywidgets/IPyWidgetsClassicManager.js +76 -0
  157. package/lib/jupyter/ipywidgets/IPyWidgetsClassicManager.js.map +1 -0
  158. package/lib/jupyter/ipywidgets/IPyWidgetsJupyterLabPlugin.d.ts +15 -0
  159. package/lib/jupyter/ipywidgets/IPyWidgetsJupyterLabPlugin.js +178 -0
  160. package/lib/jupyter/ipywidgets/IPyWidgetsJupyterLabPlugin.js.map +1 -0
  161. package/lib/jupyter/ipywidgets/IpyWidgetsManager.d.ts +11 -0
  162. package/lib/jupyter/ipywidgets/IpyWidgetsManager.js +71 -0
  163. package/lib/jupyter/ipywidgets/IpyWidgetsManager.js.map +1 -0
  164. package/lib/jupyter/ipywidgets/plotly/Figure.d.ts +587 -0
  165. package/lib/jupyter/ipywidgets/plotly/Figure.js +1697 -0
  166. package/lib/jupyter/ipywidgets/plotly/Figure.js.map +1 -0
  167. package/lib/jupyter/ipywidgets/plotly/JupyterlabPlugin.d.ts +5 -0
  168. package/lib/jupyter/ipywidgets/plotly/JupyterlabPlugin.js +12 -0
  169. package/lib/jupyter/ipywidgets/plotly/JupyterlabPlugin.js.map +1 -0
  170. package/lib/jupyter/ipywidgets/plotly/Version.d.ts +8 -0
  171. package/lib/jupyter/ipywidgets/plotly/Version.js +16 -0
  172. package/lib/jupyter/ipywidgets/plotly/Version.js.map +1 -0
  173. package/lib/jupyter/ipywidgets/plotly/index.d.ts +2 -0
  174. package/lib/jupyter/ipywidgets/plotly/index.js +4 -0
  175. package/lib/jupyter/ipywidgets/plotly/index.js.map +1 -0
  176. package/lib/jupyter/lite/LiteServer.d.ts +2 -0
  177. package/lib/jupyter/lite/LiteServer.js +87 -0
  178. package/lib/jupyter/lite/LiteServer.js.map +1 -0
  179. package/lib/jupyter/lumino/LuminoAttached.d.ts +3 -0
  180. package/lib/jupyter/lumino/LuminoAttached.js +21 -0
  181. package/lib/jupyter/lumino/LuminoAttached.js.map +1 -0
  182. package/lib/jupyter/lumino/LuminoDetached.d.ts +9 -0
  183. package/lib/jupyter/lumino/LuminoDetached.js +13 -0
  184. package/lib/jupyter/lumino/LuminoDetached.js.map +1 -0
  185. package/lib/jupyter/lumino/LuminoNotebook.d.ts +5 -0
  186. package/lib/jupyter/lumino/LuminoNotebook.js +28 -0
  187. package/lib/jupyter/lumino/LuminoNotebook.js.map +1 -0
  188. package/lib/jupyter/lumino/LuminoObservable.d.ts +6 -0
  189. package/lib/jupyter/lumino/LuminoObservable.js +16 -0
  190. package/lib/jupyter/lumino/LuminoObservable.js.map +1 -0
  191. package/lib/jupyter/lumino/LuminoReactPortal.d.ts +180 -0
  192. package/lib/jupyter/lumino/LuminoReactPortal.js +195 -0
  193. package/lib/jupyter/lumino/LuminoReactPortal.js.map +1 -0
  194. package/lib/jupyter/lumino/LuminoRedux.d.ts +8 -0
  195. package/lib/jupyter/lumino/LuminoRedux.js +2 -0
  196. package/lib/jupyter/lumino/LuminoRedux.js.map +1 -0
  197. package/lib/jupyter/services/Services.d.ts +16 -0
  198. package/lib/jupyter/services/Services.js +41 -0
  199. package/lib/jupyter/services/Services.js.map +1 -0
  200. package/lib/jupyter/services/kernel/Kernel.d.ts +15 -0
  201. package/lib/jupyter/services/kernel/Kernel.js +65 -0
  202. package/lib/jupyter/services/kernel/Kernel.js.map +1 -0
  203. package/lib/jupyter/services/kernel/KernelModel.d.ts +18 -0
  204. package/lib/jupyter/services/kernel/KernelModel.js +52 -0
  205. package/lib/jupyter/services/kernel/KernelModel.js.map +1 -0
  206. package/lib/state/State.d.ts +14 -0
  207. package/lib/state/State.js +32 -0
  208. package/lib/state/State.js.map +1 -0
  209. package/lib/state/Store.d.ts +6 -0
  210. package/lib/state/Store.js +35 -0
  211. package/lib/state/Store.js.map +1 -0
  212. package/lib/utils/Ids.d.ts +2 -0
  213. package/lib/utils/Ids.js +11 -0
  214. package/lib/utils/Ids.js.map +1 -0
  215. package/package.json +41 -39
  216. 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":"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"}
@@ -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,3 @@
1
+ import { CellSidebarProps } from './base/CellSidebarWidget';
2
+ export declare const CellSidebarDefault: (props: CellSidebarProps) => import("@emotion/react/jsx-runtime").JSX.Element;
3
+ export default CellSidebarDefault;
@@ -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":"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"}
@@ -0,0 +1,3 @@
1
+ import { CellSidebarProps } from './base/CellSidebarWidget';
2
+ export declare const CellSidebarRun: (props: CellSidebarProps) => import("@emotion/react/jsx-runtime").JSX.Element;
3
+ export default CellSidebarRun;
@@ -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,3 @@
1
+ import { IMarkdownParser } from '@jupyterlab/rendermime';
2
+ export declare const getMarked: () => IMarkdownParser;
3
+ export default getMarked;
@@ -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"}