@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,30 @@
1
+ import { useSelector } from "react-redux";
2
+ import actionCreatorFactory from "typescript-fsa";
3
+ import { reducerWithInitialState } from "typescript-fsa-reducers";
4
+ export const settingsInitialState = {
5
+ outputs: 0,
6
+ };
7
+ /* Selectors */
8
+ export const selectSettings = () => useSelector((state) => {
9
+ if (state.settings) {
10
+ return state.settings;
11
+ }
12
+ return { outputs: 0 };
13
+ });
14
+ /* Actions */
15
+ export var SettingsActionType;
16
+ (function (SettingsActionType) {
17
+ SettingsActionType["OUTPUTS"] = "settings/OUTPUTS";
18
+ SettingsActionType["EXECUTE"] = "settings/EXECUTE";
19
+ })(SettingsActionType || (SettingsActionType = {}));
20
+ const actionCreator = actionCreatorFactory('jupyterReact');
21
+ export const settingsActions = {
22
+ outputs: actionCreator(SettingsActionType.OUTPUTS),
23
+ execute: actionCreator(SettingsActionType.EXECUTE),
24
+ };
25
+ /* Reducers */
26
+ export const settingsReducer = reducerWithInitialState(settingsInitialState)
27
+ .case(settingsActions.outputs, (state, success) => {
28
+ return Object.assign(Object.assign({}, state), { outputs: success });
29
+ });
30
+ //# sourceMappingURL=SettingsState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsState.js","sourceRoot":"","sources":["../../../src/components/settings/SettingsState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,oBAAoB,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAUlE,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,OAAO,EAAE,CAAC;CACX,CAAA;AAED,eAAe;AAEf,MAAM,CAAC,MAAM,cAAc,GAAG,GAAmB,EAAE,CACjD,WAAW,CAAC,CAAC,KAAqB,EAAE,EAAE;IACpC,IAAK,KAAa,CAAC,QAAQ,EAAE;QAC3B,OAAQ,KAAa,CAAC,QAAQ,CAAC;KAChC;IACD,OAAO,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;AACtB,CAAC,CACF,CAAC;AAEF,aAAa;AAEb,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,kDAA4B,CAAA;IAC5B,kDAA4B,CAAA;AAC9B,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,aAAa,CACpB,kBAAkB,CAAC,OAAO,CAC3B;IACD,OAAO,EAAE,aAAa,CACpB,kBAAkB,CAAC,OAAO,CAC3B;CACF,CAAA;AAED,cAAc;AAEd,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC,oBAAoB,CAAC;KACzE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,KAAqB,EAAE,OAAe,EAAE,EAAE;IACxE,uCACK,KAAK,KACR,OAAO,EAAE,OAAO,IACjB;AACH,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const Terminal: () => import("@emotion/react/jsx-runtime").JSX.Element;
2
+ export default Terminal;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ import { useEffect, useMemo } from 'react';
3
+ import { useDispatch } from "react-redux";
4
+ import TerminalAdapter from './TerminalAdapter';
5
+ import { terminalActions } from './TerminalState';
6
+ import LuminoAttached from '../../jupyter/lumino/LuminoAttached';
7
+ export const Terminal = () => {
8
+ const dispatch = useDispatch();
9
+ const adapter = useMemo(() => new TerminalAdapter(), []);
10
+ useEffect(() => {
11
+ dispatch(terminalActions.update({ adapter }));
12
+ }, []);
13
+ return _jsx(LuminoAttached, { children: adapter.panel }, void 0);
14
+ };
15
+ export default Terminal;
16
+ //# sourceMappingURL=Terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../src/components/terminal/Terminal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,cAAc,MAAM,qCAAqC,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,KAAC,cAAc,cAAE,OAAO,CAAC,KAAK,WAAkB,CAAA;AACzD,CAAC,CAAA;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BoxPanel } from '@lumino/widgets';
2
+ import '@jupyterlab/terminal/style/index.css';
3
+ import '@jupyterlab/theme-light-extension/style/theme.css';
4
+ import '@jupyterlab/theme-light-extension/style/variables.css';
5
+ import './TerminalAdapter.css';
6
+ export declare class TerminalAdapter {
7
+ private terminalPanel;
8
+ private terminal;
9
+ constructor();
10
+ get panel(): BoxPanel;
11
+ setTheme(theme: string): void;
12
+ }
13
+ export default TerminalAdapter;
@@ -0,0 +1,28 @@
1
+ import { BoxPanel } from '@lumino/widgets';
2
+ import { TerminalManager } from '@jupyterlab/services';
3
+ import { Terminal } from '@jupyterlab/terminal';
4
+ import '@jupyterlab/terminal/style/index.css';
5
+ import '@jupyterlab/theme-light-extension/style/theme.css';
6
+ import '@jupyterlab/theme-light-extension/style/variables.css';
7
+ import './TerminalAdapter.css';
8
+ export class TerminalAdapter {
9
+ constructor() {
10
+ this.terminalPanel = new BoxPanel();
11
+ this.terminalPanel.addClass('jupyterlab-terminal');
12
+ this.terminalPanel.spacing = 0;
13
+ const manager = new TerminalManager();
14
+ manager.startNew().then((s1) => {
15
+ this.terminal = new Terminal(s1, { theme: 'light' });
16
+ this.terminal.title.closable = true;
17
+ this.terminalPanel.addWidget(this.terminal);
18
+ });
19
+ }
20
+ get panel() {
21
+ return this.terminalPanel;
22
+ }
23
+ setTheme(theme) {
24
+ this.terminal.setOption('theme', theme);
25
+ }
26
+ }
27
+ export default TerminalAdapter;
28
+ //# sourceMappingURL=TerminalAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalAdapter.js","sourceRoot":"","sources":["../../../src/components/terminal/TerminalAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAa,MAAM,sBAAsB,CAAC;AAE3D,OAAO,sCAAsC,CAAC;AAC9C,OAAO,mDAAmD,CAAC;AAC3D,OAAO,uDAAuD,CAAC;AAE/D,OAAO,uBAAuB,CAAC;AAE/B,MAAM,OAAO,eAAe;IAI1B;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,KAAwB,CAAC,CAAC;IAC7D,CAAC;CAEF;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,15 @@
1
+ import TerminalAdapter from "./TerminalAdapter";
2
+ export declare type ITerminal = boolean;
3
+ export interface ITerminalState {
4
+ dark: ITerminal;
5
+ adapter?: TerminalAdapter;
6
+ }
7
+ export declare const terminalInitialState: ITerminalState;
8
+ export declare const selectTerminal: () => ITerminalState;
9
+ export declare enum TerminalActionType {
10
+ UPDATE = "terminal/UPDATE"
11
+ }
12
+ export declare const terminalActions: {
13
+ update: import("typescript-fsa").ActionCreator<Partial<ITerminalState>>;
14
+ };
15
+ export declare const terminalReducer: import("typescript-fsa-reducers").ReducerBuilder<ITerminalState, ITerminalState>;
@@ -0,0 +1,38 @@
1
+ import { useSelector } from "react-redux";
2
+ import actionCreatorFactory from "typescript-fsa";
3
+ import { reducerWithInitialState } from "typescript-fsa-reducers";
4
+ export const terminalInitialState = {
5
+ dark: false,
6
+ };
7
+ /* Selectors */
8
+ export const selectTerminal = () => useSelector((state) => {
9
+ if (state.terminal) {
10
+ return state.terminal;
11
+ }
12
+ return terminalInitialState;
13
+ });
14
+ /* Actions */
15
+ export var TerminalActionType;
16
+ (function (TerminalActionType) {
17
+ TerminalActionType["UPDATE"] = "terminal/UPDATE";
18
+ })(TerminalActionType || (TerminalActionType = {}));
19
+ const actionCreator = actionCreatorFactory('jupyterReact');
20
+ export const terminalActions = {
21
+ update: actionCreator(TerminalActionType.UPDATE),
22
+ };
23
+ /* Reducers */
24
+ export const terminalReducer = reducerWithInitialState(terminalInitialState)
25
+ .case(terminalActions.update, (state, update) => {
26
+ if (state.adapter) {
27
+ if (update.dark !== undefined) {
28
+ if (update.dark) {
29
+ state.adapter.setTheme('dark');
30
+ }
31
+ else {
32
+ state.adapter.setTheme('light');
33
+ }
34
+ }
35
+ }
36
+ return Object.assign(Object.assign({}, state), update);
37
+ });
38
+ //# sourceMappingURL=TerminalState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalState.js","sourceRoot":"","sources":["../../../src/components/terminal/TerminalState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,oBAAoB,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAYlE,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,IAAI,EAAE,KAAK;CACZ,CAAA;AAED,eAAe;AAEf,MAAM,CAAC,MAAM,cAAc,GAAG,GAAmB,EAAE,CACjD,WAAW,CAAC,CAAC,KAAqB,EAAE,EAAE;IACpC,IAAK,KAAa,CAAC,QAAQ,EAAE;QAC3B,OAAQ,KAAa,CAAC,QAAQ,CAAC;KAChC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CACF,CAAC;AAEF,aAAa;AAEb,MAAM,CAAN,IAAY,kBAEX;AAFD,WAAY,kBAAkB;IAC5B,gDAA0B,CAAA;AAC5B,CAAC,EAFW,kBAAkB,KAAlB,kBAAkB,QAE7B;AAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,aAAa,CAA0B,kBAAkB,CAAC,MAAM,CAAC;CAC1E,CAAA;AAED,cAAc;AAEd,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC,oBAAoB,CAAC;KACzE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,KAAqB,EAAE,MAA+B,EAAE,EAAE;IACvF,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;YAC7B,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAChC;iBAAM;gBACL,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aACjC;SACF;KACF;IACD,uCACK,KAAK,GACL,MAAM,EACV;AACH,CAAC,CACF,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ export * from './jupyter/Jupyter';
2
+ export * from './jupyter/JupyterContext';
3
+ export * from './jupyter/JupyterConfig';
4
+ export * from './jupyter/lumino/LuminoAttached';
5
+ export * from './jupyter/lumino/LuminoDetached';
6
+ export * from './jupyter/lumino/LuminoNotebook';
7
+ export * from './jupyter/lumino/LuminoObservable';
8
+ export * from './jupyter/lumino/LuminoReactPortal';
9
+ export * from './jupyter/lumino/LuminoRedux';
10
+ export * from './jupyter/lite/LiteServer';
11
+ export * from './jupyter/services/Services';
12
+ export * from './jupyter/services/kernel/Kernel';
13
+ export * from './jupyter/services/kernel/KernelModel';
14
+ export * from './jupyter/ipywidgets/IpyWidgetsManager';
15
+ export * from './components/ipywidgets/IpyWidgetsComponent';
16
+ export * from './components/cell/Cell';
17
+ export * from './components/cell/CellState';
18
+ export * from './components/codemirror/CodeMirrorEditor';
19
+ export * from './components/notebook/Notebook';
20
+ export * from './components/notebook/NotebookAdapter';
21
+ export * from './components/notebook/NotebookState';
22
+ export * from './components/notebook/cell/metadata/CellMetadataEditor';
23
+ export * from './components/notebook/cell/metadata/NbGraderCells';
24
+ export * from './components/notebook/cell/prompt/InputPrompt';
25
+ export * from './components/notebook/cell/sidebar/base/CellSidebarContentFactory';
26
+ export * from './components/notebook/cell/sidebar/base/CellSidebarWidget';
27
+ export * from './components/notebook/cell/sidebar/CellSidebarDefault';
28
+ export * from './components/notebook/cell/sidebar/CellSidebarRun';
29
+ export * from './components/commands/Commands';
30
+ export * from './components/commands/CommandsState';
31
+ export * from './components/console/Console';
32
+ export * from './components/console/ConsoleState';
33
+ export * from './components/dialog/Dialog';
34
+ export * from './components/filebrowser/FileBrowser';
35
+ export * from './components/filebrowser/FileBrowserState';
36
+ export * from './components/outputs/Output';
37
+ export * from './components/outputs/OutputAdapter';
38
+ export * from './components/outputs/OutputState';
39
+ export * from './components/settings/Settings';
40
+ export * from './components/settings/SettingsState';
41
+ export * from './components/terminal/Terminal';
42
+ export * from './components/terminal/TerminalState';
43
+ export * from './utils/Ids';
package/lib/index.js ADDED
@@ -0,0 +1,58 @@
1
+ // Jupyter.
2
+ export * from './jupyter/Jupyter';
3
+ export * from './jupyter/JupyterContext';
4
+ export * from './jupyter/JupyterConfig';
5
+ export * from './jupyter/lumino/LuminoAttached';
6
+ export * from './jupyter/lumino/LuminoDetached';
7
+ export * from './jupyter/lumino/LuminoNotebook';
8
+ export * from './jupyter/lumino/LuminoObservable';
9
+ export * from './jupyter/lumino/LuminoReactPortal';
10
+ export * from './jupyter/lumino/LuminoRedux';
11
+ export * from './jupyter/lite/LiteServer';
12
+ // Services.
13
+ export * from './jupyter/services/Services';
14
+ export * from './jupyter/services/kernel/Kernel';
15
+ export * from './jupyter/services/kernel/KernelModel';
16
+ // IpyWidgets.
17
+ export * from './jupyter/ipywidgets/IpyWidgetsManager';
18
+ export * from './components/ipywidgets/IpyWidgetsComponent';
19
+ // Cell.
20
+ export * from './components/cell/Cell';
21
+ export * from './components/cell/CellState';
22
+ // CodeMirror Editor.
23
+ export * from './components/codemirror/CodeMirrorEditor';
24
+ // Notebook.
25
+ export * from './components/notebook/Notebook';
26
+ export * from './components/notebook/NotebookAdapter';
27
+ export * from './components/notebook/NotebookState';
28
+ export * from './components/notebook/cell/metadata/CellMetadataEditor';
29
+ export * from './components/notebook/cell/metadata/NbGraderCells';
30
+ export * from './components/notebook/cell/prompt/InputPrompt';
31
+ export * from './components/notebook/cell/sidebar/base/CellSidebarContentFactory';
32
+ export * from './components/notebook/cell/sidebar/base/CellSidebarWidget';
33
+ export * from './components/notebook/cell/sidebar/CellSidebarDefault';
34
+ export * from './components/notebook/cell/sidebar/CellSidebarRun';
35
+ // Commands.
36
+ export * from './components/commands/Commands';
37
+ export * from './components/commands/CommandsState';
38
+ // Console.
39
+ export * from './components/console/Console';
40
+ export * from './components/console/ConsoleState';
41
+ // Dialog.
42
+ export * from './components/dialog/Dialog';
43
+ // FileBrowser.
44
+ export * from './components/filebrowser/FileBrowser';
45
+ export * from './components/filebrowser/FileBrowserState';
46
+ // Outputs.
47
+ export * from './components/outputs/Output';
48
+ export * from './components/outputs/OutputAdapter';
49
+ export * from './components/outputs/OutputState';
50
+ // Settings.
51
+ export * from './components/settings/Settings';
52
+ export * from './components/settings/SettingsState';
53
+ // Terminal.
54
+ export * from './components/terminal/Terminal';
55
+ export * from './components/terminal/TerminalState';
56
+ // Utils.
57
+ export * from './utils/Ids';
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,YAAY;AACZ,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc;AACd,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,QAAQ;AACR,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,qBAAqB;AACrB,cAAc,0CAA0C,CAAC;AACzD,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wDAAwD,CAAC;AACvE,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mEAAmE,CAAC;AAClF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,uDAAuD,CAAC;AACtE,cAAc,mDAAmD,CAAC;AAClE,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,WAAW;AACX,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,UAAU;AACV,cAAc,4BAA4B,CAAC;AAC3C,eAAe;AACf,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,WAAW;AACX,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,YAAY;AACZ,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,SAAS;AACT,cAAc,aAAa,CAAC"}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { Store } from 'redux';
3
+ /**
4
+ * Definition of the properties that can be passed
5
+ * when creating a Jupyter context.
6
+ */
7
+ export declare type JupyterProps = {
8
+ children: React.ReactNode;
9
+ lite: boolean;
10
+ injectableStore?: Store | any;
11
+ collaborative?: boolean;
12
+ jupyterServerHttpUrl?: string;
13
+ jupyterServerWsUrl?: string;
14
+ jupyterToken?: string;
15
+ terminals?: boolean;
16
+ theme?: any;
17
+ };
18
+ /**
19
+ * The Jupyter context. This handles the needed initialization
20
+ * and ensure the Redux and the Material UI theme providers
21
+ * are available.
22
+ */
23
+ export declare const Jupyter: {
24
+ (props: JupyterProps): import("@emotion/react/jsx-runtime").JSX.Element;
25
+ defaultProps: {
26
+ lite: boolean;
27
+ collaborative: boolean;
28
+ terminals: boolean;
29
+ };
30
+ };
31
+ export default Jupyter;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ import { ThemeProvider, BaseStyles } from "@primer/react";
3
+ import { ErrorBoundary } from 'react-error-boundary';
4
+ import { JupyterContextProvider } from './JupyterContext';
5
+ import { getJupyterServerHttpUrl, getJupyterServerWsUrl, loadJupyterConfig } from './JupyterConfig';
6
+ import injectableStore from '../state/Store';
7
+ /**
8
+ * The component to be used as fallback in case of error.
9
+ */
10
+ const ErrorFallback = ({ error, resetErrorBoundary }) => {
11
+ return (_jsxs("div", Object.assign({ role: "alert" }, { children: [_jsx("p", { children: "Oops, something went wrong." }, void 0),
12
+ _jsx("pre", { children: error.message }, void 0)] }), void 0));
13
+ };
14
+ /**
15
+ * The Jupyter context. This handles the needed initialization
16
+ * and ensure the Redux and the Material UI theme providers
17
+ * are available.
18
+ */
19
+ export const Jupyter = (props) => {
20
+ const { lite } = props;
21
+ loadJupyterConfig(props);
22
+ return (_jsx(ErrorBoundary, Object.assign({ FallbackComponent: ErrorFallback }, { children: _jsx(ThemeProvider, { children: _jsx(BaseStyles, { children: _jsx(JupyterContextProvider, Object.assign({ lite: lite, baseUrl: getJupyterServerHttpUrl(), wsUrl: getJupyterServerWsUrl(), injectableStore: props.injectableStore || injectableStore, variant: "default" }, { children: props.children }), void 0) }, void 0) }, void 0) }), void 0));
23
+ };
24
+ Jupyter.defaultProps = {
25
+ lite: false,
26
+ collaborative: false,
27
+ terminals: false,
28
+ };
29
+ export default Jupyter;
30
+ //# sourceMappingURL=Jupyter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jupyter.js","sourceRoot":"","sources":["../../src/jupyter/Jupyter.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,eAAe,MAAM,gBAAgB,CAAC;AAkB7C;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,EAAC,KAAK,EAAE,kBAAkB,EAAM,EAAE,EAAE;IACzD,OAAO,CACL,6BAAK,IAAI,EAAC,OAAO,iBACf,8DAAkC;YAClC,wBAAM,KAAK,CAAC,OAAO,WAAO,aAItB,CACP,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,CACL,KAAC,aAAa,kBACZ,iBAAiB,EAAE,aAAa,gBAGhC,KAAC,aAAa,cACZ,KAAC,UAAU,cACT,KAAC,sBAAsB,kBACrB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,uBAAuB,EAAE,EAClC,KAAK,EAAE,qBAAqB,EAAE,EAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,eAAe,EACzD,OAAO,EAAC,SAAS,gBAEf,KAAK,CAAC,QAAQ,YACO,WACd,WACC,YACF,CACjB,CAAA;AACH,CAAC,CAAA;AAED,OAAO,CAAC,YAAY,GAAG;IACrB,IAAI,EAAE,KAAK;IACX,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,KAAK;CACjB,CAAA;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Error class in case of Authentication or
3
+ * Authorization exception.
4
+ */
5
+ declare class JupyterAuthError extends Error {
6
+ }
7
+ export default JupyterAuthError;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Error class in case of Authentication or
3
+ * Authorization exception.
4
+ */
5
+ class JupyterAuthError extends Error {
6
+ }
7
+ export default JupyterAuthError;
8
+ //# sourceMappingURL=JupyterAuthError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JupyterAuthError.js","sourceRoot":"","sources":["../../src/jupyter/JupyterAuthError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,gBAAiB,SAAQ,KAAK;CAAG;AAEvC,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { JupyterProps } from './Jupyter';
2
+ /**
3
+ * Type of the Jupyter configuration.
4
+ */
5
+ export declare type IJupyterConfig = {
6
+ jupyterServerHttpUrl: string;
7
+ jupyterServerWsUrl: string;
8
+ jupyterToken: string;
9
+ };
10
+ /**
11
+ * Setter for jupyterServerHttpUrl.
12
+ */
13
+ export declare const setJupyterServerHttpUrl: (jupyterServerHttpUrl: string) => void;
14
+ /**
15
+ * Getter for jupyterServerHttpUrl.
16
+ */
17
+ export declare const getJupyterServerHttpUrl: () => string;
18
+ /**
19
+ * Setter for jupyterServerWsUrl.
20
+ */
21
+ export declare const setJupyterServerWsUrl: (jupyterServerWsUrl: string) => void;
22
+ /**
23
+ * Getter for jupyterServerWsUrl.
24
+ */
25
+ export declare const getJupyterServerWsUrl: () => string;
26
+ /**
27
+ * Setter for jupyterToken.
28
+ */
29
+ export declare const setJupyterToken: (jupyterToken: string) => void;
30
+ /**
31
+ * Getter for jupyterToken.
32
+ */
33
+ export declare const getJupyterToken: () => string;
34
+ /**
35
+ * Method to load the Jupyter configuration from the
36
+ * host HTML page.
37
+ */
38
+ export declare const loadJupyterConfig: (props: JupyterProps) => IJupyterConfig;
@@ -0,0 +1,83 @@
1
+ import { PageConfig } from '@jupyterlab/coreutils/lib/pageconfig';
2
+ /**
3
+ * The default Jupyter configuration.
4
+ */
5
+ let config = {
6
+ jupyterServerHttpUrl: '',
7
+ jupyterServerWsUrl: '',
8
+ jupyterToken: '',
9
+ };
10
+ /**
11
+ * Setter for jupyterServerHttpUrl.
12
+ */
13
+ export const setJupyterServerHttpUrl = (jupyterServerHttpUrl) => {
14
+ config.jupyterServerHttpUrl = jupyterServerHttpUrl;
15
+ };
16
+ /**
17
+ * Getter for jupyterServerHttpUrl.
18
+ */
19
+ export const getJupyterServerHttpUrl = () => config.jupyterServerHttpUrl;
20
+ /**
21
+ * Setter for jupyterServerWsUrl.
22
+ */
23
+ export const setJupyterServerWsUrl = (jupyterServerWsUrl) => {
24
+ config.jupyterServerWsUrl = jupyterServerWsUrl;
25
+ };
26
+ /**
27
+ * Getter for jupyterServerWsUrl.
28
+ */
29
+ export const getJupyterServerWsUrl = () => config.jupyterServerWsUrl;
30
+ /**
31
+ * Setter for jupyterToken.
32
+ */
33
+ export const setJupyterToken = (jupyterToken) => {
34
+ config.jupyterToken = jupyterToken;
35
+ };
36
+ /**
37
+ * Getter for jupyterToken.
38
+ */
39
+ export const getJupyterToken = () => config.jupyterToken;
40
+ /**
41
+ * Method to load the Jupyter configuration from the
42
+ * host HTML page.
43
+ */
44
+ export const loadJupyterConfig = (props) => {
45
+ const { lite, jupyterServerHttpUrl, jupyterServerWsUrl, collaborative, terminals, jupyterToken } = props;
46
+ const htmlConfig = document.getElementById('datalayer-config-data');
47
+ if (htmlConfig) {
48
+ config = JSON.parse(htmlConfig.textContent || '');
49
+ }
50
+ if (lite) {
51
+ setJupyterServerHttpUrl(location.protocol + '//' + location.host);
52
+ }
53
+ else if (config.jupyterServerHttpUrl) {
54
+ setJupyterServerHttpUrl(config.jupyterServerHttpUrl);
55
+ }
56
+ else {
57
+ setJupyterServerHttpUrl(jupyterServerHttpUrl || location.protocol + '//' + location.host + "/api/jupyter");
58
+ }
59
+ if (lite) {
60
+ setJupyterServerWsUrl(location.protocol === "https" ? "wss://" + location.host : "ws://" + location.host);
61
+ }
62
+ else if (config.jupyterServerWsUrl) {
63
+ setJupyterServerWsUrl(config.jupyterServerWsUrl);
64
+ }
65
+ else {
66
+ setJupyterServerWsUrl(jupyterServerWsUrl || location.protocol.replace('http', 'ws') + '//' + location.host + "/api/jupyter");
67
+ }
68
+ if (config.jupyterToken) {
69
+ setJupyterToken(config.jupyterToken);
70
+ }
71
+ else {
72
+ setJupyterToken(jupyterToken || '');
73
+ }
74
+ PageConfig.setOption('baseUrl', getJupyterServerHttpUrl());
75
+ PageConfig.setOption('wsUrl', getJupyterServerWsUrl());
76
+ PageConfig.setOption('token', getJupyterToken());
77
+ PageConfig.setOption('collaborative', String(collaborative || false));
78
+ PageConfig.setOption('terminalsAvailable', String(terminals || false));
79
+ PageConfig.setOption('mathjaxUrl', 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js');
80
+ PageConfig.setOption('mathjaxConfig', 'TeX-AMS_CHTML-full,Safe');
81
+ return config;
82
+ };
83
+ //# sourceMappingURL=JupyterConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JupyterConfig.js","sourceRoot":"","sources":["../../src/jupyter/JupyterConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import React from "react";
2
+ import { ServiceManager } from '@jupyterlab/services';
3
+ /**
4
+ * The type for the Jupyter context.
5
+ */
6
+ export declare type JupyterContextType = {
7
+ lite: boolean;
8
+ serviceManager?: ServiceManager;
9
+ variant: string;
10
+ setVariant: (value: string) => void;
11
+ baseUrl: string;
12
+ wsUrl: string;
13
+ injectableStore: any;
14
+ };
15
+ /**
16
+ * The instance for the Jupyter context.
17
+ */
18
+ export declare const JupyterContext: React.Context<JupyterContextType | undefined>;
19
+ export declare const useJupyter: () => JupyterContextType;
20
+ /**
21
+ * The type for the Jupyter context consumer.
22
+ */
23
+ export declare const JupyterContextConsumer: React.Consumer<JupyterContextType | undefined>;
24
+ /**
25
+ * Utiliy method to ensure the Jupyter context is authenticated
26
+ * with the Jupyter server.
27
+ */
28
+ export declare const ensureJupyterAuth: () => Promise<boolean>;
29
+ /**
30
+ * The Jupyter context provider.
31
+ */
32
+ export declare const JupyterContextProvider: React.FC<{
33
+ children: React.ReactNode;
34
+ lite: boolean;
35
+ variant: string;
36
+ baseUrl: string;
37
+ wsUrl: string;
38
+ injectableStore: any;
39
+ }>;
@@ -0,0 +1,89 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ import { useState, useEffect, useContext, createContext } from "react";
3
+ import { Provider as ReduxProvider } from "react-redux";
4
+ import { ServiceManager, ServerConnection } from '@jupyterlab/services';
5
+ import { getJupyterServerHttpUrl } from './JupyterConfig';
6
+ import { requestAPI } from './JupyterHandlers';
7
+ import { startLiteServer } from './../jupyter/lite/LiteServer';
8
+ /**
9
+ * The instance for the Jupyter context.
10
+ */
11
+ export const JupyterContext = createContext(undefined);
12
+ export const useJupyter = () => {
13
+ const context = useContext(JupyterContext);
14
+ if (!context)
15
+ throw new Error("useContext must be inside a provider with a value.");
16
+ return context;
17
+ };
18
+ /**
19
+ * The type for the Jupyter context consumer.
20
+ */
21
+ export const JupyterContextConsumer = JupyterContext.Consumer;
22
+ /**
23
+ * The type for the Jupyter context provider.
24
+ */
25
+ const JupyterProvider = JupyterContext.Provider;
26
+ /**
27
+ * Utiliy method to ensure the Jupyter context is authenticated
28
+ * with the Jupyter server.
29
+ */
30
+ export const ensureJupyterAuth = () => {
31
+ return requestAPI('api', '', {
32
+ credentials: 'include',
33
+ mode: 'cors',
34
+ })
35
+ .then(data => {
36
+ return true;
37
+ })
38
+ .catch(reason => {
39
+ console.log('The jupyter server API has failed with reason', reason);
40
+ return false;
41
+ });
42
+ };
43
+ /**
44
+ * The Jupyter context provider.
45
+ */
46
+ export const JupyterContextProvider = ({ children, lite, variant, baseUrl, wsUrl, injectableStore }) => {
47
+ const [_, setVariant] = useState('default');
48
+ const [serviceManager, setServiceManager] = useState();
49
+ useEffect(() => {
50
+ if (lite) {
51
+ startLiteServer().then((serviceManager) => {
52
+ setServiceManager(serviceManager);
53
+ });
54
+ }
55
+ else {
56
+ ensureJupyterAuth().then(isAuth => {
57
+ if (isAuth) {
58
+ const serverSettings = ServerConnection.makeSettings({
59
+ baseUrl,
60
+ wsUrl,
61
+ appendToken: true,
62
+ init: {
63
+ credentials: "include",
64
+ mode: 'cors',
65
+ }
66
+ });
67
+ const serviceManager = new ServiceManager({ serverSettings });
68
+ setServiceManager(serviceManager);
69
+ }
70
+ else {
71
+ const loginUrl = getJupyterServerHttpUrl() + '/login?next=' + window.location;
72
+ console.warn('Redirecting to jupyter login url', loginUrl);
73
+ window.location.replace(loginUrl);
74
+ }
75
+ });
76
+ }
77
+ setVariant(variant);
78
+ }, [lite, variant]);
79
+ return (_jsx(ReduxProvider, Object.assign({ store: injectableStore }, { children: _jsx(JupyterProvider, Object.assign({ value: {
80
+ lite,
81
+ serviceManager,
82
+ variant,
83
+ setVariant,
84
+ baseUrl,
85
+ wsUrl,
86
+ injectableStore,
87
+ } }, { children: children }), void 0) }), void 0));
88
+ };
89
+ //# sourceMappingURL=JupyterContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JupyterContext.js","sourceRoot":"","sources":["../../src/jupyter/JupyterContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Call the Jupyter server API.
3
+ *
4
+ * @param endPoint API REST end point for the extension
5
+ * @param init Initial values for the request
6
+ * @returns The response body interpreted as JSON
7
+ */
8
+ export declare function requestAPI<T>(namespace?: string, endPoint?: string, init?: RequestInit): Promise<T>;