@datalayer/jupyter-react 0.0.10 → 0.0.13

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